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 uhd_restpy.base import Base
  from uhd_restpy.files import Files
  
  
  class DceSimulatedMCastMacGroupList(Base):
      """Fabric-Path Simulated Multicast MAC Groups
      The DceSimulatedMCastMacGroupList class encapsulates a required dceSimulatedMCastMacGroupList resource which will be retrieved from the server every time the property is accessed.
      """
  
      __slots__ = ()
      _SDM_NAME = 'dceSimulatedMCastMacGroupList'
      _SDM_ATT_MAP = {
          'Active': 'active',
          'Count': 'count',
          'DescriptiveName': 'descriptiveName',
          'InterGrpUcastAddrIncr': 'interGrpUcastAddrIncr',
          'McastAddrCnt': 'mcastAddrCnt',
          'McastAddrIncr': 'mcastAddrIncr',
          'Name': 'name',
          'SrcGrpMapping': 'srcGrpMapping',
          'StartMcastAddr': 'startMcastAddr',
          'StartUcastAddr': 'startUcastAddr',
          'TopologyId': 'topologyId',
          'UcastAddrIncr': 'ucastAddrIncr',
          'UcastSrcCnt': 'ucastSrcCnt',
          'VlanId': 'vlanId',
      }
  
      def __init__(self, parent):
          super(DceSimulatedMCastMacGroupList, self).__init__(parent)
  
      @property
      def Active(self):
          """
          Returns
          -------
          - obj(uhd_restpy.multivalue.Multivalue): Activate/Deactivate Configuration
          """
          from uhd_restpy.multivalue import Multivalue
          return Multivalue(self, self._get_attribute(self._SDM_ATT_MAP['Active']))
  
      @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 DescriptiveName(self):
          """
          Returns
          -------
          - str: Longer, more descriptive name for element. It's not guaranteed to be unique like -name-, but may offer more context.
          """
          return self._get_attribute(self._SDM_ATT_MAP['DescriptiveName'])
  
      @property
      def InterGrpUcastAddrIncr(self):
          """
          Returns
          -------
          - obj(uhd_restpy.multivalue.Multivalue): Inter-Group Source Address Increment
          """
          from uhd_restpy.multivalue import Multivalue
          return Multivalue(self, self._get_attribute(self._SDM_ATT_MAP['InterGrpUcastAddrIncr']))
  
      @property
      def McastAddrCnt(self):
          """
          Returns
          -------
          - obj(uhd_restpy.multivalue.Multivalue): Multicast Address Count
          """
          from uhd_restpy.multivalue import Multivalue
          return Multivalue(self, self._get_attribute(self._SDM_ATT_MAP['McastAddrCnt']))
  
      @property
      def McastAddrIncr(self):
          """
          Returns
          -------
          - obj(uhd_restpy.multivalue.Multivalue): Multicast Address Increment
          """
          from uhd_restpy.multivalue import Multivalue
          return Multivalue(self, self._get_attribute(self._SDM_ATT_MAP['McastAddrIncr']))
  
      @property
      def Name(self):
          """
          Returns
          -------
          - str: Name of NGPF element, guaranteed to be unique in Scenario
          """
          return self._get_attribute(self._SDM_ATT_MAP['Name'])
      @Name.setter
      def Name(self, value):
          self._set_attribute(self._SDM_ATT_MAP['Name'], value)
  
      @property
      def SrcGrpMapping(self):
          """
          Returns
          -------
          - obj(uhd_restpy.multivalue.Multivalue): Source-Group Mapping
          """
          from uhd_restpy.multivalue import Multivalue
          return Multivalue(self, self._get_attribute(self._SDM_ATT_MAP['SrcGrpMapping']))
  
      @property
      def StartMcastAddr(self):
          """
          Returns
          -------
          - obj(uhd_restpy.multivalue.Multivalue): Start Multicast Address
          """
          from uhd_restpy.multivalue import Multivalue
          return Multivalue(self, self._get_attribute(self._SDM_ATT_MAP['StartMcastAddr']))
  
      @property
      def StartUcastAddr(self):
          """
          Returns
          -------
          - obj(uhd_restpy.multivalue.Multivalue): Start Source Address
          """
          from uhd_restpy.multivalue import Multivalue
          return Multivalue(self, self._get_attribute(self._SDM_ATT_MAP['StartUcastAddr']))
  
      @property
      def TopologyId(self):
          """
          Returns
          -------
          - obj(uhd_restpy.multivalue.Multivalue): Topology/Nickname
          """
          from uhd_restpy.multivalue import Multivalue
          return Multivalue(self, self._get_attribute(self._SDM_ATT_MAP['TopologyId']))
  
      @property
      def UcastAddrIncr(self):
          """
          Returns
          -------
          - obj(uhd_restpy.multivalue.Multivalue): Source Address Increment
          """
          from uhd_restpy.multivalue import Multivalue
          return Multivalue(self, self._get_attribute(self._SDM_ATT_MAP['UcastAddrIncr']))
  
      @property
      def UcastSrcCnt(self):
          """
          Returns
          -------
          - obj(uhd_restpy.multivalue.Multivalue): # Sources per Multicast Group
          """
          from uhd_restpy.multivalue import Multivalue
          return Multivalue(self, self._get_attribute(self._SDM_ATT_MAP['UcastSrcCnt']))
  
      @property
      def VlanId(self):
          """
          Returns
          -------
          - obj(uhd_restpy.multivalue.Multivalue): Vlan Id
          """
          from uhd_restpy.multivalue import Multivalue
          return Multivalue(self, self._get_attribute(self._SDM_ATT_MAP['VlanId']))
  
      def update(self, Name=None):
          """Updates dceSimulatedMCastMacGroupList resource on the server.
  
          This method has some named parameters with a type: obj (Multivalue).
          The Multivalue class has documentation that details the possible values for those named parameters.
  
          Args
          ----
          - Name (str): Name of NGPF element, guaranteed to be unique in Scenario
  
          Raises
          ------
          - ServerError: The server has encountered an uncategorized error condition
          """
          return self._update(self._map_locals(self._SDM_ATT_MAP, locals()))
  
      def get_device_ids(self, PortNames=None, Active=None, InterGrpUcastAddrIncr=None, McastAddrCnt=None, McastAddrIncr=None, SrcGrpMapping=None, StartMcastAddr=None, StartUcastAddr=None, TopologyId=None, UcastAddrIncr=None, UcastSrcCnt=None, VlanId=None):
          """Base class infrastructure that gets a list of dceSimulatedMCastMacGroupList device ids encapsulated by this object.
  
          Use the optional regex parameters in the method to refine the list of device ids encapsulated by this object.
  
          Args
          ----
          - PortNames (str): optional regex of port names
          - Active (str): optional regex of active
          - InterGrpUcastAddrIncr (str): optional regex of interGrpUcastAddrIncr
          - McastAddrCnt (str): optional regex of mcastAddrCnt
          - McastAddrIncr (str): optional regex of mcastAddrIncr
          - SrcGrpMapping (str): optional regex of srcGrpMapping
          - StartMcastAddr (str): optional regex of startMcastAddr
          - StartUcastAddr (str): optional regex of startUcastAddr
          - TopologyId (str): optional regex of topologyId
          - UcastAddrIncr (str): optional regex of ucastAddrIncr
          - UcastSrcCnt (str): optional regex of ucastSrcCnt
          - VlanId (str): optional regex of vlanId
  
          Returns
          -------
          - list(int): A list of device ids that meets the regex criteria provided in the method parameters
  
          Raises
          ------
          - ServerError: The server has encountered an uncategorized error condition
          """
          return self._get_ngpf_device_ids(locals())
  