text: # MIT LICENSE
  #
  # Copyright 1997 - 2020 by IXIA Keysight
  #
  # Permission is hereby granted, free of charge, to any person obtaining a copy
  # of this software and associated documentation files (the "Software"),
  # to deal in the Software without restriction, including without limitation
  # the rights to use, copy, modify, merge, publish, distribute, sublicense,
  # and/or sell copies of the Software, and to permit persons to whom the
  # Software is furnished to do so, subject to the following conditions:
  #
  # The above copyright notice and this permission notice shall be included in
  # all copies or substantial portions of the Software.
  #
  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  # THE SOFTWARE. 
  from ixnetwork_restpy.base import Base
  from ixnetwork_restpy.files import Files
  
  
  class Instructions(Base):
      """Instruction
      The Instructions class encapsulates a required instructions resource which will be retrieved from the server every time the property is accessed.
      """
  
      __slots__ = ()
      _SDM_NAME = 'instructions'
      _SDM_ATT_MAP = {
          'Count': 'count',
          'Description': 'description',
          'DisplayName': 'displayName',
          'IsEditable': 'isEditable',
          'IsEnabled': 'isEnabled',
          'IsRequired': 'isRequired',
          'Name': 'name',
      }
  
      def __init__(self, parent):
          super(Instructions, self).__init__(parent)
  
      @property
      def Instruction(self):
          """
          Returns
          -------
          - obj(ixnetwork_restpy.testplatform.sessions.ixnetwork.topology.instruction_8a003508af27a2b8465616f1246a834c.Instruction): An instance of the Instruction class
  
          Raises
          ------
          - ServerError: The server has encountered an uncategorized error condition
          """
          from ixnetwork_restpy.testplatform.sessions.ixnetwork.topology.instruction_8a003508af27a2b8465616f1246a834c import Instruction
          if self._properties.get('Instruction', None) is None:
              return Instruction(self)
          else:
              return self._properties.get('Instruction')
  
      @property
      def Count(self):
          """
          Returns
          -------
          - number: Number of elements inside associated multiplier-scaled container object, e.g. number of devices inside a Device Group.
          """
          return self._get_attribute(self._SDM_ATT_MAP['Count'])
  
      @property
      def Description(self):
          """
          Returns
          -------
          - str: Description of the field.
          """
          return self._get_attribute(self._SDM_ATT_MAP['Description'])
      @Description.setter
      def Description(self, value):
          self._set_attribute(self._SDM_ATT_MAP['Description'], value)
  
      @property
      def DisplayName(self):
          """
          Returns
          -------
          - str: Display name used by GUI.
          """
          return self._get_attribute(self._SDM_ATT_MAP['DisplayName'])
  
      @property
      def IsEditable(self):
          """
          Returns
          -------
          - bool: Information on the requirement of the field.
          """
          return self._get_attribute(self._SDM_ATT_MAP['IsEditable'])
      @IsEditable.setter
      def IsEditable(self, value):
          self._set_attribute(self._SDM_ATT_MAP['IsEditable'], value)
  
      @property
      def IsEnabled(self):
          """
          Returns
          -------
          - bool: Enables disables the field.
          """
          return self._get_attribute(self._SDM_ATT_MAP['IsEnabled'])
      @IsEnabled.setter
      def IsEnabled(self, value):
          self._set_attribute(self._SDM_ATT_MAP['IsEnabled'], value)
  
      @property
      def IsRequired(self):
          """
          Returns
          -------
          - bool: Information on the requirement of the field.
          """
          return self._get_attribute(self._SDM_ATT_MAP['IsRequired'])
      @IsRequired.setter
      def IsRequired(self, value):
          self._set_attribute(self._SDM_ATT_MAP['IsRequired'], value)
  
      @property
      def Name(self):
          """
          Returns
          -------
          - str: Name of packet field
          """
          return self._get_attribute(self._SDM_ATT_MAP['Name'])
      @Name.setter
      def Name(self, value):
          self._set_attribute(self._SDM_ATT_MAP['Name'], value)
  
      def update(self, Description=None, IsEditable=None, IsEnabled=None, IsRequired=None, Name=None):
          """Updates instructions resource on the server.
  
          Args
          ----
          - Description (str): Description of the field.
          - IsEditable (bool): Information on the requirement of the field.
          - IsEnabled (bool): Enables disables the field.
          - IsRequired (bool): Information on the requirement of the field.
          - Name (str): Name of packet field
  
          Raises
          ------
          - ServerError: The server has encountered an uncategorized error condition
          """
          return self._update(self._map_locals(self._SDM_ATT_MAP, locals()))
  
      def AddInstruction(self, *args, **kwargs):
          """Executes the addInstruction operation on the server.
  
          Adds Instruction item in profile.
  
          addInstruction(Arg2=string)
          ---------------------------
          - Arg2 (str): 
  
          Raises
          ------
          - NotFoundError: The requested resource does not exist on the server
          - ServerError: The server has encountered an uncategorized error condition
          """
          payload = { "Arg1": self.href }
          for i in range(len(args)): payload['Arg%s' % (i + 2)] = args[i]
          for item in kwargs.items(): payload[item[0]] = item[1]
          return self._execute('addInstruction', payload=payload, response_object=None)
  