diff --git a/doc/conf.pyc b/doc/conf.pyc index 85b8f902..d471b1fd 100644 Binary files a/doc/conf.pyc and b/doc/conf.pyc differ diff --git a/doc/v6/nudhcpv6option.rst b/doc/v6/nudhcpv6option.rst index b02db7eb..c6beaf71 100644 --- a/doc/v6/nudhcpv6option.rst +++ b/doc/v6/nudhcpv6option.rst @@ -30,6 +30,8 @@ Attributes - ``creation_date``: Time stamp when this object was created. +- ``sub_option_type``: Sub option type of the actual DHCP option type. + - ``owner``: Identifies the user that has created this object. - ``external_id``: External object ID. Used for integration with third party systems diff --git a/doc/v6/nudomain.rst b/doc/v6/nudomain.rst index 12336f6a..42d16a72 100644 --- a/doc/v6/nudomain.rst +++ b/doc/v6/nudomain.rst @@ -154,6 +154,8 @@ Attributes - ``associated_underlay_id``: The ID of the Underlay entity to which this L3 Domain is associated. +- ``stateful_mode``: This value indicates whether reflexive ACL is enabled or not for the Domain. It is 'REFLEXIVE' if enabled, or 'STATEFUL' if reflexive is disabled. + - ``stretched``: Indicates whether this domain is stretched, if so, remote VM resolutions will be allowed - ``multicast``: multicast is enum that indicates multicast policy on domain. Possible values are ENABLED ,DISABLED and INHERITED Possible values are INHERITED, ENABLED, DISABLED, . diff --git a/doc/v6/nuenterprisenetwork.rst b/doc/v6/nuenterprisenetwork.rst index 7b1f3262..2c988f16 100644 --- a/doc/v6/nuenterprisenetwork.rst +++ b/doc/v6/nuenterprisenetwork.rst @@ -58,6 +58,8 @@ Parents -------- +- :ref:`nume.NUMe` + - :ref:`nusaasapplicationtype.NUSaaSApplicationType` - :ref:`nunetworkmacrogroup.NUNetworkMacroGroup` diff --git a/doc/v6/nuinfrastructuregatewayprofile.rst b/doc/v6/nuinfrastructuregatewayprofile.rst index bae66f2b..cdbf9989 100644 --- a/doc/v6/nuinfrastructuregatewayprofile.rst +++ b/doc/v6/nuinfrastructuregatewayprofile.rst @@ -32,6 +32,10 @@ Attributes - ``web_filter_query_port``: The port to be opened by the proxy for webfilter category query request +- ``secondary_remote_log_server_address``: Secondary Log Server for system logs generated by Gateways associated with this Infrastructure Profile. Can be an IP address or a URL. This field is optional. + +- ``secondary_remote_log_server_port``: Port to be used to access the Secondary Remote Syslog server. By default, this is port 0. + - ``remote_log_mode``: Type of Log Server for system logs generated by Gateways associated with this Infrastructure Profile. - ``remote_log_server_address``: Primary Log Server for system logs generated by Gateways associated with this Infrastructure Profile. Can be an IP address or a URL. This field is optional. diff --git a/doc/v6/nul2domain.rst b/doc/v6/nul2domain.rst index cf6984ac..1da64331 100644 --- a/doc/v6/nul2domain.rst +++ b/doc/v6/nul2domain.rst @@ -38,6 +38,8 @@ Attributes - ``gateway_mac_address``: The MAC address of the Gateway. +- ``wbx_disable_mac_move``: Disable MAC Move on WBX nodes. + - ``address``: Network address of the L2Domain / L2Domain template defined. - ``template_id``: The ID of the L2 Domain template that this L2 Domain object was derived from @@ -96,6 +98,8 @@ Attributes - ``associated_underlay_id``: The ID of the Underlay entity to which this L2 Domain is associated. +- ``stateful_mode``: This value indicates whether reflexive ACL is enabled or not for the L2Domain. It is 'REFLEXIVE' if enabled, or 'STATEFUL' if reflexive is disabled. + - ``stretched``: Indicates whether this domain is streched,if so remote VM resolutions will be allowed - ``dual_stack_dynamic_ip_allocation``: This read-only value indicates whether dynamic address allocation is enabled or not at template. This will be applicable when L2 Domain is managed and in dual stack mode diff --git a/doc/v6/nume.rst b/doc/v6/nume.rst index e11721a9..f05b14ea 100644 --- a/doc/v6/nume.rst +++ b/doc/v6/nume.rst @@ -97,6 +97,7 @@ Children :ref:`nunetconfglobalconfiguration.NUNetconfGlobalConfiguration` ``netconf_global_configurations`` :ref:`nunetconfprofile.NUNetconfProfile` ``netconf_profiles`` :ref:`nunetworklayout.NUNetworkLayout` ``network_layouts`` +:ref:`nunetworkmacrogroup.NUNetworkMacroGroup` ``network_macro_groups`` :ref:`nunetworkperformancemeasurement.NUNetworkPerformanceMeasurement` ``network_performance_measurements`` :ref:`nukeyservermember.NUKeyServerMember` ``key_server_members`` :ref:`nuzfbautoassignment.NUZFBAutoAssignment` ``zfb_auto_assignments`` @@ -136,6 +137,7 @@ Children :ref:`nuingressqospolicy.NUIngressQOSPolicy` ``ingress_qos_policies`` :ref:`nugnmiprofile.NUGNMIProfile` ``gnmi_profiles`` :ref:`nuenterprise.NUEnterprise` ``enterprises`` +:ref:`nuenterprisenetwork.NUEnterpriseNetwork` ``enterprise_networks`` :ref:`nuenterpriseprofile.NUEnterpriseProfile` ``enterprise_profiles`` :ref:`nujob.NUJob` ``jobs`` :ref:`nurole.NURole` ``roles`` diff --git a/doc/v6/nunetworkmacrogroup.rst b/doc/v6/nunetworkmacrogroup.rst index 8ef75733..3b75847a 100644 --- a/doc/v6/nunetworkmacrogroup.rst +++ b/doc/v6/nunetworkmacrogroup.rst @@ -55,6 +55,8 @@ Parents -------- +- :ref:`nume.NUMe` + - :ref:`nudomain.NUDomain` - :ref:`nuenterprisenetwork.NUEnterpriseNetwork` diff --git a/doc/v6/nunsgateway.rst b/doc/v6/nunsgateway.rst index ece40852..60f8730d 100644 --- a/doc/v6/nunsgateway.rst +++ b/doc/v6/nunsgateway.rst @@ -22,7 +22,7 @@ Attributes - ``tcpmss_enabled``: Boolean flag to indicate whether MSS on TCP is enabled or not -- ``tcp_maximum_segment_size``: Maximum Segment Size for TCP(min = 576, max = 7812). +- ``tcp_maximum_segment_size``: Maximum TCP segment size (min = 576, max = 7812); value 0 indicates the use of dynamically computed MSS. - ``zfb_match_attribute``: The Zero Factor Bootstrapping (ZFB) Attribute that should be used to match the gateway on when it tries to bootstrap. @@ -70,6 +70,8 @@ Attributes - ``gateway_connected``: Indicates status of this gateway +- ``path_mtu_discovery``: Boolean flag to indicate whether Path MTU Discovery is enabled or not. + - ``redundancy_group_id``: The Redundancy Gateway Group associated with this Gateway Instance. This is a read only attribute - ``template_id`` (**Mandatory**): The ID of the template that this Gateway was created from. This should be set when instantiating a Gateway diff --git a/doc/v6/nustatisticsprofile.rst b/doc/v6/nustatisticsprofile.rst index 362658a3..551d3bf0 100644 --- a/doc/v6/nustatisticsprofile.rst +++ b/doc/v6/nustatisticsprofile.rst @@ -16,6 +16,8 @@ Attributes - ``description``: Desription of the Statistics Profile. +- ``clone_from``: UUID of the Statistics Profile from which this profile is being cloned. + - ``flow_stats_aggregation_enabled``: Indicates if flow statistics aggregation is enabled. diff --git a/doc/v6/nusubnet.rst b/doc/v6/nusubnet.rst index 58a0c888..1952b6e2 100644 --- a/doc/v6/nusubnet.rst +++ b/doc/v6/nusubnet.rst @@ -40,6 +40,8 @@ Attributes - ``gateway_mac_address``: None +- ``wbx_disable_mac_move``: Disable MAC Move on WBX nodes. + - ``access_restriction_enabled``: This attribute specifies whether subnet is enabled with access restrictions. Note: Applicable to shared infrastructure enterprise subnets. - ``address``: IP address of the subnet defined. In case of zone, this is an optional field for and allows users to allocate an IP address range to a zone. The VSD will auto-assign IP addresses to subnets from this range if a specific IP address is not defined for the subnet diff --git a/doc/v6/nusystemconfig.rst b/doc/v6/nusystemconfig.rst index 1f5f56c0..91e8cd33 100644 --- a/doc/v6/nusystemconfig.rst +++ b/doc/v6/nusystemconfig.rst @@ -162,6 +162,12 @@ Attributes - ``secondary_rt_upper_limit``: Secondary route target upper limit. +- ``reflexive_aclicmp_timeout``: Defines the timeout in seconds for reflexive ACLs that are of type ICMP. Supported in Virtual Cloud Services (VCS) only. + +- ``reflexive_acl_non_tcp_timeout``: Defines the timeout in seconds for reflexive ACLs that are not of type TCP. + +- ``reflexive_acltcp_timeout``: Defines the timeout in seconds for reflexive ACLs that are of type TCP. + - ``denied_flow_collection_enabled``: When this option is selected, VSS will only store flows that are denied by security policy (implicit or explicit ACLs). This requires a valid VSS license and Flow Collection enabled. - ``per_domain_vlan_id_enabled``: Determines whether per domain VLAN ID generation is required. @@ -256,6 +262,8 @@ Attributes - ``creation_date``: Time stamp when this object was created. +- ``srl_yang_validation_enabled``: Indicates if IPv4 Filter, IPv6 Filter, QoS Profile, BGP Neighbor Session and Routing Policy Blob validation is enabled for SRL. + - ``group_key_default_sek_generation_interval``: Group Key Encryption Profile Default SEK Generation Interval in seconds. - ``group_key_default_sek_lifetime``: Group Key Encryption Profile Default SEK Lifetime in seconds. diff --git a/setup.py b/setup.py index f2dc871a..e2c006d8 100644 --- a/setup.py +++ b/setup.py @@ -49,7 +49,7 @@ setup( name='vspk', - version="20.10.12", + version="20.10.13", url='http://nuagenetworks.net/', author='nuage networks', author_email='opensource@nuagenetworks.net', diff --git a/vspk/v6/nudhcpv6option.py b/vspk/v6/nudhcpv6option.py index 1b7fd432..418637c1 100644 --- a/vspk/v6/nudhcpv6option.py +++ b/vspk/v6/nudhcpv6option.py @@ -87,6 +87,7 @@ def __init__(self, **kwargs): self._embedded_metadata = None self._entity_scope = None self._creation_date = None + self._sub_option_type = None self._owner = None self._external_id = None self._type = None @@ -100,6 +101,7 @@ def __init__(self, **kwargs): self.expose_attribute(local_name="embedded_metadata", remote_name="embeddedMetadata", attribute_type=list, is_required=False, is_unique=False) self.expose_attribute(local_name="entity_scope", remote_name="entityScope", attribute_type=str, is_required=False, is_unique=False, choices=[u'ENTERPRISE', u'GLOBAL']) self.expose_attribute(local_name="creation_date", remote_name="creationDate", attribute_type=str, is_required=False, is_unique=False) + self.expose_attribute(local_name="sub_option_type", remote_name="subOptionType", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="owner", remote_name="owner", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="external_id", remote_name="externalID", attribute_type=str, is_required=False, is_unique=True) self.expose_attribute(local_name="type", remote_name="type", attribute_type=str, is_required=False, is_unique=False) @@ -359,6 +361,33 @@ def creation_date(self, value): self._creation_date = value + @property + def sub_option_type(self): + """ Get sub_option_type value. + + Notes: + Sub option type of the actual DHCP option type. + + + This attribute is named `subOptionType` in VSD API. + + """ + return self._sub_option_type + + @sub_option_type.setter + def sub_option_type(self, value): + """ Set sub_option_type value. + + Notes: + Sub option type of the actual DHCP option type. + + + This attribute is named `subOptionType` in VSD API. + + """ + self._sub_option_type = value + + @property def owner(self): """ Get owner value. diff --git a/vspk/v6/nudomain.py b/vspk/v6/nudomain.py index 9751a965..093e6974 100644 --- a/vspk/v6/nudomain.py +++ b/vspk/v6/nudomain.py @@ -269,6 +269,8 @@ class NUDomain(NURESTObject): CONST_MAINTENANCE_MODE_ENABLED = "ENABLED" + CONST_STATEFUL_MODE_STATEFUL = "STATEFUL" + CONST_EVPNRT5_TYPE_IP = "IP" CONST_FLOW_SETUP_RATE_LIMIT_ENABLED_ENABLED = "ENABLED" @@ -335,6 +337,8 @@ class NUDomain(NURESTObject): CONST_UNDERLAY_ENABLED_DISABLED = "DISABLED" + CONST_STATEFUL_MODE_REFLEXIVE = "REFLEXIVE" + CONST_FLOW_LIMIT_ENABLED_ENABLED = "ENABLED" CONST_TUNNEL_TYPE_GRE = "GRE" @@ -435,6 +439,7 @@ def __init__(self, **kwargs): self._associated_pat_mapper_id = None self._associated_shared_pat_mapper_id = None self._associated_underlay_id = None + self._stateful_mode = None self._stretched = None self._multicast = None self._tunnel_type = None @@ -515,6 +520,7 @@ def __init__(self, **kwargs): self.expose_attribute(local_name="associated_pat_mapper_id", remote_name="associatedPATMapperID", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="associated_shared_pat_mapper_id", remote_name="associatedSharedPATMapperID", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="associated_underlay_id", remote_name="associatedUnderlayID", attribute_type=str, is_required=False, is_unique=False) + self.expose_attribute(local_name="stateful_mode", remote_name="statefulMode", attribute_type=str, is_required=False, is_unique=False, choices=[u'REFLEXIVE', u'STATEFUL']) self.expose_attribute(local_name="stretched", remote_name="stretched", attribute_type=bool, is_required=False, is_unique=False) self.expose_attribute(local_name="multicast", remote_name="multicast", attribute_type=str, is_required=False, is_unique=False, choices=[u'DISABLED', u'ENABLED', u'INHERITED']) self.expose_attribute(local_name="tunnel_type", remote_name="tunnelType", attribute_type=str, is_required=False, is_unique=False, choices=[u'DC_DEFAULT', u'GRE', u'MPLSoUDP', u'VLAN', u'VXLAN']) @@ -2625,6 +2631,33 @@ def associated_underlay_id(self, value): self._associated_underlay_id = value + @property + def stateful_mode(self): + """ Get stateful_mode value. + + Notes: + This value indicates whether reflexive ACL is enabled or not for the Domain. It is 'REFLEXIVE' if enabled, or 'STATEFUL' if reflexive is disabled. + + + This attribute is named `statefulMode` in VSD API. + + """ + return self._stateful_mode + + @stateful_mode.setter + def stateful_mode(self, value): + """ Set stateful_mode value. + + Notes: + This value indicates whether reflexive ACL is enabled or not for the Domain. It is 'REFLEXIVE' if enabled, or 'STATEFUL' if reflexive is disabled. + + + This attribute is named `statefulMode` in VSD API. + + """ + self._stateful_mode = value + + @property def stretched(self): """ Get stretched value. diff --git a/vspk/v6/nuikeencryptionprofile.py b/vspk/v6/nuikeencryptionprofile.py index 64d7c816..44aaa501 100644 --- a/vspk/v6/nuikeencryptionprofile.py +++ b/vspk/v6/nuikeencryptionprofile.py @@ -82,6 +82,10 @@ class NUIKEEncryptionprofile(NURESTObject): CONST_ISAKMP_DIFFIE_HELMAN_GROUP_IDENTIFIER_GROUP_1_768_BIT_DH = "GROUP_1_768_BIT_DH" + CONST_ISAKMP_DIFFIE_HELMAN_GROUP_IDENTIFIER_GROUP_18_8192_BIT_DH = "GROUP_18_8192_BIT_DH" + + CONST_ISAKMP_DIFFIE_HELMAN_GROUP_IDENTIFIER_GROUP_20_384_BIT_DH = "GROUP_20_384_BIT_DH" + CONST_IPSEC_AUTHENTICATION_ALGORITHM_HMAC_SHA1 = "HMAC_SHA1" CONST_ISAKMP_AUTHENTICATION_MODE_PRE_SHARED_KEY = "PRE_SHARED_KEY" @@ -92,8 +96,12 @@ class NUIKEEncryptionprofile(NURESTObject): CONST_IPSEC_SA_REPLAY_WINDOW_SIZE_WINDOW_SIZE_256 = "WINDOW_SIZE_256" + CONST_ISAKMP_DIFFIE_HELMAN_GROUP_IDENTIFIER_GROUP_19_256_BIT_DH = "GROUP_19_256_BIT_DH" + CONST_ISAKMP_DIFFIE_HELMAN_GROUP_IDENTIFIER_GROUP_14_2048_BIT_DH = "GROUP_14_2048_BIT_DH" + CONST_ISAKMP_DIFFIE_HELMAN_GROUP_IDENTIFIER_GROUP_21_521_BIT_DH = "GROUP_21_521_BIT_DH" + CONST_IPSEC_ENCRYPTION_ALGORITHM_TRIPLE_DES = "TRIPLE_DES" CONST_IPSEC_AUTHENTICATION_ALGORITHM_HMAC_SHA256 = "HMAC_SHA256" @@ -173,7 +181,7 @@ def __init__(self, **kwargs): self.expose_attribute(local_name="ipsec_sa_replay_window_size", remote_name="IPsecSAReplayWindowSize", attribute_type=str, is_required=False, is_unique=False, choices=[u'WINDOW_SIZE_1024', u'WINDOW_SIZE_128', u'WINDOW_SIZE_256', u'WINDOW_SIZE_32', u'WINDOW_SIZE_512', u'WINDOW_SIZE_64']) self.expose_attribute(local_name="ipsec_sa_replay_window_size_value", remote_name="IPsecSAReplayWindowSizeValue", attribute_type=int, is_required=False, is_unique=False) self.expose_attribute(local_name="isakmp_authentication_mode", remote_name="ISAKMPAuthenticationMode", attribute_type=str, is_required=False, is_unique=False, choices=[u'PRE_SHARED_KEY']) - self.expose_attribute(local_name="isakmp_diffie_helman_group_identifier", remote_name="ISAKMPDiffieHelmanGroupIdentifier", attribute_type=str, is_required=False, is_unique=False, choices=[u'GROUP_14_2048_BIT_DH', u'GROUP_15_3072_BIT_DH', u'GROUP_1_768_BIT_DH', u'GROUP_2_1024_BIT_DH', u'GROUP_5_1536_BIT_DH']) + self.expose_attribute(local_name="isakmp_diffie_helman_group_identifier", remote_name="ISAKMPDiffieHelmanGroupIdentifier", attribute_type=str, is_required=False, is_unique=False, choices=[u'GROUP_14_2048_BIT_DH', u'GROUP_15_3072_BIT_DH', u'GROUP_18_8192_BIT_DH', u'GROUP_19_256_BIT_DH', u'GROUP_1_768_BIT_DH', u'GROUP_20_384_BIT_DH', u'GROUP_21_521_BIT_DH', u'GROUP_2_1024_BIT_DH', u'GROUP_5_1536_BIT_DH']) self.expose_attribute(local_name="isakmp_encryption_algorithm", remote_name="ISAKMPEncryptionAlgorithm", attribute_type=str, is_required=False, is_unique=False, choices=[u'AES128', u'AES192', u'AES256', u'TRIPLE_DES']) self.expose_attribute(local_name="isakmp_encryption_key_lifetime", remote_name="ISAKMPEncryptionKeyLifetime", attribute_type=int, is_required=False, is_unique=False) self.expose_attribute(local_name="isakmp_hash_algorithm", remote_name="ISAKMPHashAlgorithm", attribute_type=str, is_required=False, is_unique=False, choices=[u'SHA1', u'SHA256']) diff --git a/vspk/v6/nuinfrastructuregatewayprofile.py b/vspk/v6/nuinfrastructuregatewayprofile.py index 18019396..5fda5d6d 100644 --- a/vspk/v6/nuinfrastructuregatewayprofile.py +++ b/vspk/v6/nuinfrastructuregatewayprofile.py @@ -111,6 +111,8 @@ def __init__(self, **kwargs): self._dead_timer_enabled = None self._web_filter_download_port = None self._web_filter_query_port = None + self._secondary_remote_log_server_address = None + self._secondary_remote_log_server_port = None self._remote_log_mode = None self._remote_log_server_address = None self._remote_log_server_port = None @@ -151,6 +153,8 @@ def __init__(self, **kwargs): self.expose_attribute(local_name="dead_timer_enabled", remote_name="deadTimerEnabled", attribute_type=bool, is_required=False, is_unique=False) self.expose_attribute(local_name="web_filter_download_port", remote_name="webFilterDownloadPort", attribute_type=int, is_required=False, is_unique=False) self.expose_attribute(local_name="web_filter_query_port", remote_name="webFilterQueryPort", attribute_type=int, is_required=False, is_unique=False) + self.expose_attribute(local_name="secondary_remote_log_server_address", remote_name="secondaryRemoteLogServerAddress", attribute_type=str, is_required=False, is_unique=False) + self.expose_attribute(local_name="secondary_remote_log_server_port", remote_name="secondaryRemoteLogServerPort", attribute_type=int, is_required=False, is_unique=False) self.expose_attribute(local_name="remote_log_mode", remote_name="remoteLogMode", attribute_type=str, is_required=False, is_unique=False, choices=[u'DISABLED', u'RSYSLOG']) self.expose_attribute(local_name="remote_log_server_address", remote_name="remoteLogServerAddress", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="remote_log_server_port", remote_name="remoteLogServerPort", attribute_type=int, is_required=False, is_unique=False) @@ -464,6 +468,60 @@ def web_filter_query_port(self, value): self._web_filter_query_port = value + @property + def secondary_remote_log_server_address(self): + """ Get secondary_remote_log_server_address value. + + Notes: + Secondary Log Server for system logs generated by Gateways associated with this Infrastructure Profile. Can be an IP address or a URL. This field is optional. + + + This attribute is named `secondaryRemoteLogServerAddress` in VSD API. + + """ + return self._secondary_remote_log_server_address + + @secondary_remote_log_server_address.setter + def secondary_remote_log_server_address(self, value): + """ Set secondary_remote_log_server_address value. + + Notes: + Secondary Log Server for system logs generated by Gateways associated with this Infrastructure Profile. Can be an IP address or a URL. This field is optional. + + + This attribute is named `secondaryRemoteLogServerAddress` in VSD API. + + """ + self._secondary_remote_log_server_address = value + + + @property + def secondary_remote_log_server_port(self): + """ Get secondary_remote_log_server_port value. + + Notes: + Port to be used to access the Secondary Remote Syslog server. By default, this is port 0. + + + This attribute is named `secondaryRemoteLogServerPort` in VSD API. + + """ + return self._secondary_remote_log_server_port + + @secondary_remote_log_server_port.setter + def secondary_remote_log_server_port(self, value): + """ Set secondary_remote_log_server_port value. + + Notes: + Port to be used to access the Secondary Remote Syslog server. By default, this is port 0. + + + This attribute is named `secondaryRemoteLogServerPort` in VSD API. + + """ + self._secondary_remote_log_server_port = value + + @property def remote_log_mode(self): """ Get remote_log_mode value. diff --git a/vspk/v6/nul2domain.py b/vspk/v6/nul2domain.py index b9944be0..80ad370d 100644 --- a/vspk/v6/nul2domain.py +++ b/vspk/v6/nul2domain.py @@ -217,6 +217,8 @@ class NUL2Domain(NURESTObject): CONST_MAINTENANCE_MODE_ENABLED = "ENABLED" + CONST_STATEFUL_MODE_STATEFUL = "STATEFUL" + CONST_UPLINK_PREFERENCE_SYMMETRIC = "SYMMETRIC" CONST_FLOW_COLLECTION_ENABLED_DISABLED = "DISABLED" @@ -263,6 +265,8 @@ class NUL2Domain(NURESTObject): CONST_ENCRYPTION_ENABLED = "ENABLED" + CONST_STATEFUL_MODE_REFLEXIVE = "REFLEXIVE" + CONST_FLOW_LIMIT_ENABLED_ENABLED = "ENABLED" CONST_IP_TYPE_DUALSTACK = "DUALSTACK" @@ -301,6 +305,7 @@ def __init__(self, **kwargs): self._last_updated_date = None self._gateway = None self._gateway_mac_address = None + self._wbx_disable_mac_move = None self._address = None self._template_id = None self._service_id = None @@ -330,6 +335,7 @@ def __init__(self, **kwargs): self._associated_multicast_channel_map_id = None self._associated_shared_network_resource_id = None self._associated_underlay_id = None + self._stateful_mode = None self._stretched = None self._dual_stack_dynamic_ip_allocation = None self._multicast = None @@ -350,6 +356,7 @@ def __init__(self, **kwargs): self.expose_attribute(local_name="last_updated_date", remote_name="lastUpdatedDate", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="gateway", remote_name="gateway", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="gateway_mac_address", remote_name="gatewayMACAddress", attribute_type=str, is_required=False, is_unique=False) + self.expose_attribute(local_name="wbx_disable_mac_move", remote_name="wbxDisableMacMove", attribute_type=bool, is_required=False, is_unique=False) self.expose_attribute(local_name="address", remote_name="address", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="template_id", remote_name="templateID", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="service_id", remote_name="serviceID", attribute_type=int, is_required=False, is_unique=False) @@ -379,6 +386,7 @@ def __init__(self, **kwargs): self.expose_attribute(local_name="associated_multicast_channel_map_id", remote_name="associatedMulticastChannelMapID", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="associated_shared_network_resource_id", remote_name="associatedSharedNetworkResourceID", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="associated_underlay_id", remote_name="associatedUnderlayID", attribute_type=str, is_required=False, is_unique=False) + self.expose_attribute(local_name="stateful_mode", remote_name="statefulMode", attribute_type=str, is_required=False, is_unique=False, choices=[u'REFLEXIVE', u'STATEFUL']) self.expose_attribute(local_name="stretched", remote_name="stretched", attribute_type=bool, is_required=False, is_unique=False) self.expose_attribute(local_name="dual_stack_dynamic_ip_allocation", remote_name="dualStackDynamicIPAllocation", attribute_type=bool, is_required=False, is_unique=False) self.expose_attribute(local_name="multicast", remote_name="multicast", attribute_type=str, is_required=False, is_unique=False, choices=[u'DISABLED', u'ENABLED', u'INHERITED']) @@ -887,6 +895,33 @@ def gateway_mac_address(self, value): self._gateway_mac_address = value + @property + def wbx_disable_mac_move(self): + """ Get wbx_disable_mac_move value. + + Notes: + Disable MAC Move on WBX nodes. + + + This attribute is named `wbxDisableMacMove` in VSD API. + + """ + return self._wbx_disable_mac_move + + @wbx_disable_mac_move.setter + def wbx_disable_mac_move(self, value): + """ Set wbx_disable_mac_move value. + + Notes: + Disable MAC Move on WBX nodes. + + + This attribute is named `wbxDisableMacMove` in VSD API. + + """ + self._wbx_disable_mac_move = value + + @property def address(self): """ Get address value. @@ -1650,6 +1685,33 @@ def associated_underlay_id(self, value): self._associated_underlay_id = value + @property + def stateful_mode(self): + """ Get stateful_mode value. + + Notes: + This value indicates whether reflexive ACL is enabled or not for the L2Domain. It is 'REFLEXIVE' if enabled, or 'STATEFUL' if reflexive is disabled. + + + This attribute is named `statefulMode` in VSD API. + + """ + return self._stateful_mode + + @stateful_mode.setter + def stateful_mode(self, value): + """ Set stateful_mode value. + + Notes: + This value indicates whether reflexive ACL is enabled or not for the L2Domain. It is 'REFLEXIVE' if enabled, or 'STATEFUL' if reflexive is disabled. + + + This attribute is named `statefulMode` in VSD API. + + """ + self._stateful_mode = value + + @property def stretched(self): """ Get stretched value. diff --git a/vspk/v6/nume.py b/vspk/v6/nume.py index 7109314d..9e600343 100644 --- a/vspk/v6/nume.py +++ b/vspk/v6/nume.py @@ -100,6 +100,9 @@ from .fetchers import NUNetworkLayoutsFetcher +from .fetchers import NUNetworkMacroGroupsFetcher + + from .fetchers import NUNetworkPerformanceMeasurementsFetcher @@ -217,6 +220,9 @@ from .fetchers import NUEnterprisesFetcher +from .fetchers import NUEnterpriseNetworksFetcher + + from .fetchers import NUEnterpriseProfilesFetcher @@ -529,6 +535,9 @@ def __init__(self, **kwargs): self.network_layouts = NUNetworkLayoutsFetcher.fetcher_with_object(parent_object=self, relationship="root") + self.network_macro_groups = NUNetworkMacroGroupsFetcher.fetcher_with_object(parent_object=self, relationship="child") + + self.network_performance_measurements = NUNetworkPerformanceMeasurementsFetcher.fetcher_with_object(parent_object=self, relationship="root") @@ -646,6 +655,9 @@ def __init__(self, **kwargs): self.enterprises = NUEnterprisesFetcher.fetcher_with_object(parent_object=self, relationship="root") + self.enterprise_networks = NUEnterpriseNetworksFetcher.fetcher_with_object(parent_object=self, relationship="child") + + self.enterprise_profiles = NUEnterpriseProfilesFetcher.fetcher_with_object(parent_object=self, relationship="root") diff --git a/vspk/v6/nunsgateway.py b/vspk/v6/nunsgateway.py index 3d835bb4..76640a92 100644 --- a/vspk/v6/nunsgateway.py +++ b/vspk/v6/nunsgateway.py @@ -338,6 +338,7 @@ def __init__(self, **kwargs): self._gateway_config_raw_version = None self._gateway_config_version = None self._gateway_connected = None + self._path_mtu_discovery = None self._redundancy_group_id = None self._template_id = None self._pending = None @@ -411,6 +412,7 @@ def __init__(self, **kwargs): self.expose_attribute(local_name="gateway_config_raw_version", remote_name="gatewayConfigRawVersion", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="gateway_config_version", remote_name="gatewayConfigVersion", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="gateway_connected", remote_name="gatewayConnected", attribute_type=bool, is_required=False, is_unique=False) + self.expose_attribute(local_name="path_mtu_discovery", remote_name="pathMTUDiscovery", attribute_type=bool, is_required=False, is_unique=False) self.expose_attribute(local_name="redundancy_group_id", remote_name="redundancyGroupID", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="template_id", remote_name="templateID", attribute_type=str, is_required=True, is_unique=False) self.expose_attribute(local_name="pending", remote_name="pending", attribute_type=bool, is_required=False, is_unique=False) @@ -690,7 +692,7 @@ def tcp_maximum_segment_size(self): """ Get tcp_maximum_segment_size value. Notes: - Maximum Segment Size for TCP(min = 576, max = 7812). + Maximum TCP segment size (min = 576, max = 7812); value 0 indicates the use of dynamically computed MSS. This attribute is named `TCPMaximumSegmentSize` in VSD API. @@ -703,7 +705,7 @@ def tcp_maximum_segment_size(self, value): """ Set tcp_maximum_segment_size value. Notes: - Maximum Segment Size for TCP(min = 576, max = 7812). + Maximum TCP segment size (min = 576, max = 7812); value 0 indicates the use of dynamically computed MSS. This attribute is named `TCPMaximumSegmentSize` in VSD API. @@ -1325,6 +1327,33 @@ def gateway_connected(self, value): self._gateway_connected = value + @property + def path_mtu_discovery(self): + """ Get path_mtu_discovery value. + + Notes: + Boolean flag to indicate whether Path MTU Discovery is enabled or not. + + + This attribute is named `pathMTUDiscovery` in VSD API. + + """ + return self._path_mtu_discovery + + @path_mtu_discovery.setter + def path_mtu_discovery(self, value): + """ Set path_mtu_discovery value. + + Notes: + Boolean flag to indicate whether Path MTU Discovery is enabled or not. + + + This attribute is named `pathMTUDiscovery` in VSD API. + + """ + self._path_mtu_discovery = value + + @property def redundancy_group_id(self): """ Get redundancy_group_id value. diff --git a/vspk/v6/nustatisticsprofile.py b/vspk/v6/nustatisticsprofile.py index 23b2595b..d2507e74 100644 --- a/vspk/v6/nustatisticsprofile.py +++ b/vspk/v6/nustatisticsprofile.py @@ -70,10 +70,12 @@ def __init__(self, **kwargs): self._name = None self._description = None + self._clone_from = None self._flow_stats_aggregation_enabled = None self.expose_attribute(local_name="name", remote_name="name", attribute_type=str, is_required=True, is_unique=True) self.expose_attribute(local_name="description", remote_name="description", attribute_type=str, is_required=False, is_unique=False) + self.expose_attribute(local_name="clone_from", remote_name="cloneFrom", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="flow_stats_aggregation_enabled", remote_name="flowStatsAggregationEnabled", attribute_type=bool, is_required=False, is_unique=False) @@ -139,6 +141,33 @@ def description(self, value): self._description = value + @property + def clone_from(self): + """ Get clone_from value. + + Notes: + UUID of the Statistics Profile from which this profile is being cloned. + + + This attribute is named `cloneFrom` in VSD API. + + """ + return self._clone_from + + @clone_from.setter + def clone_from(self, value): + """ Set clone_from value. + + Notes: + UUID of the Statistics Profile from which this profile is being cloned. + + + This attribute is named `cloneFrom` in VSD API. + + """ + self._clone_from = value + + @property def flow_stats_aggregation_enabled(self): """ Get flow_stats_aggregation_enabled value. diff --git a/vspk/v6/nusubnet.py b/vspk/v6/nusubnet.py index 6976de30..06c715db 100644 --- a/vspk/v6/nusubnet.py +++ b/vspk/v6/nusubnet.py @@ -247,6 +247,7 @@ def __init__(self, **kwargs): self._last_updated_date = None self._gateway = None self._gateway_mac_address = None + self._wbx_disable_mac_move = None self._access_restriction_enabled = None self._address = None self._advertise = None @@ -311,6 +312,7 @@ def __init__(self, **kwargs): self.expose_attribute(local_name="last_updated_date", remote_name="lastUpdatedDate", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="gateway", remote_name="gateway", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="gateway_mac_address", remote_name="gatewayMACAddress", attribute_type=str, is_required=False, is_unique=False) + self.expose_attribute(local_name="wbx_disable_mac_move", remote_name="wbxDisableMacMove", attribute_type=bool, is_required=False, is_unique=False) self.expose_attribute(local_name="access_restriction_enabled", remote_name="accessRestrictionEnabled", attribute_type=bool, is_required=False, is_unique=False) self.expose_attribute(local_name="address", remote_name="address", attribute_type=str, is_required=False, is_unique=False) self.expose_attribute(local_name="advertise", remote_name="advertise", attribute_type=bool, is_required=False, is_unique=False) @@ -832,6 +834,33 @@ def gateway_mac_address(self, value): self._gateway_mac_address = value + @property + def wbx_disable_mac_move(self): + """ Get wbx_disable_mac_move value. + + Notes: + Disable MAC Move on WBX nodes. + + + This attribute is named `wbxDisableMacMove` in VSD API. + + """ + return self._wbx_disable_mac_move + + @wbx_disable_mac_move.setter + def wbx_disable_mac_move(self, value): + """ Set wbx_disable_mac_move value. + + Notes: + Disable MAC Move on WBX nodes. + + + This attribute is named `wbxDisableMacMove` in VSD API. + + """ + self._wbx_disable_mac_move = value + + @property def access_restriction_enabled(self): """ Get access_restriction_enabled value. diff --git a/vspk/v6/nusystemconfig.py b/vspk/v6/nusystemconfig.py index 7f70fa8c..4600376f 100644 --- a/vspk/v6/nusystemconfig.py +++ b/vspk/v6/nusystemconfig.py @@ -226,6 +226,9 @@ def __init__(self, **kwargs): self._secondary_as_number = None self._secondary_rt_lower_limit = None self._secondary_rt_upper_limit = None + self._reflexive_aclicmp_timeout = None + self._reflexive_acl_non_tcp_timeout = None + self._reflexive_acltcp_timeout = None self._denied_flow_collection_enabled = None self._per_domain_vlan_id_enabled = None self._service_id_upper_limit = None @@ -273,6 +276,7 @@ def __init__(self, **kwargs): self._loopback_intf_upper_limit = None self._post_processor_threads_count = None self._creation_date = None + self._srl_yang_validation_enabled = None self._group_key_default_sek_generation_interval = None self._group_key_default_sek_lifetime = None self._group_key_default_sek_payload_encryption_algorithm = None @@ -418,6 +422,9 @@ def __init__(self, **kwargs): self.expose_attribute(local_name="secondary_as_number", remote_name="secondaryASNumber", attribute_type=int, is_required=False, is_unique=False) self.expose_attribute(local_name="secondary_rt_lower_limit", remote_name="secondaryRTLowerLimit", attribute_type=int, is_required=False, is_unique=False) self.expose_attribute(local_name="secondary_rt_upper_limit", remote_name="secondaryRTUpperLimit", attribute_type=int, is_required=False, is_unique=False) + self.expose_attribute(local_name="reflexive_aclicmp_timeout", remote_name="reflexiveACLICMPTimeout", attribute_type=int, is_required=False, is_unique=False) + self.expose_attribute(local_name="reflexive_acl_non_tcp_timeout", remote_name="reflexiveACLNonTCPTimeout", attribute_type=int, is_required=False, is_unique=False) + self.expose_attribute(local_name="reflexive_acltcp_timeout", remote_name="reflexiveACLTCPTimeout", attribute_type=int, is_required=False, is_unique=False) self.expose_attribute(local_name="denied_flow_collection_enabled", remote_name="deniedFlowCollectionEnabled", attribute_type=bool, is_required=False, is_unique=False) self.expose_attribute(local_name="per_domain_vlan_id_enabled", remote_name="perDomainVlanIdEnabled", attribute_type=bool, is_required=False, is_unique=False) self.expose_attribute(local_name="service_id_upper_limit", remote_name="serviceIDUpperLimit", attribute_type=int, is_required=False, is_unique=False) @@ -465,6 +472,7 @@ def __init__(self, **kwargs): self.expose_attribute(local_name="loopback_intf_upper_limit", remote_name="loopbackIntfUpperLimit", attribute_type=int, is_required=True, is_unique=False) self.expose_attribute(local_name="post_processor_threads_count", remote_name="postProcessorThreadsCount", attribute_type=int, is_required=False, is_unique=False) self.expose_attribute(local_name="creation_date", remote_name="creationDate", attribute_type=str, is_required=False, is_unique=False) + self.expose_attribute(local_name="srl_yang_validation_enabled", remote_name="srlYangValidationEnabled", attribute_type=bool, is_required=False, is_unique=False) self.expose_attribute(local_name="group_key_default_sek_generation_interval", remote_name="groupKeyDefaultSEKGenerationInterval", attribute_type=int, is_required=False, is_unique=False) self.expose_attribute(local_name="group_key_default_sek_lifetime", remote_name="groupKeyDefaultSEKLifetime", attribute_type=int, is_required=False, is_unique=False) self.expose_attribute(local_name="group_key_default_sek_payload_encryption_algorithm", remote_name="groupKeyDefaultSEKPayloadEncryptionAlgorithm", attribute_type=str, is_required=False, is_unique=False, choices=[u'RSA_1024']) @@ -2577,6 +2585,87 @@ def secondary_rt_upper_limit(self, value): self._secondary_rt_upper_limit = value + @property + def reflexive_aclicmp_timeout(self): + """ Get reflexive_aclicmp_timeout value. + + Notes: + Defines the timeout in seconds for reflexive ACLs that are of type ICMP. Supported in Virtual Cloud Services (VCS) only. + + + This attribute is named `reflexiveACLICMPTimeout` in VSD API. + + """ + return self._reflexive_aclicmp_timeout + + @reflexive_aclicmp_timeout.setter + def reflexive_aclicmp_timeout(self, value): + """ Set reflexive_aclicmp_timeout value. + + Notes: + Defines the timeout in seconds for reflexive ACLs that are of type ICMP. Supported in Virtual Cloud Services (VCS) only. + + + This attribute is named `reflexiveACLICMPTimeout` in VSD API. + + """ + self._reflexive_aclicmp_timeout = value + + + @property + def reflexive_acl_non_tcp_timeout(self): + """ Get reflexive_acl_non_tcp_timeout value. + + Notes: + Defines the timeout in seconds for reflexive ACLs that are not of type TCP. + + + This attribute is named `reflexiveACLNonTCPTimeout` in VSD API. + + """ + return self._reflexive_acl_non_tcp_timeout + + @reflexive_acl_non_tcp_timeout.setter + def reflexive_acl_non_tcp_timeout(self, value): + """ Set reflexive_acl_non_tcp_timeout value. + + Notes: + Defines the timeout in seconds for reflexive ACLs that are not of type TCP. + + + This attribute is named `reflexiveACLNonTCPTimeout` in VSD API. + + """ + self._reflexive_acl_non_tcp_timeout = value + + + @property + def reflexive_acltcp_timeout(self): + """ Get reflexive_acltcp_timeout value. + + Notes: + Defines the timeout in seconds for reflexive ACLs that are of type TCP. + + + This attribute is named `reflexiveACLTCPTimeout` in VSD API. + + """ + return self._reflexive_acltcp_timeout + + @reflexive_acltcp_timeout.setter + def reflexive_acltcp_timeout(self, value): + """ Set reflexive_acltcp_timeout value. + + Notes: + Defines the timeout in seconds for reflexive ACLs that are of type TCP. + + + This attribute is named `reflexiveACLTCPTimeout` in VSD API. + + """ + self._reflexive_acltcp_timeout = value + + @property def denied_flow_collection_enabled(self): """ Get denied_flow_collection_enabled value. @@ -3846,6 +3935,33 @@ def creation_date(self, value): self._creation_date = value + @property + def srl_yang_validation_enabled(self): + """ Get srl_yang_validation_enabled value. + + Notes: + Indicates if IPv4 Filter, IPv6 Filter, QoS Profile, BGP Neighbor Session and Routing Policy Blob validation is enabled for SRL. + + + This attribute is named `srlYangValidationEnabled` in VSD API. + + """ + return self._srl_yang_validation_enabled + + @srl_yang_validation_enabled.setter + def srl_yang_validation_enabled(self, value): + """ Set srl_yang_validation_enabled value. + + Notes: + Indicates if IPv4 Filter, IPv6 Filter, QoS Profile, BGP Neighbor Session and Routing Policy Blob validation is enabled for SRL. + + + This attribute is named `srlYangValidationEnabled` in VSD API. + + """ + self._srl_yang_validation_enabled = value + + @property def group_key_default_sek_generation_interval(self): """ Get group_key_default_sek_generation_interval value.