diff --git a/src/network-manager/HISTORY.rst b/src/network-manager/HISTORY.rst index fe2fdf11895..8b195d11da7 100644 --- a/src/network-manager/HISTORY.rst +++ b/src/network-manager/HISTORY.rst @@ -3,6 +3,10 @@ Release History =============== +2.0.2 ++++++ +* * Add new feature (CVG PL64K) to cmd `az network manager connect-config` + 2.0.1 +++++ * Fix the post commit commands for AVNM configuration (All config types) diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/__cmd_group.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/__cmd_group.py index 76275dc90be..68a69ff785b 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/__cmd_group.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/__cmd_group.py @@ -15,7 +15,7 @@ "network manager", ) class __CMDGroup(AAZCommandGroup): - """Manage network-manager with network. + """Manage Network Manager """ pass diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/_list_active_connectivity_config.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/_list_active_connectivity_config.py index 23f08fec364..d30830eef02 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/_list_active_connectivity_config.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/_list_active_connectivity_config.py @@ -22,9 +22,9 @@ class ListActiveConnectivityConfig(AAZCommand): """ _aaz_info = { - "version": "2022-01-01", + "version": "2024-07-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/listactiveconnectivityconfigurations", "2022-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/listactiveconnectivityconfigurations", "2024-07-01"], ] } @@ -137,7 +137,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2022-01-01", + "api-version", "2024-07-01", required=True, ), } @@ -231,6 +231,9 @@ def _build_schema_on_200(cls): serialized_name="appliesToGroups", flags={"required": True}, ) + properties.connectivity_capabilities = AAZObjectType( + serialized_name="connectivityCapabilities", + ) properties.connectivity_topology = AAZStrType( serialized_name="connectivityTopology", flags={"required": True}, @@ -247,6 +250,10 @@ def _build_schema_on_200(cls): serialized_name="provisioningState", flags={"read_only": True}, ) + properties.resource_guid = AAZStrType( + serialized_name="resourceGuid", + flags={"read_only": True}, + ) applies_to_groups = cls._schema_on_200.value.Element.properties.applies_to_groups applies_to_groups.Element = AAZObjectType() @@ -267,6 +274,17 @@ def _build_schema_on_200(cls): serialized_name="useHubGateway", ) + connectivity_capabilities = cls._schema_on_200.value.Element.properties.connectivity_capabilities + connectivity_capabilities.connected_group_address_overlap = AAZStrType( + serialized_name="connectedGroupAddressOverlap", + ) + connectivity_capabilities.connected_group_private_endpoints_scale = AAZStrType( + serialized_name="connectedGroupPrivateEndpointsScale", + ) + connectivity_capabilities.peering_enforcement = AAZStrType( + serialized_name="peeringEnforcement", + ) + hubs = cls._schema_on_200.value.Element.properties.hubs hubs.Element = AAZObjectType() diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/_list_effective_connectivity_config.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/_list_effective_connectivity_config.py index c1c56e8c4ad..05ec0c8e5b4 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/_list_effective_connectivity_config.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/_list_effective_connectivity_config.py @@ -22,9 +22,9 @@ class ListEffectiveConnectivityConfig(AAZCommand): """ _aaz_info = { - "version": "2022-01-01", + "version": "2024-07-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/virtualnetworks/{}/listnetworkmanagereffectiveconnectivityconfigurations", "2022-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/virtualnetworks/{}/listnetworkmanagereffectiveconnectivityconfigurations", "2024-07-01"], ] } @@ -129,7 +129,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2022-01-01", + "api-version", "2024-07-01", required=True, ), } @@ -214,6 +214,9 @@ def _build_schema_on_200(cls): serialized_name="appliesToGroups", flags={"required": True}, ) + properties.connectivity_capabilities = AAZObjectType( + serialized_name="connectivityCapabilities", + ) properties.connectivity_topology = AAZStrType( serialized_name="connectivityTopology", flags={"required": True}, @@ -230,6 +233,10 @@ def _build_schema_on_200(cls): serialized_name="provisioningState", flags={"read_only": True}, ) + properties.resource_guid = AAZStrType( + serialized_name="resourceGuid", + flags={"read_only": True}, + ) applies_to_groups = cls._schema_on_200.value.Element.properties.applies_to_groups applies_to_groups.Element = AAZObjectType() @@ -250,6 +257,17 @@ def _build_schema_on_200(cls): serialized_name="useHubGateway", ) + connectivity_capabilities = cls._schema_on_200.value.Element.properties.connectivity_capabilities + connectivity_capabilities.connected_group_address_overlap = AAZStrType( + serialized_name="connectedGroupAddressOverlap", + ) + connectivity_capabilities.connected_group_private_endpoints_scale = AAZStrType( + serialized_name="connectedGroupPrivateEndpointsScale", + ) + connectivity_capabilities.peering_enforcement = AAZStrType( + serialized_name="peeringEnforcement", + ) + hubs = cls._schema_on_200.value.Element.properties.hubs hubs.Element = AAZObjectType() diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/_post_commit.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/_post_commit.py index 415556f6c49..6e073cca9ff 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/_post_commit.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/_post_commit.py @@ -32,7 +32,7 @@ class PostCommit(AAZCommand): def _handler(self, command_args): super()._handler(command_args) - return self.build_lro_poller(self._execute_operations, None) + return self.build_lro_poller(self._execute_operations, self._output) _args_schema = None @@ -100,6 +100,10 @@ def pre_operations(self): def post_operations(self): pass + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + class NetworkManagerCommitsPost(AAZHttpOperation): CLIENT_TYPE = "MgmtClient" diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/_update.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/_update.py index 6999d64319d..633ab6a7105 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/_update.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/_update.py @@ -72,9 +72,6 @@ def _build_arguments_schema(cls, *args, **kwargs): arg_group="Parameters", help="Resource location.", nullable=True, - fmt=AAZResourceLocationArgFormat( - resource_group_arg="resource_group", - ), ) _args_schema.tags = AAZDictArg( options=["--tags"], diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/__cmd_group.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/__cmd_group.py index 31a24927317..b53a6d52f05 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/__cmd_group.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/__cmd_group.py @@ -15,7 +15,7 @@ "network manager connect-config", ) class __CMDGroup(AAZCommandGroup): - """Manage connectivity configuration with network. + """Manage Connectivity Configuration """ pass diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py index 81638d7aca7..bb508085fed 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_create.py @@ -16,15 +16,12 @@ ) class Create(AAZCommand): """Create a new network manager connectivity configuration - - :example: Create/Update Azure Virtual Network Manager Connectivity Configuration - az network manager connect-config create --configuration-name "myTestConnectivityConfig" --description "Sample Configuration" --applies-to-group group-connectivity="None" is-global=false network-group-id="/subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkManagers/testNetworkManager/networkManagerGroups/group1" use-hub-gateway=true --connectivity-topology "HubAndSpoke" --delete-existing-peering true --hub resource-id="subscriptions/subscriptionA/resourceGroups/myResourceGroup/providers/Micr osoft.Network/virtualNetworks/myTestConnectivityConfig" resource- type="Microsoft.Network/virtualNetworks" --is-global true --network-manager-name "testNetworkManager" --resource-group "myResourceGroup" """ _aaz_info = { - "version": "2022-01-01", + "version": "2024-07-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations/{}", "2022-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations/{}", "2024-07-01"], ] } @@ -45,12 +42,12 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.configuration_name = AAZStrArg( - options=["--configuration-name"], + options=["-n", "--name", "--configuration-name"], help="The name of the network manager connectivity configuration.", required=True, ) _args_schema.network_manager_name = AAZStrArg( - options=["-n", "--name", "--network-manager-name"], + options=["--network-manager-name"], help="The name of the network manager.", required=True, ) @@ -63,10 +60,14 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.applies_to_groups = AAZListArg( options=["--applies-to-groups"], - singular_options=["--applies-to-group"], arg_group="Properties", help="Groups for configuration", ) + _args_schema.connect_capabilities = AAZObjectArg( + options=["--connect-capabilities"], + arg_group="Properties", + help="Collection of additional settings to enhance specific topology behaviors of the connectivity configuration resource.", + ) _args_schema.connectivity_topology = AAZStrArg( options=["--connectivity-topology"], arg_group="Properties", @@ -86,7 +87,6 @@ def _build_arguments_schema(cls, *args, **kwargs): ) _args_schema.hubs = AAZListArg( options=["--hubs"], - singular_options=["--hub"], arg_group="Properties", help="List of hubItems", ) @@ -103,13 +103,13 @@ def _build_arguments_schema(cls, *args, **kwargs): _element = cls._args_schema.applies_to_groups.Element _element.group_connectivity = AAZStrArg( options=["group-connectivity"], - help="Group connectivity type. Only required if topology is Hub and Spoke.", + help="Group connectivity type.", required=True, enum={"DirectlyConnected": "DirectlyConnected", "None": "None"}, ) _element.is_global = AAZStrArg( options=["is-global"], - help="Flag if global is supported. Only required if topology is Hub and Spoke.", + help="Flag if global is supported.", enum={"False": "False", "True": "True"}, ) _element.network_group_id = AAZStrArg( @@ -119,10 +119,33 @@ def _build_arguments_schema(cls, *args, **kwargs): ) _element.use_hub_gateway = AAZStrArg( options=["use-hub-gateway"], - help="Flag if need to use hub gateway. Only required if topology is Hub and Spoke.", + help="Flag if need to use hub gateway.", enum={"False": "False", "True": "True"}, ) + connect_capabilities = cls._args_schema.connect_capabilities + connect_capabilities.connected_group_address_overlap = AAZStrArg( + options=["connected-group-address-overlap"], + help="Behavior to handle overlapped IP address space among members of the connected group of the connectivity configuration.", + required=True, + default="Allowed", + enum={"Allowed": "Allowed", "Disallowed": "Disallowed"}, + ) + connect_capabilities.connected_group_private_endpoints_scale = AAZStrArg( + options=["connected-group-private-endpoints-scale"], + help="Option indicating the scale of private endpoints allowed in the connected group of the connectivity configuration.", + required=True, + default="Standard", + enum={"HighScale": "HighScale", "Standard": "Standard"}, + ) + connect_capabilities.peering_enforcement = AAZStrArg( + options=["peering-enforcement"], + help="Option indicating enforcement of peerings created by the connectivity configuration.", + required=True, + default="Unenforced", + enum={"Enforced": "Enforced", "Unenforced": "Unenforced"}, + ) + hubs = cls._args_schema.hubs hubs.Element = AAZObjectArg() @@ -133,7 +156,7 @@ def _build_arguments_schema(cls, *args, **kwargs): ) _element.resource_type = AAZStrArg( options=["resource-type"], - help="Resource Type, suggested value(s): 'Microsoft.Network/virtualNetworks'", + help="Resource Type.", ) return cls._args_schema @@ -206,7 +229,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2022-01-01", + "api-version", "2024-07-01", required=True, ), } @@ -236,6 +259,7 @@ def content(self): properties = _builder.get(".properties") if properties is not None: properties.set_prop("appliesToGroups", AAZListType, ".applies_to_groups", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("connectivityCapabilities", AAZObjectType, ".connect_capabilities") properties.set_prop("connectivityTopology", AAZStrType, ".connectivity_topology", typ_kwargs={"flags": {"required": True}}) properties.set_prop("deleteExistingPeering", AAZStrType, ".delete_existing_peering") properties.set_prop("description", AAZStrType, ".description") @@ -253,6 +277,12 @@ def content(self): _elements.set_prop("networkGroupId", AAZStrType, ".network_group_id", typ_kwargs={"flags": {"required": True}}) _elements.set_prop("useHubGateway", AAZStrType, ".use_hub_gateway") + connectivity_capabilities = _builder.get(".properties.connectivityCapabilities") + if connectivity_capabilities is not None: + connectivity_capabilities.set_prop("connectedGroupAddressOverlap", AAZStrType, ".connected_group_address_overlap", typ_kwargs={"flags": {"required": True}}) + connectivity_capabilities.set_prop("connectedGroupPrivateEndpointsScale", AAZStrType, ".connected_group_private_endpoints_scale", typ_kwargs={"flags": {"required": True}}) + connectivity_capabilities.set_prop("peeringEnforcement", AAZStrType, ".peering_enforcement", typ_kwargs={"flags": {"required": True}}) + hubs = _builder.get(".properties.hubs") if hubs is not None: hubs.set_elements(AAZObjectType, ".") @@ -307,6 +337,9 @@ def _build_schema_on_200_201(cls): serialized_name="appliesToGroups", flags={"required": True}, ) + properties.connectivity_capabilities = AAZObjectType( + serialized_name="connectivityCapabilities", + ) properties.connectivity_topology = AAZStrType( serialized_name="connectivityTopology", flags={"required": True}, @@ -323,6 +356,10 @@ def _build_schema_on_200_201(cls): serialized_name="provisioningState", flags={"read_only": True}, ) + properties.resource_guid = AAZStrType( + serialized_name="resourceGuid", + flags={"read_only": True}, + ) applies_to_groups = cls._schema_on_200_201.properties.applies_to_groups applies_to_groups.Element = AAZObjectType() @@ -343,6 +380,20 @@ def _build_schema_on_200_201(cls): serialized_name="useHubGateway", ) + connectivity_capabilities = cls._schema_on_200_201.properties.connectivity_capabilities + connectivity_capabilities.connected_group_address_overlap = AAZStrType( + serialized_name="connectedGroupAddressOverlap", + flags={"required": True}, + ) + connectivity_capabilities.connected_group_private_endpoints_scale = AAZStrType( + serialized_name="connectedGroupPrivateEndpointsScale", + flags={"required": True}, + ) + connectivity_capabilities.peering_enforcement = AAZStrType( + serialized_name="peeringEnforcement", + flags={"required": True}, + ) + hubs = cls._schema_on_200_201.properties.hubs hubs.Element = AAZObjectType() diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_delete.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_delete.py index 567d5425a61..6821ef020e2 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_delete.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_delete.py @@ -17,15 +17,12 @@ ) class Delete(AAZCommand): """Delete a network manager connectivity configuration, specified by the resource group, network manager name, and connectivity configuration name - - :example: Delete Azure Virtual Network Manager Connectivity Configuration - az network manager connect-config delete --configuration-name "myTestConnectivityConfig" --network-manager-name "testNetworkManager" --resource-group "myResourceGroup" """ _aaz_info = { - "version": "2022-01-01", + "version": "2024-07-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations/{}", "2022-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations/{}", "2024-07-01"], ] } @@ -47,13 +44,13 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.configuration_name = AAZStrArg( - options=["--configuration-name"], + options=["-n", "--name", "--configuration-name"], help="The name of the network manager connectivity configuration.", required=True, id_part="child_name_1", ) _args_schema.network_manager_name = AAZStrArg( - options=["-n", "--name", "--network-manager-name"], + options=["--network-manager-name"], help="The name of the network manager.", required=True, id_part="name", @@ -160,7 +157,7 @@ def query_parameters(self): "force", self.ctx.args.force, ), **self.serialize_query_param( - "api-version", "2022-01-01", + "api-version", "2024-07-01", required=True, ), } diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_list.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_list.py index 095cdab2ec2..591a9949227 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_list.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_list.py @@ -16,15 +16,12 @@ ) class List(AAZCommand): """List all the network manager connectivity configuration in a specified network manager. - - :example: List Azure Virtual Network Manager Connecitivity Configuration - az network manager connect-config list --network-manager-name "testNetworkManager" --resource-group "myResourceGroup" """ _aaz_info = { - "version": "2022-01-01", + "version": "2024-07-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations", "2022-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations", "2024-07-01"], ] } @@ -46,7 +43,7 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.network_manager_name = AAZStrArg( - options=["-n", "--name", "--network-manager-name"], + options=["--network-manager-name"], help="The name of the network manager.", required=True, ) @@ -139,7 +136,7 @@ def query_parameters(self): "$top", self.ctx.args.top, ), **self.serialize_query_param( - "api-version", "2022-01-01", + "api-version", "2024-07-01", required=True, ), } @@ -206,6 +203,9 @@ def _build_schema_on_200(cls): serialized_name="appliesToGroups", flags={"required": True}, ) + properties.connectivity_capabilities = AAZObjectType( + serialized_name="connectivityCapabilities", + ) properties.connectivity_topology = AAZStrType( serialized_name="connectivityTopology", flags={"required": True}, @@ -222,6 +222,10 @@ def _build_schema_on_200(cls): serialized_name="provisioningState", flags={"read_only": True}, ) + properties.resource_guid = AAZStrType( + serialized_name="resourceGuid", + flags={"read_only": True}, + ) applies_to_groups = cls._schema_on_200.value.Element.properties.applies_to_groups applies_to_groups.Element = AAZObjectType() @@ -242,6 +246,20 @@ def _build_schema_on_200(cls): serialized_name="useHubGateway", ) + connectivity_capabilities = cls._schema_on_200.value.Element.properties.connectivity_capabilities + connectivity_capabilities.connected_group_address_overlap = AAZStrType( + serialized_name="connectedGroupAddressOverlap", + flags={"required": True}, + ) + connectivity_capabilities.connected_group_private_endpoints_scale = AAZStrType( + serialized_name="connectedGroupPrivateEndpointsScale", + flags={"required": True}, + ) + connectivity_capabilities.peering_enforcement = AAZStrType( + serialized_name="peeringEnforcement", + flags={"required": True}, + ) + hubs = cls._schema_on_200.value.Element.properties.hubs hubs.Element = AAZObjectType() diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_show.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_show.py index 402c75535d4..47e0ab149e4 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_show.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_show.py @@ -16,15 +16,12 @@ ) class Show(AAZCommand): """Get a Network Connectivity Configuration, specified by the resource group, network manager name, and connectivity Configuration name - - :example: Get Azure Virtual Network Manager Connectivity Configuration - az network manager connect-config show --configuration-name "myTestConnectivityConfig" --network-manager-name "testNetworkManager" --resource-group "myResourceGroup" """ _aaz_info = { - "version": "2022-01-01", + "version": "2024-07-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations/{}", "2022-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations/{}", "2024-07-01"], ] } @@ -45,13 +42,13 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.configuration_name = AAZStrArg( - options=["--configuration-name"], + options=["-n", "--name", "--configuration-name"], help="The name of the network manager connectivity configuration.", required=True, id_part="child_name_1", ) _args_schema.network_manager_name = AAZStrArg( - options=["-n", "--name", "--network-manager-name"], + options=["--network-manager-name"], help="The name of the network manager.", required=True, id_part="name", @@ -130,7 +127,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2022-01-01", + "api-version", "2024-07-01", required=True, ), } @@ -188,6 +185,9 @@ def _build_schema_on_200(cls): serialized_name="appliesToGroups", flags={"required": True}, ) + properties.connectivity_capabilities = AAZObjectType( + serialized_name="connectivityCapabilities", + ) properties.connectivity_topology = AAZStrType( serialized_name="connectivityTopology", flags={"required": True}, @@ -204,6 +204,10 @@ def _build_schema_on_200(cls): serialized_name="provisioningState", flags={"read_only": True}, ) + properties.resource_guid = AAZStrType( + serialized_name="resourceGuid", + flags={"read_only": True}, + ) applies_to_groups = cls._schema_on_200.properties.applies_to_groups applies_to_groups.Element = AAZObjectType() @@ -224,6 +228,20 @@ def _build_schema_on_200(cls): serialized_name="useHubGateway", ) + connectivity_capabilities = cls._schema_on_200.properties.connectivity_capabilities + connectivity_capabilities.connected_group_address_overlap = AAZStrType( + serialized_name="connectedGroupAddressOverlap", + flags={"required": True}, + ) + connectivity_capabilities.connected_group_private_endpoints_scale = AAZStrType( + serialized_name="connectedGroupPrivateEndpointsScale", + flags={"required": True}, + ) + connectivity_capabilities.peering_enforcement = AAZStrType( + serialized_name="peeringEnforcement", + flags={"required": True}, + ) + hubs = cls._schema_on_200.properties.hubs hubs.Element = AAZObjectType() diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_update.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_update.py index a3405428df5..d0e146206df 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_update.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_update.py @@ -19,9 +19,9 @@ class Update(AAZCommand): """ _aaz_info = { - "version": "2022-01-01", + "version": "2024-07-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations/{}", "2022-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations/{}", "2024-07-01"], ] } @@ -44,13 +44,13 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.configuration_name = AAZStrArg( - options=["--configuration-name"], + options=["-n", "--name", "--configuration-name"], help="The name of the network manager connectivity configuration.", required=True, id_part="child_name_1", ) _args_schema.network_manager_name = AAZStrArg( - options=["-n", "--name", "--network-manager-name"], + options=["--network-manager-name"], help="The name of the network manager.", required=True, id_part="name", @@ -64,10 +64,15 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.applies_to_groups = AAZListArg( options=["--applies-to-groups"], - singular_options=["--applies-to-group"], arg_group="Properties", help="Groups for configuration", ) + _args_schema.connect_capabilities = AAZObjectArg( + options=["--connect-capabilities"], + arg_group="Properties", + help="Collection of additional settings to enhance specific topology behaviors of the connectivity configuration resource.", + nullable=True, + ) _args_schema.connectivity_topology = AAZStrArg( options=["--connectivity-topology"], arg_group="Properties", @@ -89,7 +94,6 @@ def _build_arguments_schema(cls, *args, **kwargs): ) _args_schema.hubs = AAZListArg( options=["--hubs"], - singular_options=["--hub"], arg_group="Properties", help="List of hubItems", nullable=True, @@ -110,12 +114,12 @@ def _build_arguments_schema(cls, *args, **kwargs): _element = cls._args_schema.applies_to_groups.Element _element.group_connectivity = AAZStrArg( options=["group-connectivity"], - help="Group connectivity type. Only required if topology is Hub and Spoke.", + help="Group connectivity type.", enum={"DirectlyConnected": "DirectlyConnected", "None": "None"}, ) _element.is_global = AAZStrArg( options=["is-global"], - help="Flag if global is supported. Only required if topology is Hub and Spoke.", + help="Flag if global is supported.", nullable=True, enum={"False": "False", "True": "True"}, ) @@ -125,11 +129,28 @@ def _build_arguments_schema(cls, *args, **kwargs): ) _element.use_hub_gateway = AAZStrArg( options=["use-hub-gateway"], - help="Flag if need to use hub gateway. Only required if topology is Hub and Spoke.", + help="Flag if need to use hub gateway.", nullable=True, enum={"False": "False", "True": "True"}, ) + connect_capabilities = cls._args_schema.connect_capabilities + connect_capabilities.connected_group_address_overlap = AAZStrArg( + options=["connected-group-address-overlap"], + help="Behavior to handle overlapped IP address space among members of the connected group of the connectivity configuration.", + enum={"Allowed": "Allowed", "Disallowed": "Disallowed"}, + ) + connect_capabilities.connected_group_private_endpoints_scale = AAZStrArg( + options=["connected-group-private-endpoints-scale"], + help="Option indicating the scale of private endpoints allowed in the connected group of the connectivity configuration.", + enum={"HighScale": "HighScale", "Standard": "Standard"}, + ) + connect_capabilities.peering_enforcement = AAZStrArg( + options=["peering-enforcement"], + help="Option indicating enforcement of peerings created by the connectivity configuration.", + enum={"Enforced": "Enforced", "Unenforced": "Unenforced"}, + ) + hubs = cls._args_schema.hubs hubs.Element = AAZObjectArg( nullable=True, @@ -143,7 +164,7 @@ def _build_arguments_schema(cls, *args, **kwargs): ) _element.resource_type = AAZStrArg( options=["resource-type"], - help="Resource Type, suggested value(s): 'Microsoft.Network/virtualNetworks'", + help="Resource Type.", nullable=True, ) return cls._args_schema @@ -230,7 +251,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2022-01-01", + "api-version", "2024-07-01", required=True, ), } @@ -317,7 +338,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2022-01-01", + "api-version", "2024-07-01", required=True, ), } @@ -380,6 +401,7 @@ def _update_instance(self, instance): properties = _builder.get(".properties") if properties is not None: properties.set_prop("appliesToGroups", AAZListType, ".applies_to_groups", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("connectivityCapabilities", AAZObjectType, ".connect_capabilities") properties.set_prop("connectivityTopology", AAZStrType, ".connectivity_topology", typ_kwargs={"flags": {"required": True}}) properties.set_prop("deleteExistingPeering", AAZStrType, ".delete_existing_peering") properties.set_prop("description", AAZStrType, ".description") @@ -397,6 +419,12 @@ def _update_instance(self, instance): _elements.set_prop("networkGroupId", AAZStrType, ".network_group_id", typ_kwargs={"flags": {"required": True}}) _elements.set_prop("useHubGateway", AAZStrType, ".use_hub_gateway") + connectivity_capabilities = _builder.get(".properties.connectivityCapabilities") + if connectivity_capabilities is not None: + connectivity_capabilities.set_prop("connectedGroupAddressOverlap", AAZStrType, ".connected_group_address_overlap", typ_kwargs={"flags": {"required": True}}) + connectivity_capabilities.set_prop("connectedGroupPrivateEndpointsScale", AAZStrType, ".connected_group_private_endpoints_scale", typ_kwargs={"flags": {"required": True}}) + connectivity_capabilities.set_prop("peeringEnforcement", AAZStrType, ".peering_enforcement", typ_kwargs={"flags": {"required": True}}) + hubs = _builder.get(".properties.hubs") if hubs is not None: hubs.set_elements(AAZObjectType, ".") @@ -461,6 +489,9 @@ def _build_schema_connectivity_configuration_read(cls, _schema): serialized_name="appliesToGroups", flags={"required": True}, ) + properties.connectivity_capabilities = AAZObjectType( + serialized_name="connectivityCapabilities", + ) properties.connectivity_topology = AAZStrType( serialized_name="connectivityTopology", flags={"required": True}, @@ -477,6 +508,10 @@ def _build_schema_connectivity_configuration_read(cls, _schema): serialized_name="provisioningState", flags={"read_only": True}, ) + properties.resource_guid = AAZStrType( + serialized_name="resourceGuid", + flags={"read_only": True}, + ) applies_to_groups = _schema_connectivity_configuration_read.properties.applies_to_groups applies_to_groups.Element = AAZObjectType() @@ -497,6 +532,20 @@ def _build_schema_connectivity_configuration_read(cls, _schema): serialized_name="useHubGateway", ) + connectivity_capabilities = _schema_connectivity_configuration_read.properties.connectivity_capabilities + connectivity_capabilities.connected_group_address_overlap = AAZStrType( + serialized_name="connectedGroupAddressOverlap", + flags={"required": True}, + ) + connectivity_capabilities.connected_group_private_endpoints_scale = AAZStrType( + serialized_name="connectedGroupPrivateEndpointsScale", + flags={"required": True}, + ) + connectivity_capabilities.peering_enforcement = AAZStrType( + serialized_name="peeringEnforcement", + flags={"required": True}, + ) + hubs = _schema_connectivity_configuration_read.properties.hubs hubs.Element = AAZObjectType() diff --git a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_wait.py b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_wait.py index ede8e27a53a..6a921c450d3 100644 --- a/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_wait.py +++ b/src/network-manager/azext_network_manager/aaz/latest/network/manager/connect_config/_wait.py @@ -20,7 +20,7 @@ class Wait(AAZWaitCommand): _aaz_info = { "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations/{}", "2022-01-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.network/networkmanagers/{}/connectivityconfigurations/{}", "2024-07-01"], ] } @@ -41,13 +41,13 @@ def _build_arguments_schema(cls, *args, **kwargs): _args_schema = cls._args_schema _args_schema.configuration_name = AAZStrArg( - options=["--configuration-name"], + options=["-n", "--name", "--configuration-name"], help="The name of the network manager connectivity configuration.", required=True, id_part="child_name_1", ) _args_schema.network_manager_name = AAZStrArg( - options=["-n", "--name", "--network-manager-name"], + options=["--network-manager-name"], help="The name of the network manager.", required=True, id_part="name", @@ -126,7 +126,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2022-01-01", + "api-version", "2024-07-01", required=True, ), } @@ -184,6 +184,9 @@ def _build_schema_on_200(cls): serialized_name="appliesToGroups", flags={"required": True}, ) + properties.connectivity_capabilities = AAZObjectType( + serialized_name="connectivityCapabilities", + ) properties.connectivity_topology = AAZStrType( serialized_name="connectivityTopology", flags={"required": True}, @@ -200,6 +203,10 @@ def _build_schema_on_200(cls): serialized_name="provisioningState", flags={"read_only": True}, ) + properties.resource_guid = AAZStrType( + serialized_name="resourceGuid", + flags={"read_only": True}, + ) applies_to_groups = cls._schema_on_200.properties.applies_to_groups applies_to_groups.Element = AAZObjectType() @@ -220,6 +227,20 @@ def _build_schema_on_200(cls): serialized_name="useHubGateway", ) + connectivity_capabilities = cls._schema_on_200.properties.connectivity_capabilities + connectivity_capabilities.connected_group_address_overlap = AAZStrType( + serialized_name="connectedGroupAddressOverlap", + flags={"required": True}, + ) + connectivity_capabilities.connected_group_private_endpoints_scale = AAZStrType( + serialized_name="connectedGroupPrivateEndpointsScale", + flags={"required": True}, + ) + connectivity_capabilities.peering_enforcement = AAZStrType( + serialized_name="peeringEnforcement", + flags={"required": True}, + ) + hubs = cls._schema_on_200.properties.hubs hubs.Element = AAZObjectType() diff --git a/src/network-manager/azext_network_manager/azext_metadata.json b/src/network-manager/azext_network_manager/azext_metadata.json index 9d0fefa5401..06012c7c942 100644 --- a/src/network-manager/azext_network_manager/azext_metadata.json +++ b/src/network-manager/azext_network_manager/azext_metadata.json @@ -1,3 +1,3 @@ { - "azext.minCliCoreVersion": "2.61.0" + "azext.minCliCoreVersion": "2.75.0" } \ No newline at end of file diff --git a/src/network-manager/azext_network_manager/tests/latest/recordings/test_network_manager_connect_config_with_capabilities.yaml b/src/network-manager/azext_network_manager/tests/latest/recordings/test_network_manager_connect_config_with_capabilities.yaml new file mode 100644 index 00000000000..85ce4af8967 --- /dev/null +++ b/src/network-manager/azext_network_manager/tests/latest/recordings/test_network_manager_connect_config_with_capabilities.yaml @@ -0,0 +1,470 @@ +interactions: +- request: + body: '{"location": "eastus2euap", "properties": {"description": "My Test Network + Manager", "networkManagerScopeAccesses": ["Connectivity"], "networkManagerScopes": + {"subscriptions": ["/subscriptions/00000000-0000-0000-0000-000000000000"]}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network manager create + Connection: + - keep-alive + Content-Length: + - '234' + Content-Type: + - application/json + ParameterSetName: + - --name --description --scope-accesses --network-manager-scopes -l --resource-group + User-Agent: + - AZURECLI/2.76.0 azsdk-python-core/1.35.0 Python/3.12.11 (Linux-6.8.0-1030-azure-x86_64-with-glibc2.36) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager?api-version=2023-09-01 + response: + body: + string: '{"name":"TestNetworkManager","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager","location":"eastus2euap","type":"Microsoft.Network/networkManagers","tags":{},"etag":"","properties":{"description":"My + Test Network Manager","networkManagerScopes":{"managementGroups":[],"subscriptions":["/subscriptions/00000000-0000-0000-0000-000000000000"],"crossTenantScopes":[]},"provisioningState":"Succeeded","networkManagerScopeAccesses":["Connectivity"],"resourceGuid":"2239c0ac-c635-430c-8293-b0d9b10a5b78"},"systemData":{"createdBy":"test@example.com","createdByType":"User","createdAt":"2025-08-20T21:25:51.9879756Z","lastModifiedBy":"test@example.com","lastModifiedByType":"User","lastModifiedAt":"2025-08-20T21:25:51.9879756Z"}}' + headers: + cache-control: + - no-cache + content-length: + - '868' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 20 Aug 2025 21:25:52 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=5650f831-d18b-4a44-9e4e-8fbfd8777458/westus3/22c0d29e-c31d-4c38-82cd-631bdc04752d + x-ms-ratelimit-remaining-subscription-global-writes: + - '11999' + x-ms-ratelimit-remaining-subscription-writes: + - '799' + x-msedge-ref: + - 'Ref A: 603E49A83CC1464794449709508BA444 Ref B: BY1AA1072316029 Ref C: 2025-08-20T21:25:50Z' + status: + code: 200 + message: OK +- request: + body: '{"properties": {"description": "A sample policy with capabilities"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network manager group create + Connection: + - keep-alive + Content-Length: + - '68' + Content-Type: + - application/json + ParameterSetName: + - --name --network-manager-name --description -g + User-Agent: + - AZURECLI/2.76.0 azsdk-python-core/1.35.0 Python/3.12.11 (Linux-6.8.0-1030-azure-x86_64-with-glibc2.36) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup?api-version=2022-01-01 + response: + body: + string: '{"name":"TestNetworkGroup","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup","type":"Microsoft.Network/networkManagers/networkGroups","etag":"","properties":{"description":"A + sample policy with capabilities","provisioningState":"Succeeded","memberType":"VirtualNetwork","resourceGuid":"5dd83da5-ba5d-4015-bfbd-0aa8f1099d1b"},"systemData":{"createdBy":"test@example.com","createdByType":"User","createdAt":"2025-08-20T21:25:54.0128913Z","lastModifiedBy":"test@example.com","lastModifiedByType":"User","lastModifiedAt":"2025-08-20T21:25:54.0128913Z"}}' + headers: + cache-control: + - no-cache + content-length: + - '727' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 20 Aug 2025 21:25:54 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=5650f831-d18b-4a44-9e4e-8fbfd8777458/westus3/191d2d41-1308-4ffd-8363-9770a07fb482 + x-ms-ratelimit-remaining-subscription-global-writes: + - '11999' + x-ms-ratelimit-remaining-subscription-writes: + - '799' + x-msedge-ref: + - 'Ref A: BDC5D452D7AB450892C0BBA62CFD8322 Ref B: BY1AA1072316036 Ref C: 2025-08-20T21:25:53Z' + status: + code: 200 + message: OK +- request: + body: '{"properties": {"appliesToGroups": [{"groupConnectivity": "DirectlyConnected", + "isGlobal": "False", "networkGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup", + "useHubGateway": "True"}], "connectivityCapabilities": {"connectedGroupAddressOverlap": + "Disallowed", "connectedGroupPrivateEndpointsScale": "HighScale", "peeringEnforcement": + "Enforced"}, "connectivityTopology": "HubAndSpoke", "deleteExistingPeering": + "True", "description": "Sample Configuration with Capabilities", "hubs": [{"resourceId": + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/virtualnetworks/virtual_network", + "resourceType": "Microsoft.Network/virtualNetworks"}], "isGlobal": "True"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network manager connect-config create + Connection: + - keep-alive + Content-Length: + - '949' + Content-Type: + - application/json + ParameterSetName: + - --configuration-name --network-manager-name -g --applies-to-group --connectivity-topology + --delete-existing-peering --hub --description --is-global --connect-capabilities + User-Agent: + - AZURECLI/2.76.0 azsdk-python-core/1.35.0 Python/3.12.11 (Linux-6.8.0-1030-azure-x86_64-with-glibc2.36) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/connectivityConfigurations/myTestConnectConfigWithCapabilities?api-version=2024-07-01 + response: + body: + string: '{"name":"myTestConnectConfigWithCapabilities","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/connectivityConfigurations/myTestConnectConfigWithCapabilities","type":"Microsoft.Network/networkManagers/connectivityConfigurations","etag":"","properties":{"description":"Sample + Configuration with Capabilities","connectivityTopology":"HubAndSpoke","hubs":[{"resourceType":"Microsoft.Network/virtualNetworks","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/virtualnetworks/virtual_network"}],"appliesToGroups":[{"networkGroupId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup","groupConnectivity":"DirectlyConnected","useHubGateway":"True","isGlobal":"False"}],"provisioningState":"Succeeded","deleteExistingPeering":"True","isGlobal":"True","resourceGuid":"b3e2daeb-f81e-4fae-a01b-218f9365a505","connectivityCapabilities":{"connectedGroupPrivateEndpointsScale":"HighScale","connectedGroupAddressOverlap":"Disallowed","peeringEnforcement":"Enforced"}},"systemData":{"createdBy":"test@example.com","createdByType":"User","createdAt":"2025-08-20T21:25:55.2853042Z","lastModifiedBy":"test@example.com","lastModifiedByType":"User","lastModifiedAt":"2025-08-20T21:25:55.2853042Z"}}' + headers: + cache-control: + - no-cache + content-length: + - '1615' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 20 Aug 2025 21:25:55 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=5650f831-d18b-4a44-9e4e-8fbfd8777458/westus/1764da63-281b-44ca-b08f-1bbacbe797dc + x-ms-ratelimit-remaining-subscription-global-writes: + - '11999' + x-ms-ratelimit-remaining-subscription-writes: + - '799' + x-msedge-ref: + - 'Ref A: 14B1788B5F2741DD88414972A2EAE7CC Ref B: BY1AA1072319054 Ref C: 2025-08-20T21:25:54Z' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - network manager connect-config show + Connection: + - keep-alive + ParameterSetName: + - --configuration-name --network-manager-name -g + User-Agent: + - AZURECLI/2.76.0 azsdk-python-core/1.35.0 Python/3.12.11 (Linux-6.8.0-1030-azure-x86_64-with-glibc2.36) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/connectivityConfigurations/myTestConnectConfigWithCapabilities?api-version=2024-07-01 + response: + body: + string: '{"name":"myTestConnectConfigWithCapabilities","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/connectivityConfigurations/myTestConnectConfigWithCapabilities","type":"Microsoft.Network/networkManagers/connectivityConfigurations","etag":"\"01002428-0000-3400-0000-68a63d630000\"","properties":{"description":"Sample + Configuration with Capabilities","connectivityTopology":"HubAndSpoke","hubs":[{"resourceType":"Microsoft.Network/virtualNetworks","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/virtualnetworks/virtual_network"}],"appliesToGroups":[{"networkGroupId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup","groupConnectivity":"DirectlyConnected","useHubGateway":"True","isGlobal":"False"}],"provisioningState":"Succeeded","deleteExistingPeering":"True","isGlobal":"True","resourceGuid":"b3e2daeb-f81e-4fae-a01b-218f9365a505","connectivityCapabilities":{"connectedGroupPrivateEndpointsScale":"HighScale","connectedGroupAddressOverlap":"Disallowed","peeringEnforcement":"Enforced"}},"systemData":{"createdBy":"test@example.com","createdByType":"User","createdAt":"2025-08-20T21:25:55.2853042Z","lastModifiedBy":"test@example.com","lastModifiedByType":"User","lastModifiedAt":"2025-08-20T21:25:55.2853042Z"}}' + headers: + cache-control: + - no-cache + content-length: + - '1655' + content-type: + - application/json; charset=utf-8 + date: + - Wed, 20 Aug 2025 21:25:56 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=5650f831-d18b-4a44-9e4e-8fbfd8777458/westus/28ec3894-85cf-4c58-800b-968675e83018 + x-ms-ratelimit-remaining-subscription-global-reads: + - '16499' + x-msedge-ref: + - 'Ref A: 603FD414964444329767068C882FAF9D Ref B: SJC211051204017 Ref C: 2025-08-20T21:25:56Z' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - network manager connect-config delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --configuration-name --network-manager-name -g --force --yes + User-Agent: + - AZURECLI/2.76.0 azsdk-python-core/1.35.0 Python/3.12.11 (Linux-6.8.0-1030-azure-x86_64-with-glibc2.36) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/connectivityConfigurations/myTestConnectConfigWithCapabilities?force=true&api-version=2024-07-01 + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 20 Aug 2025 21:25:57 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/connectivityConfigurations/myTestConnectConfigWithCapabilities/operationResults/b3e2daeb-f81e-4fae-a01b-218f9365a505?api-version=2024-07-01&t=638913219577557327&c=MIIIrzCCBpegAwIBAgITUQB9VQ7j8TP8msVbVQABAH1VDjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDQwHhcNMjUwNzE3MTAxMTQxWhcNMjYwMTEzMTAxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN9uFRCckwovJWtl1-Qq22Rnc8i5ftzF4eCW9m-t2gMd0gI4H3ggHFS8o7Lgo7NFrSHde_fOw5TG4ClBFPIvYtP-yRXA_gQTjDDxbdEKLTNE3lXVjb2lGS92EXrq2q8SW9iUszX4c5rv7wvK4PYYmWBgrA0pnZoN3Sb-PCkHdwTiQ6s-KaN9TaDX22q-VAiBKtuEV3lfxq84cdn8poLqbGH9aJs3mwzZSvSnDtSic6XB7Wn2B9rEtP4D_EPxNAlrtE-8p4QQxJKsU4kvH2HkbDTA3s-9XDYPgpo-bc_TuPA79C9cwY_yDUwxeCiVXq6u1ouDEDRV8y-SdlEtMwA_L3kCAwEAAaOCBJwwggSYMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHkBggrBgEFBQcBAQSCAdYwggHSMGgGCCsGAQUFBzAChlxodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvbWVsMDFwa2lpbnRjYTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNydDBYBggrBgEFBQcwAoZMaHR0cDovL2NybDEuYW1lLmdibC9haWEvbWVsMDFwa2lpbnRjYTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNydDBYBggrBgEFBQcwAoZMaHR0cDovL2NybDIuYW1lLmdibC9haWEvbWVsMDFwa2lpbnRjYTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNydDBYBggrBgEFBQcwAoZMaHR0cDovL2NybDMuYW1lLmdibC9haWEvbWVsMDFwa2lpbnRjYTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNydDBYBggrBgEFBQcwAoZMaHR0cDovL2NybDQuYW1lLmdibC9haWEvbWVsMDFwa2lpbnRjYTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNydDAdBgNVHQ4EFgQUb0zVsI6tU0Ya4PntQPSVi05azTgwDgYDVR0PAQH_BAQDAgWgMIIBNQYDVR0fBIIBLDCCASgwggEkoIIBIKCCARyGQmh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2lpbmZyYS9DUkwvQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNybIY0aHR0cDovL2NybDEuYW1lLmdibC9jcmwvQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNybIY0aHR0cDovL2NybDIuYW1lLmdibC9jcmwvQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNybIY0aHR0cDovL2NybDMuYW1lLmdibC9jcmwvQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNybIY0aHR0cDovL2NybDQuYW1lLmdibC9jcmwvQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNybDCBnQYDVR0gBIGVMIGSMAwGCisGAQQBgjd7AQEwZgYKKwYBBAGCN3sCAjBYMFYGCCsGAQUFBwICMEoeSAAzADMAZQAwADEAOQAyADEALQA0AGQANgA0AC0ANABmADgAYwAtAGEAMAA1ADUALQA1AGIAZABhAGYAZgBkADUAZQAzADMAZDAMBgorBgEEAYI3ewMCMAwGCisGAQQBgjd7BAIwHwYDVR0jBBgwFoAUOXFdqRUQLcTffi9ZbkBNwN_vNpowHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBCwUAA4ICAQDNOTwuwpaNg6Wb6rlDJvYkgpjYBgD7v-G5oudCTfWxa38GVpr03GvcKMMKXsPqS9r4NAOXfLjlf7xqYiwUCShYUrJU3IDKm0amgY_xtVwywcT-VPGF7VZHrEHKa7b6ZR0_aUw_msh7FWtVxpZNW3Lq26ebDEtB-rbUQ_BDwH2K2tb_oKc8WzIVNBwAoAWWDHyVWJKRoEVp59P5KYLdqvg8VrchPaYU3B1ZYbSol1dPcoTFBbiR1xTC4gihNsdye7dgkDwJThyhtefnZZ1zeiWxnXwiLxuZk6pf7cEKEN0xfBtqSBq-ShHoa0RC1xAzAdGngTv75eYqs7hVFdEIZwytl9j_DVoh7vDwgUi0D3gu_ArliQZQbJaOgadOSsCvfyC4FDs0zFzh5gJEl4CTM9fYPZWGJPQPaH1nAoBwgqHZE1WF0uh4144LhpYs9GlduCWQ3jQeVjXsFsZdZPSYXdPojWuL34Voqf1gb07y4lB4vNsjgX0MCWgmfG4Jm7I_MwoL3FGM3SQN_84HB4tHG58f3-ztGcxleLHe1VBfPj-Efh6FPeHNFg7Lyc28aIJf6Lti8Bv9FjBGl_x8j5VVCMC3OI6aRMl9fqjNw4qBFbYmAY9f42CiaGsbnlC2k4FIKuYBkHw9mEe9pG9jKYsbU8WWhYfmRSvsH_TDoUW9GnH_HA&s=fjgYOASH3ZfmCyCvech2P3TPshsG-vDksBa0kjGNeshOOS36NF4DAuJ1ABcKJ2pl3CN4BRJ-HVMy4DRDIYY5BoZsAnsn4SCMplVGNqd5FCV8MNv0OXVt5KgJoXPjXyzgxacI_tlnBux9bcDSMzY7fPc2Mo6GgvlutguUD3p4skpHEXB_iSvBDI-spq9bpPWQtdTSeQ8VsgDL6sqzCEZJdYcDfjKQD0n2f7qup03Uu3rXr1PtBnyIT5AganSozaiLKp_odc-NSABB7zqQcxmxzGkdzNZSqHIV3lJQ7ibpncYUJb775s-8FgUC1qIFa3m5m_9s_6D04mHWRcBRI2CcJQ&h=-QX9-zVzOImiRD_6ELRTsx_vjfx-kPMgBNbux8O7xEM + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=5650f831-d18b-4a44-9e4e-8fbfd8777458/westus/93d237c6-6c72-4589-bd81-0609742202ae + x-ms-ratelimit-remaining-subscription-deletes: + - '799' + x-ms-ratelimit-remaining-subscription-global-deletes: + - '11999' + x-msedge-ref: + - 'Ref A: A79FE597B46A4D45B333B7EEC24C53E6 Ref B: BY1AA1072318031 Ref C: 2025-08-20T21:25:57Z' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - network manager connect-config delete + Connection: + - keep-alive + ParameterSetName: + - --configuration-name --network-manager-name -g --force --yes + User-Agent: + - AZURECLI/2.76.0 azsdk-python-core/1.35.0 Python/3.12.11 (Linux-6.8.0-1030-azure-x86_64-with-glibc2.36) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/connectivityConfigurations/myTestConnectConfigWithCapabilities/operationResults/b3e2daeb-f81e-4fae-a01b-218f9365a505?api-version=2024-07-01&t=638913219577557327&c=MIIIrzCCBpegAwIBAgITUQB9VQ7j8TP8msVbVQABAH1VDjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDQwHhcNMjUwNzE3MTAxMTQxWhcNMjYwMTEzMTAxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN9uFRCckwovJWtl1-Qq22Rnc8i5ftzF4eCW9m-t2gMd0gI4H3ggHFS8o7Lgo7NFrSHde_fOw5TG4ClBFPIvYtP-yRXA_gQTjDDxbdEKLTNE3lXVjb2lGS92EXrq2q8SW9iUszX4c5rv7wvK4PYYmWBgrA0pnZoN3Sb-PCkHdwTiQ6s-KaN9TaDX22q-VAiBKtuEV3lfxq84cdn8poLqbGH9aJs3mwzZSvSnDtSic6XB7Wn2B9rEtP4D_EPxNAlrtE-8p4QQxJKsU4kvH2HkbDTA3s-9XDYPgpo-bc_TuPA79C9cwY_yDUwxeCiVXq6u1ouDEDRV8y-SdlEtMwA_L3kCAwEAAaOCBJwwggSYMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHkBggrBgEFBQcBAQSCAdYwggHSMGgGCCsGAQUFBzAChlxodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvbWVsMDFwa2lpbnRjYTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNydDBYBggrBgEFBQcwAoZMaHR0cDovL2NybDEuYW1lLmdibC9haWEvbWVsMDFwa2lpbnRjYTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNydDBYBggrBgEFBQcwAoZMaHR0cDovL2NybDIuYW1lLmdibC9haWEvbWVsMDFwa2lpbnRjYTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNydDBYBggrBgEFBQcwAoZMaHR0cDovL2NybDMuYW1lLmdibC9haWEvbWVsMDFwa2lpbnRjYTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNydDBYBggrBgEFBQcwAoZMaHR0cDovL2NybDQuYW1lLmdibC9haWEvbWVsMDFwa2lpbnRjYTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNydDAdBgNVHQ4EFgQUb0zVsI6tU0Ya4PntQPSVi05azTgwDgYDVR0PAQH_BAQDAgWgMIIBNQYDVR0fBIIBLDCCASgwggEkoIIBIKCCARyGQmh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2lpbmZyYS9DUkwvQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNybIY0aHR0cDovL2NybDEuYW1lLmdibC9jcmwvQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNybIY0aHR0cDovL2NybDIuYW1lLmdibC9jcmwvQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNybIY0aHR0cDovL2NybDMuYW1lLmdibC9jcmwvQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNybIY0aHR0cDovL2NybDQuYW1lLmdibC9jcmwvQU1FJTIwSW5mcmElMjBDQSUyMDA0KDEpLmNybDCBnQYDVR0gBIGVMIGSMAwGCisGAQQBgjd7AQEwZgYKKwYBBAGCN3sCAjBYMFYGCCsGAQUFBwICMEoeSAAzADMAZQAwADEAOQAyADEALQA0AGQANgA0AC0ANABmADgAYwAtAGEAMAA1ADUALQA1AGIAZABhAGYAZgBkADUAZQAzADMAZDAMBgorBgEEAYI3ewMCMAwGCisGAQQBgjd7BAIwHwYDVR0jBBgwFoAUOXFdqRUQLcTffi9ZbkBNwN_vNpowHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBCwUAA4ICAQDNOTwuwpaNg6Wb6rlDJvYkgpjYBgD7v-G5oudCTfWxa38GVpr03GvcKMMKXsPqS9r4NAOXfLjlf7xqYiwUCShYUrJU3IDKm0amgY_xtVwywcT-VPGF7VZHrEHKa7b6ZR0_aUw_msh7FWtVxpZNW3Lq26ebDEtB-rbUQ_BDwH2K2tb_oKc8WzIVNBwAoAWWDHyVWJKRoEVp59P5KYLdqvg8VrchPaYU3B1ZYbSol1dPcoTFBbiR1xTC4gihNsdye7dgkDwJThyhtefnZZ1zeiWxnXwiLxuZk6pf7cEKEN0xfBtqSBq-ShHoa0RC1xAzAdGngTv75eYqs7hVFdEIZwytl9j_DVoh7vDwgUi0D3gu_ArliQZQbJaOgadOSsCvfyC4FDs0zFzh5gJEl4CTM9fYPZWGJPQPaH1nAoBwgqHZE1WF0uh4144LhpYs9GlduCWQ3jQeVjXsFsZdZPSYXdPojWuL34Voqf1gb07y4lB4vNsjgX0MCWgmfG4Jm7I_MwoL3FGM3SQN_84HB4tHG58f3-ztGcxleLHe1VBfPj-Efh6FPeHNFg7Lyc28aIJf6Lti8Bv9FjBGl_x8j5VVCMC3OI6aRMl9fqjNw4qBFbYmAY9f42CiaGsbnlC2k4FIKuYBkHw9mEe9pG9jKYsbU8WWhYfmRSvsH_TDoUW9GnH_HA&s=fjgYOASH3ZfmCyCvech2P3TPshsG-vDksBa0kjGNeshOOS36NF4DAuJ1ABcKJ2pl3CN4BRJ-HVMy4DRDIYY5BoZsAnsn4SCMplVGNqd5FCV8MNv0OXVt5KgJoXPjXyzgxacI_tlnBux9bcDSMzY7fPc2Mo6GgvlutguUD3p4skpHEXB_iSvBDI-spq9bpPWQtdTSeQ8VsgDL6sqzCEZJdYcDfjKQD0n2f7qup03Uu3rXr1PtBnyIT5AganSozaiLKp_odc-NSABB7zqQcxmxzGkdzNZSqHIV3lJQ7ibpncYUJb775s-8FgUC1qIFa3m5m_9s_6D04mHWRcBRI2CcJQ&h=-QX9-zVzOImiRD_6ELRTsx_vjfx-kPMgBNbux8O7xEM + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 20 Aug 2025 21:25:57 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/connectivityConfigurations/myTestConnectConfigWithCapabilities/operationResults/b3e2daeb-f81e-4fae-a01b-218f9365a505?api-version=2024-07-01&t=638913219585024992&c=MIIHhzCCBm-gAwIBAgITfAiB12aB1ipq7osBgwAACIHXZjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUwNzE4MTE1MDE5WhcNMjYwMTE0MTE1MDE5WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANjITqixdxz-rU5P-z7a6mpOd6k491MgcCRUm9ys-EyixX-B32eqjzjENsAsem-C6l0Q-TQCw6nI_D_0G9lNU0TR7Dcx5vrvWcik89LuCgpH70vU1OWqoD0gIfBgetWtaq-H1GIoltMNR3METGK7cV_ZZNfIcXVxJZnqV3T7m9U0McN6AongCXg9m6V1ECF_J8OSn_FWSbs6H9xejPwLex24T89mSDV7d9l7YABeSXF9qRsxSc2l8AooX0hLKXuH8S3_4tLogkpwkyG_lkqE-O2h26l1lDnO-n7Zb0Hc4g2TSp1w_nI9TTehBYQiX28GuRVHgPHnV3X1yRO6H9VgRBECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTWvZvg0z8fK-dZrNbIBkoZyNxnUzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEP6bJYYamn6vq8lLm55souuqiz6MFzQdCty1mzIsxJXPIfOhveBak_Jtq6NCgFibf5_I68OEQKyujqXCvCvdwdDo00WlfcZFOMOpvu7WxioV3G8zzNKtEBIXS8Bbk5Fp3NygEk7t8e0JsU10AXvs75VwQamfqivkdZosjJdJOG1rVSodqZFTJMjdyYlIqYMrcuVk8axykjXczvsAMkqLXdWExqOXIF7MrcuKRMI5TgjEAU85094Z9fVFl5pRZYKzkBlrIUoX1Fb_zfz4mTspPVo9cRpZfxMDmpFf9UcL8Vt9QKUmze-JwrPyVHyK6FSPpr0yJflk00YP-fClirvLUY&s=RaLkv2Swlioble0y4bZQIBmCjS0UER_nQzPUDpd2ZBG_vUFIQE9J7jcff_aQpQNQHeFq1G8MnV3p9MQueW3sEF7T9wvwRZObvezF_otUkOG2OrTQOWVIr6sfTb4r0FrqmvVY5ppFzt1ZOEVPGhf4gUr59K5ZJ6ztyQzO_wX0ZLXeeq5TEzhfsDFEBUj-o7VqoFtM_lYo5HnS7i29wRvgEaxF5RzcPgsMw72EtGRtx_T5EhQUGe2U5qHmkQc49FAFACcmZqeJgghbg1dubBEfKVQngELa5C2uHgYbHi6zQcIe3EMgVDMdetZNMiwOxblpsJ3ihDJ-CmYSrEc-n-oNHw&h=Q8ykhFr9L-VMAHTN0mNBb0s8b8arhjQFy0xt-rXf-wk + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=5650f831-d18b-4a44-9e4e-8fbfd8777458/westus3/12c46282-cbba-4ba7-bf81-8844fdc84c70 + x-ms-ratelimit-remaining-subscription-global-reads: + - '16499' + x-msedge-ref: + - 'Ref A: 9107E7F817C742A996A8A2A1D5253268 Ref B: BY1AA1072316060 Ref C: 2025-08-20T21:25:58Z' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - network manager connect-config delete + Connection: + - keep-alive + ParameterSetName: + - --configuration-name --network-manager-name -g --force --yes + User-Agent: + - AZURECLI/2.76.0 azsdk-python-core/1.35.0 Python/3.12.11 (Linux-6.8.0-1030-azure-x86_64-with-glibc2.36) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/connectivityConfigurations/myTestConnectConfigWithCapabilities/operationResults/b3e2daeb-f81e-4fae-a01b-218f9365a505?api-version=2024-07-01&t=638913219585024992&c=MIIHhzCCBm-gAwIBAgITfAiB12aB1ipq7osBgwAACIHXZjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUwNzE4MTE1MDE5WhcNMjYwMTE0MTE1MDE5WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANjITqixdxz-rU5P-z7a6mpOd6k491MgcCRUm9ys-EyixX-B32eqjzjENsAsem-C6l0Q-TQCw6nI_D_0G9lNU0TR7Dcx5vrvWcik89LuCgpH70vU1OWqoD0gIfBgetWtaq-H1GIoltMNR3METGK7cV_ZZNfIcXVxJZnqV3T7m9U0McN6AongCXg9m6V1ECF_J8OSn_FWSbs6H9xejPwLex24T89mSDV7d9l7YABeSXF9qRsxSc2l8AooX0hLKXuH8S3_4tLogkpwkyG_lkqE-O2h26l1lDnO-n7Zb0Hc4g2TSp1w_nI9TTehBYQiX28GuRVHgPHnV3X1yRO6H9VgRBECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTWvZvg0z8fK-dZrNbIBkoZyNxnUzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEP6bJYYamn6vq8lLm55souuqiz6MFzQdCty1mzIsxJXPIfOhveBak_Jtq6NCgFibf5_I68OEQKyujqXCvCvdwdDo00WlfcZFOMOpvu7WxioV3G8zzNKtEBIXS8Bbk5Fp3NygEk7t8e0JsU10AXvs75VwQamfqivkdZosjJdJOG1rVSodqZFTJMjdyYlIqYMrcuVk8axykjXczvsAMkqLXdWExqOXIF7MrcuKRMI5TgjEAU85094Z9fVFl5pRZYKzkBlrIUoX1Fb_zfz4mTspPVo9cRpZfxMDmpFf9UcL8Vt9QKUmze-JwrPyVHyK6FSPpr0yJflk00YP-fClirvLUY&s=RaLkv2Swlioble0y4bZQIBmCjS0UER_nQzPUDpd2ZBG_vUFIQE9J7jcff_aQpQNQHeFq1G8MnV3p9MQueW3sEF7T9wvwRZObvezF_otUkOG2OrTQOWVIr6sfTb4r0FrqmvVY5ppFzt1ZOEVPGhf4gUr59K5ZJ6ztyQzO_wX0ZLXeeq5TEzhfsDFEBUj-o7VqoFtM_lYo5HnS7i29wRvgEaxF5RzcPgsMw72EtGRtx_T5EhQUGe2U5qHmkQc49FAFACcmZqeJgghbg1dubBEfKVQngELa5C2uHgYbHi6zQcIe3EMgVDMdetZNMiwOxblpsJ3ihDJ-CmYSrEc-n-oNHw&h=Q8ykhFr9L-VMAHTN0mNBb0s8b8arhjQFy0xt-rXf-wk + response: + body: + string: '' + headers: + cache-control: + - no-cache + date: + - Wed, 20 Aug 2025 21:26:28 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=5650f831-d18b-4a44-9e4e-8fbfd8777458/westus/f897a53f-5eac-44c9-90b5-a891e1d0ce3f + x-ms-ratelimit-remaining-subscription-global-reads: + - '16499' + x-msedge-ref: + - 'Ref A: B94ED31032CA4F70912C3869F9CA9AB0 Ref B: BY1AA1072318034 Ref C: 2025-08-20T21:26:28Z' + status: + code: 204 + message: No Content +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - network manager group delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -g --name --network-manager-name --force --yes + User-Agent: + - AZURECLI/2.76.0 azsdk-python-core/1.35.0 Python/3.12.11 (Linux-6.8.0-1030-azure-x86_64-with-glibc2.36) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager/networkGroups/TestNetworkGroup?force=true&api-version=2022-01-01 + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 20 Aug 2025 21:26:29 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=5650f831-d18b-4a44-9e4e-8fbfd8777458/westus/212c0fc4-3cbc-4330-a4e1-0217b0237008 + x-ms-ratelimit-remaining-subscription-deletes: + - '799' + x-ms-ratelimit-remaining-subscription-global-deletes: + - '11999' + x-msedge-ref: + - 'Ref A: F0B1682086004378828A4007F26B91AE Ref B: SJC211051201009 Ref C: 2025-08-20T21:26:29Z' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - network manager delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --resource-group --name --force --yes + User-Agent: + - AZURECLI/2.76.0 azsdk-python-core/1.35.0 Python/3.12.11 (Linux-6.8.0-1030-azure-x86_64-with-glibc2.36) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test_network_manager_connect_config_with_capabilities000001/providers/Microsoft.Network/networkManagers/TestNetworkManager?force=true&api-version=2023-09-01 + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Wed, 20 Aug 2025 21:26:31 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=5650f831-d18b-4a44-9e4e-8fbfd8777458/westus/25d6ffa4-0e15-4d47-a258-b87c12bb3564 + x-ms-ratelimit-remaining-subscription-deletes: + - '799' + x-ms-ratelimit-remaining-subscription-global-deletes: + - '11999' + x-msedge-ref: + - 'Ref A: D465F4862F3C4BC79D7DE704DCF3B7BE Ref B: SJC211051204017 Ref C: 2025-08-20T21:26:30Z' + status: + code: 200 + message: OK +version: 1 diff --git a/src/network-manager/azext_network_manager/tests/latest/test_network_scenario.py b/src/network-manager/azext_network_manager/tests/latest/test_network_scenario.py index ca8259e12de..0d21d9a30bc 100644 --- a/src/network-manager/azext_network_manager/tests/latest/test_network_scenario.py +++ b/src/network-manager/azext_network_manager/tests/latest/test_network_scenario.py @@ -29,6 +29,7 @@ class NetworkScenarioTest(ScenarioTest): def __init__(self, *args, **kwargs): super(NetworkScenarioTest, self).__init__(*args, **kwargs) + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_crud', location='eastus2') def test_network_manager_crud(self, resource_group): @@ -53,6 +54,7 @@ def test_network_manager_crud(self, resource_group): self.cmd('network manager delete --resource-group {rg} --name {name} --force --yes') + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_group', location='eastus2') def test_network_manager_group_crud(self, resource_group): @@ -81,6 +83,7 @@ def test_network_manager_group_crud(self, resource_group): self.cmd('network manager group delete -g {rg} --name {name} --network-manager-name {manager_name} --force --yes') self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_static_member', location='eastus2') @VirtualNetworkPreparer() @@ -116,7 +119,7 @@ def test_network_manager_static_member_crud(self, virtual_network, resource_grou self.cmd('network manager group delete -g {rg} --name {group_name} --network-manager-name {manager_name} --force --yes') self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') - @unittest.skip('skip') + @ResourceGroupPreparer(name_prefix='test_network_manager_security_user_config', location='eastus2') def test_network_manager_security_user_config_crud(self, resource_group): @@ -143,6 +146,7 @@ def test_network_manager_security_user_config_crud(self, resource_group): self.cmd('network manager security-user-config show --configuration-name {name} --network-manager-name {manager_name} -g {rg}') self.cmd('network manager security-user-config delete --configuration-name {name} --network-manager-name {manager_name} -g {rg} --yes') + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_security_admin_config', location='eastus2') def test_network_manager_security_admin_config_crud(self, resource_group): @@ -176,6 +180,7 @@ def test_network_manager_security_admin_config_crud(self, resource_group): self.cmd('network manager security-admin-config delete --configuration-name {name} --network-manager-name {manager_name} -g {rg} --force --yes') self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_admin_rule_crud', location='eastus2') @VirtualNetworkPreparer() @@ -239,6 +244,7 @@ def test_network_manager_admin_rule_crud(self, virtual_network, resource_group): self.cmd('network manager group delete -g {rg} --name {group_name} --network-manager-name {manager_name} --force --yes') self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_admin_rule_collection_crud', location='eastus2') @VirtualNetworkPreparer() @@ -286,7 +292,7 @@ def test_network_manager_admin_rule_collection_crud(self, virtual_network, resou self.cmd('network manager group delete -g {rg} --name {group_name} --network-manager-name {manager_name} --force --yes') self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') - @unittest.skip('skip') + @ResourceGroupPreparer(name_prefix='test_network_manager_user_rule_crud', location='eastus2') @VirtualNetworkPreparer() def test_network_manager_user_rule_crud(self, virtual_network, resource_group): @@ -329,7 +335,7 @@ def test_network_manager_user_rule_crud(self, virtual_network, resource_group): self.cmd('network manager security-user-config rule-collection rule list -g {rg} --network-manager-name {manager_name} --configuration-name {config_name} --rule-collection-name {collection_name}') self.cmd('network manager security-user-config rule-collection rule delete -g {rg} --network-manager-name {manager_name} --configuration-name {config_name} --rule-collection-name {collection_name} --rule-name {rule_name} --yes') - @unittest.skip('skip') + @ResourceGroupPreparer(name_prefix='test_network_manager_user_rule_collection_crud', location='eastus2') @VirtualNetworkPreparer() def test_network_manager_user_rule_collection_crud(self, virtual_network, resource_group): @@ -371,6 +377,7 @@ def test_network_manager_user_rule_collection_crud(self, virtual_network, resour self.cmd('network manager security-user-config delete --configuration-name {config_name} --network-manager-name {manager_name} -g {rg} --yes') self.cmd('network manager group delete -g {rg} --name {group_name} --network-manager-name {manager_name} --force --yes') + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_connect_config_crud', location='eastus2') @VirtualNetworkPreparer() @@ -386,7 +393,7 @@ def test_network_manager_connect_config_crud(self, virtual_network, resource_gro }) self.cmd('network manager create --name {manager_name} --description "My Test Network Manager" ' - '--scope-accesses "SecurityAdmin" "Connectivity" ' + '--scope-accesses "Connectivity" ' '--network-manager-scopes ' ' subscriptions={sub} ' '-l eastus2 ' @@ -420,6 +427,51 @@ def test_network_manager_connect_config_crud(self, virtual_network, resource_gro self.cmd('network manager group delete -g {rg} --name {group_name} --network-manager-name {manager_name} --force --yes') self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') + @serial_test() + @ResourceGroupPreparer(name_prefix='test_network_manager_connect_config_with_capabilities', location='eastus2') + def test_network_manager_connect_config_with_capabilities(self, resource_group): + """Test connectivity configuration with new 2024-07-01 API capabilities""" + self.kwargs.update({ + 'config_name': 'myTestConnectConfigWithCapabilities', + 'manager_name': 'TestNetworkManager', + 'group_name': 'TestNetworkGroup', + 'description': '"A sample policy with capabilities"', + 'sub': '/subscriptions/{}'.format(self.get_subscription_id()), + 'virtual_network': 'virtual_network', + 'name': 'TestStaticMember' + }) + + self.cmd('network manager create --name {manager_name} --description "My Test Network Manager" ' + '--scope-accesses "Connectivity" ' + '--network-manager-scopes ' + ' subscriptions={sub} ' + '-l eastus2euap ' + '--resource-group {rg}') + + self.cmd('network manager group create --name {group_name} --network-manager-name {manager_name} --description {description} ' + ' -g {rg} ') + + # Test connectivity configuration with supported connectivityCapabilities fields + self.cmd('network manager connect-config create --configuration-name {config_name} --network-manager-name {manager_name} -g {rg} ' + '--applies-to-group group-connectivity="DirectlyConnected" network-group-id={sub}/resourceGroups/{rg}/providers/Microsoft.Network/networkManagers/{manager_name}/networkGroups/{group_name} ' + 'is-global=false use-hub-gateway=true --connectivity-topology "HubAndSpoke" --delete-existing-peering true --hub ' + 'resource-id={sub}/resourceGroups/{rg}/providers/Microsoft.Network/virtualnetworks/{virtual_network} ' + 'resource-type="Microsoft.Network/virtualNetworks" --description "Sample Configuration with Capabilities" --is-global true ' + '--connect-capabilities connected-group-private-endpoints-scale="HighScale" connected-group-address-overlap="Disallowed" peering-enforcement="Enforced"') + + # Verify the connectivity configuration was created with the new fields + config_output = self.cmd('network manager connect-config show --configuration-name {config_name} --network-manager-name {manager_name} -g {rg}').get_output_in_json() + print("DEBUG: config_output=", config_output) + self.assertIn('connectivityCapabilities', config_output, msg=f"Response missing 'connectivityCapabilities': {config_output}") + capabilities = config_output['connectivityCapabilities'] + self.assertEqual(capabilities['connectedGroupPrivateEndpointsScale'], 'HighScale') + self.assertEqual(capabilities['connectedGroupAddressOverlap'], 'Disallowed') + self.assertEqual(capabilities['peeringEnforcement'], 'Enforced') + + self.cmd('network manager connect-config delete --configuration-name {config_name} --network-manager-name {manager_name} -g {rg} --force --yes') + self.cmd('network manager group delete -g {rg} --name {group_name} --network-manager-name {manager_name} --force --yes') + self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_list_queries', location='eastus2') @VirtualNetworkPreparer() @@ -494,6 +546,7 @@ def test_network_manager_scope_connection(self, resource_group): self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_connection_subscription', location='eastus2') def test_network_manager_connection_subscription(self, resource_group): @@ -523,6 +576,7 @@ def test_network_manager_connection_subscription(self, resource_group): self.cmd('network manager connection subscription delete --connection-name {connection_name} --yes') self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_connection_management', location='eastus2') def test_network_manager_connection_management(self, resource_group): @@ -555,6 +609,7 @@ def test_network_manager_connection_management(self, resource_group): '--management-group-id {mg} --yes') self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_security_admin_config_v2', location='eastus2') def test_network_manager_security_admin_config_v2(self, resource_group): @@ -591,6 +646,7 @@ def test_network_manager_security_admin_config_v2(self, resource_group): self.cmd('network manager security-admin-config delete --configuration-name {name} --network-manager-name {manager_name} -g {rg} --force --yes') self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') + @serial_test() @ResourceGroupPreparer(name_prefix='test_network_manager_routing_config_crud', location='eastus2') def test_network_manager_routing_config_crud(self, resource_group): @@ -649,6 +705,7 @@ def test_network_manager_routing_config_crud(self, resource_group): self.cmd('network manager delete --resource-group {rg} --name {manager_name} --force --yes') + @serial_test() @AllowLargeResponse() @ResourceGroupPreparer(name_prefix='test_network_manager_static_cidr_crud', location='eastus2') @@ -708,6 +765,7 @@ def test_network_manager_static_cidr_crud(self, resource_group): self.cmd('az group delete --name {rg} --yes --no-wait') + @serial_test() @AllowLargeResponse() @ResourceGroupPreparer(name_prefix='test_network_manager_reachability_analysis_run', location='eastus2') @@ -787,4 +845,3 @@ def test_network_manager_reachability_analysis_run(self, resource_group): self.cmd('az resource wait --deleted --name {workspace_name} --resource-group {rg} --resource-type {workspace_resource_type}') self.cmd('az group delete --name {rg} --yes --no-wait') - \ No newline at end of file diff --git a/src/network-manager/setup.py b/src/network-manager/setup.py index bad639d9898..25d2575311d 100644 --- a/src/network-manager/setup.py +++ b/src/network-manager/setup.py @@ -11,7 +11,7 @@ # HISTORY.rst entry. # Fixed post commit issue in routing -VERSION = '2.0.1' +VERSION = '2.0.2' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers