diff --git a/azure-mgmt-network/azure/mgmt/network/network_management_client.py b/azure-mgmt-network/azure/mgmt/network/network_management_client.py index 8b53ba6b5068..8aea2bed1db3 100644 --- a/azure-mgmt-network/azure/mgmt/network/network_management_client.py +++ b/azure-mgmt-network/azure/mgmt/network/network_management_client.py @@ -1325,6 +1325,19 @@ def network_interface_load_balancers(self): raise NotImplementedError("APIVersion {} is not available".format(api_version)) return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + @property + def network_interface_tap_configurations(self): + """Instance depends on the API version: + + * 2018-08-01: :class:`NetworkInterfaceTapConfigurationsOperations` + """ + api_version = self._get_api_version('network_interface_tap_configurations') + if api_version == '2018-08-01': + from .v2018_08_01.operations import NetworkInterfaceTapConfigurationsOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + @property def network_interfaces(self): """Instance depends on the API version: @@ -2236,6 +2249,19 @@ def virtual_network_peerings(self): raise NotImplementedError("APIVersion {} is not available".format(api_version)) return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + @property + def virtual_network_taps(self): + """Instance depends on the API version: + + * 2018-08-01: :class:`VirtualNetworkTapsOperations` + """ + api_version = self._get_api_version('virtual_network_taps') + if api_version == '2018-08-01': + from .v2018_08_01.operations import VirtualNetworkTapsOperations as OperationClass + else: + raise NotImplementedError("APIVersion {} is not available".format(api_version)) + return OperationClass(self._client, self.config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version))) + @property def virtual_networks(self): """Instance depends on the API version: diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/__init__.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/__init__.py index 0622e5b0f037..8bc3c1c6de2a 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/__init__.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/__init__.py @@ -10,9 +10,8 @@ # -------------------------------------------------------------------------- try: + from .network_interface_tap_configuration_py3 import NetworkInterfaceTapConfiguration from .sub_resource_py3 import SubResource - from .backend_address_pool_py3 import BackendAddressPool - from .inbound_nat_rule_py3 import InboundNatRule from .application_security_group_py3 import ApplicationSecurityGroup from .security_rule_py3 import SecurityRule from .network_interface_dns_settings_py3 import NetworkInterfaceDnsSettings @@ -30,6 +29,10 @@ from .ip_configuration_py3 import IPConfiguration from .resource_navigation_link_py3 import ResourceNavigationLink from .subnet_py3 import Subnet + from .frontend_ip_configuration_py3 import FrontendIPConfiguration + from .virtual_network_tap_py3 import VirtualNetworkTap + from .backend_address_pool_py3 import BackendAddressPool + from .inbound_nat_rule_py3 import InboundNatRule from .network_interface_ip_configuration_py3 import NetworkInterfaceIPConfiguration from .application_gateway_backend_address_py3 import ApplicationGatewayBackendAddress from .application_gateway_backend_address_pool_py3 import ApplicationGatewayBackendAddressPool @@ -71,6 +74,9 @@ from .azure_firewall_application_rule_protocol_py3 import AzureFirewallApplicationRuleProtocol from .azure_firewall_application_rule_py3 import AzureFirewallApplicationRule from .azure_firewall_application_rule_collection_py3 import AzureFirewallApplicationRuleCollection + from .azure_firewall_nat_rc_action_py3 import AzureFirewallNatRCAction + from .azure_firewall_nat_rule_py3 import AzureFirewallNatRule + from .azure_firewall_nat_rule_collection_py3 import AzureFirewallNatRuleCollection from .azure_firewall_network_rule_py3 import AzureFirewallNetworkRule from .azure_firewall_network_rule_collection_py3 import AzureFirewallNetworkRuleCollection from .azure_firewall_py3 import AzureFirewall @@ -103,7 +109,6 @@ from .express_route_cross_connection_peering_py3 import ExpressRouteCrossConnectionPeering from .express_route_cross_connection_py3 import ExpressRouteCrossConnection from .load_balancer_sku_py3 import LoadBalancerSku - from .frontend_ip_configuration_py3 import FrontendIPConfiguration from .load_balancing_rule_py3 import LoadBalancingRule from .probe_py3 import Probe from .inbound_nat_pool_py3 import InboundNatPool @@ -240,9 +245,8 @@ from .vpn_gateway_py3 import VpnGateway from .vpn_site_id_py3 import VpnSiteId except (SyntaxError, ImportError): + from .network_interface_tap_configuration import NetworkInterfaceTapConfiguration from .sub_resource import SubResource - from .backend_address_pool import BackendAddressPool - from .inbound_nat_rule import InboundNatRule from .application_security_group import ApplicationSecurityGroup from .security_rule import SecurityRule from .network_interface_dns_settings import NetworkInterfaceDnsSettings @@ -260,6 +264,10 @@ from .ip_configuration import IPConfiguration from .resource_navigation_link import ResourceNavigationLink from .subnet import Subnet + from .frontend_ip_configuration import FrontendIPConfiguration + from .virtual_network_tap import VirtualNetworkTap + from .backend_address_pool import BackendAddressPool + from .inbound_nat_rule import InboundNatRule from .network_interface_ip_configuration import NetworkInterfaceIPConfiguration from .application_gateway_backend_address import ApplicationGatewayBackendAddress from .application_gateway_backend_address_pool import ApplicationGatewayBackendAddressPool @@ -301,6 +309,9 @@ from .azure_firewall_application_rule_protocol import AzureFirewallApplicationRuleProtocol from .azure_firewall_application_rule import AzureFirewallApplicationRule from .azure_firewall_application_rule_collection import AzureFirewallApplicationRuleCollection + from .azure_firewall_nat_rc_action import AzureFirewallNatRCAction + from .azure_firewall_nat_rule import AzureFirewallNatRule + from .azure_firewall_nat_rule_collection import AzureFirewallNatRuleCollection from .azure_firewall_network_rule import AzureFirewallNetworkRule from .azure_firewall_network_rule_collection import AzureFirewallNetworkRuleCollection from .azure_firewall import AzureFirewall @@ -333,7 +344,6 @@ from .express_route_cross_connection_peering import ExpressRouteCrossConnectionPeering from .express_route_cross_connection import ExpressRouteCrossConnection from .load_balancer_sku import LoadBalancerSku - from .frontend_ip_configuration import FrontendIPConfiguration from .load_balancing_rule import LoadBalancingRule from .probe import Probe from .inbound_nat_pool import InboundNatPool @@ -490,6 +500,7 @@ from .network_interface_paged import NetworkInterfacePaged from .probe_paged import ProbePaged from .network_interface_ip_configuration_paged import NetworkInterfaceIPConfigurationPaged +from .network_interface_tap_configuration_paged import NetworkInterfaceTapConfigurationPaged from .network_security_group_paged import NetworkSecurityGroupPaged from .security_rule_paged import SecurityRulePaged from .network_watcher_paged import NetworkWatcherPaged @@ -510,6 +521,7 @@ from .virtual_network_usage_paged import VirtualNetworkUsagePaged from .subnet_paged import SubnetPaged from .virtual_network_peering_paged import VirtualNetworkPeeringPaged +from .virtual_network_tap_paged import VirtualNetworkTapPaged from .virtual_network_gateway_paged import VirtualNetworkGatewayPaged from .virtual_network_gateway_connection_list_entity_paged import VirtualNetworkGatewayConnectionListEntityPaged from .virtual_network_gateway_connection_paged import VirtualNetworkGatewayConnectionPaged @@ -521,14 +533,14 @@ from .vpn_gateway_paged import VpnGatewayPaged from .vpn_connection_paged import VpnConnectionPaged from .network_management_client_enums import ( - TransportProtocol, IPAllocationMethod, - IPVersion, SecurityRuleProtocol, SecurityRuleAccess, SecurityRuleDirection, RouteNextHopType, PublicIPAddressSkuName, + IPVersion, + TransportProtocol, ApplicationGatewayProtocol, ApplicationGatewayCookieBasedAffinity, ApplicationGatewayBackendHealthServerHealth, @@ -545,6 +557,7 @@ ProvisioningState, AzureFirewallRCActionType, AzureFirewallApplicationRuleProtocolType, + AzureFirewallNatRCActionType, AzureFirewallNetworkRuleProtocol, AuthorizationUseStatus, ExpressRouteCircuitPeeringAdvertisedPublicPrefixState, @@ -603,9 +616,8 @@ ) __all__ = [ + 'NetworkInterfaceTapConfiguration', 'SubResource', - 'BackendAddressPool', - 'InboundNatRule', 'ApplicationSecurityGroup', 'SecurityRule', 'NetworkInterfaceDnsSettings', @@ -623,6 +635,10 @@ 'IPConfiguration', 'ResourceNavigationLink', 'Subnet', + 'FrontendIPConfiguration', + 'VirtualNetworkTap', + 'BackendAddressPool', + 'InboundNatRule', 'NetworkInterfaceIPConfiguration', 'ApplicationGatewayBackendAddress', 'ApplicationGatewayBackendAddressPool', @@ -664,6 +680,9 @@ 'AzureFirewallApplicationRuleProtocol', 'AzureFirewallApplicationRule', 'AzureFirewallApplicationRuleCollection', + 'AzureFirewallNatRCAction', + 'AzureFirewallNatRule', + 'AzureFirewallNatRuleCollection', 'AzureFirewallNetworkRule', 'AzureFirewallNetworkRuleCollection', 'AzureFirewall', @@ -696,7 +715,6 @@ 'ExpressRouteCrossConnectionPeering', 'ExpressRouteCrossConnection', 'LoadBalancerSku', - 'FrontendIPConfiguration', 'LoadBalancingRule', 'Probe', 'InboundNatPool', @@ -853,6 +871,7 @@ 'NetworkInterfacePaged', 'ProbePaged', 'NetworkInterfaceIPConfigurationPaged', + 'NetworkInterfaceTapConfigurationPaged', 'NetworkSecurityGroupPaged', 'SecurityRulePaged', 'NetworkWatcherPaged', @@ -873,6 +892,7 @@ 'VirtualNetworkUsagePaged', 'SubnetPaged', 'VirtualNetworkPeeringPaged', + 'VirtualNetworkTapPaged', 'VirtualNetworkGatewayPaged', 'VirtualNetworkGatewayConnectionListEntityPaged', 'VirtualNetworkGatewayConnectionPaged', @@ -883,14 +903,14 @@ 'HubVirtualNetworkConnectionPaged', 'VpnGatewayPaged', 'VpnConnectionPaged', - 'TransportProtocol', 'IPAllocationMethod', - 'IPVersion', 'SecurityRuleProtocol', 'SecurityRuleAccess', 'SecurityRuleDirection', 'RouteNextHopType', 'PublicIPAddressSkuName', + 'IPVersion', + 'TransportProtocol', 'ApplicationGatewayProtocol', 'ApplicationGatewayCookieBasedAffinity', 'ApplicationGatewayBackendHealthServerHealth', @@ -907,6 +927,7 @@ 'ProvisioningState', 'AzureFirewallRCActionType', 'AzureFirewallApplicationRuleProtocolType', + 'AzureFirewallNatRCActionType', 'AzureFirewallNetworkRuleProtocol', 'AuthorizationUseStatus', 'ExpressRouteCircuitPeeringAdvertisedPublicPrefixState', diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall.py index 43e9a57c6125..721cf439f5cf 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall.py @@ -29,11 +29,15 @@ class AzureFirewall(Resource): :param tags: Resource tags. :type tags: dict[str, str] :param application_rule_collections: Collection of application rule - collections used by a Azure Firewall. + collections used by Azure Firewall. :type application_rule_collections: list[~azure.mgmt.network.v2018_08_01.models.AzureFirewallApplicationRuleCollection] + :param nat_rule_collections: Collection of NAT rule collections used by + Azure Firewall. + :type nat_rule_collections: + list[~azure.mgmt.network.v2018_08_01.models.AzureFirewallNatRuleCollection] :param network_rule_collections: Collection of network rule collections - used by a Azure Firewall. + used by Azure Firewall. :type network_rule_collections: list[~azure.mgmt.network.v2018_08_01.models.AzureFirewallNetworkRuleCollection] :param ip_configurations: IP configuration of the Azure Firewall resource. @@ -61,6 +65,7 @@ class AzureFirewall(Resource): 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, 'application_rule_collections': {'key': 'properties.applicationRuleCollections', 'type': '[AzureFirewallApplicationRuleCollection]'}, + 'nat_rule_collections': {'key': 'properties.natRuleCollections', 'type': '[AzureFirewallNatRuleCollection]'}, 'network_rule_collections': {'key': 'properties.networkRuleCollections', 'type': '[AzureFirewallNetworkRuleCollection]'}, 'ip_configurations': {'key': 'properties.ipConfigurations', 'type': '[AzureFirewallIPConfiguration]'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, @@ -70,6 +75,7 @@ class AzureFirewall(Resource): def __init__(self, **kwargs): super(AzureFirewall, self).__init__(**kwargs) self.application_rule_collections = kwargs.get('application_rule_collections', None) + self.nat_rule_collections = kwargs.get('nat_rule_collections', None) self.network_rule_collections = kwargs.get('network_rule_collections', None) self.ip_configurations = kwargs.get('ip_configurations', None) self.provisioning_state = kwargs.get('provisioning_state', None) diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_ip_configuration.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_ip_configuration.py index b9bc81836ffd..92d83cd68dfb 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_ip_configuration.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_ip_configuration.py @@ -15,6 +15,9 @@ class AzureFirewallIPConfiguration(SubResource): """IP configuration of an Azure Firewall. + Variables are only populated by the server, and will be ignored when + sending a request. + :param id: Resource ID. :type id: str :param private_ip_address: The Firewall Internal Load Balancer IP to be @@ -34,11 +37,15 @@ class AzureFirewallIPConfiguration(SubResource): :param name: Name of the resource that is unique within a resource group. This name can be used to access the resource. :type name: str - :param etag: A unique read-only string that changes whenever the resource + :ivar etag: A unique read-only string that changes whenever the resource is updated. - :type etag: str + :vartype etag: str """ + _validation = { + 'etag': {'readonly': True}, + } + _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, 'private_ip_address': {'key': 'properties.privateIPAddress', 'type': 'str'}, @@ -56,4 +63,4 @@ def __init__(self, **kwargs): self.public_ip_address = kwargs.get('public_ip_address', None) self.provisioning_state = kwargs.get('provisioning_state', None) self.name = kwargs.get('name', None) - self.etag = kwargs.get('etag', None) + self.etag = None diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_ip_configuration_py3.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_ip_configuration_py3.py index 4f48de4304e2..d323072599bd 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_ip_configuration_py3.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_ip_configuration_py3.py @@ -15,6 +15,9 @@ class AzureFirewallIPConfiguration(SubResource): """IP configuration of an Azure Firewall. + Variables are only populated by the server, and will be ignored when + sending a request. + :param id: Resource ID. :type id: str :param private_ip_address: The Firewall Internal Load Balancer IP to be @@ -34,11 +37,15 @@ class AzureFirewallIPConfiguration(SubResource): :param name: Name of the resource that is unique within a resource group. This name can be used to access the resource. :type name: str - :param etag: A unique read-only string that changes whenever the resource + :ivar etag: A unique read-only string that changes whenever the resource is updated. - :type etag: str + :vartype etag: str """ + _validation = { + 'etag': {'readonly': True}, + } + _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, 'private_ip_address': {'key': 'properties.privateIPAddress', 'type': 'str'}, @@ -49,11 +56,11 @@ class AzureFirewallIPConfiguration(SubResource): 'etag': {'key': 'etag', 'type': 'str'}, } - def __init__(self, *, id: str=None, private_ip_address: str=None, subnet=None, public_ip_address=None, provisioning_state=None, name: str=None, etag: str=None, **kwargs) -> None: + def __init__(self, *, id: str=None, private_ip_address: str=None, subnet=None, public_ip_address=None, provisioning_state=None, name: str=None, **kwargs) -> None: super(AzureFirewallIPConfiguration, self).__init__(id=id, **kwargs) self.private_ip_address = private_ip_address self.subnet = subnet self.public_ip_address = public_ip_address self.provisioning_state = provisioning_state self.name = name - self.etag = etag + self.etag = None diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rc_action.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rc_action.py new file mode 100644 index 000000000000..d88b34fa9b6d --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rc_action.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AzureFirewallNatRCAction(Model): + """AzureFirewall NAT Rule Collection Action. + + :param type: The type of action. Possible values include: 'Snat', 'Dnat' + :type type: str or + ~azure.mgmt.network.v2018_08_01.models.AzureFirewallNatRCActionType + """ + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AzureFirewallNatRCAction, self).__init__(**kwargs) + self.type = kwargs.get('type', None) diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rc_action_py3.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rc_action_py3.py new file mode 100644 index 000000000000..ec47f0f5460a --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rc_action_py3.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AzureFirewallNatRCAction(Model): + """AzureFirewall NAT Rule Collection Action. + + :param type: The type of action. Possible values include: 'Snat', 'Dnat' + :type type: str or + ~azure.mgmt.network.v2018_08_01.models.AzureFirewallNatRCActionType + """ + + _attribute_map = { + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, *, type=None, **kwargs) -> None: + super(AzureFirewallNatRCAction, self).__init__(**kwargs) + self.type = type diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule.py new file mode 100644 index 000000000000..7e8ea9122445 --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule.py @@ -0,0 +1,59 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AzureFirewallNatRule(Model): + """Properties of a NAT rule. + + :param name: Name of the NAT rule. + :type name: str + :param description: Description of the rule. + :type description: str + :param source_addresses: List of source IP addresses for this rule. + :type source_addresses: list[str] + :param destination_addresses: List of destination IP addresses for this + rule. + :type destination_addresses: list[str] + :param destination_ports: List of destination ports. + :type destination_ports: list[str] + :param protocols: Array of AzureFirewallNetworkRuleProtocols applicable to + this NAT rule. + :type protocols: list[str or + ~azure.mgmt.network.v2018_08_01.models.AzureFirewallNetworkRuleProtocol] + :param translated_address: The translated address for this NAT rule. + :type translated_address: str + :param translated_port: The translated port for this NAT rule. + :type translated_port: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'source_addresses': {'key': 'sourceAddresses', 'type': '[str]'}, + 'destination_addresses': {'key': 'destinationAddresses', 'type': '[str]'}, + 'destination_ports': {'key': 'destinationPorts', 'type': '[str]'}, + 'protocols': {'key': 'protocols', 'type': '[str]'}, + 'translated_address': {'key': 'translatedAddress', 'type': 'str'}, + 'translated_port': {'key': 'translatedPort', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AzureFirewallNatRule, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.description = kwargs.get('description', None) + self.source_addresses = kwargs.get('source_addresses', None) + self.destination_addresses = kwargs.get('destination_addresses', None) + self.destination_ports = kwargs.get('destination_ports', None) + self.protocols = kwargs.get('protocols', None) + self.translated_address = kwargs.get('translated_address', None) + self.translated_port = kwargs.get('translated_port', None) diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule_collection.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule_collection.py new file mode 100644 index 000000000000..5627fdb3af20 --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule_collection.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .sub_resource import SubResource + + +class AzureFirewallNatRuleCollection(SubResource): + """NAT rule collection resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param id: Resource ID. + :type id: str + :param priority: Priority of the NAT rule collection resource. + :type priority: int + :param action: The action type of a NAT rule collection + :type action: + ~azure.mgmt.network.v2018_08_01.models.AzureFirewallNatRCAction + :param rules: Collection of rules used by a NAT rule collection. + :type rules: + list[~azure.mgmt.network.v2018_08_01.models.AzureFirewallNatRule] + :param provisioning_state: The provisioning state of the resource. + Possible values include: 'Succeeded', 'Updating', 'Deleting', 'Failed' + :type provisioning_state: str or + ~azure.mgmt.network.v2018_08_01.models.ProvisioningState + :param name: Gets name of the resource that is unique within a resource + group. This name can be used to access the resource. + :type name: str + :ivar etag: Gets a unique read-only string that changes whenever the + resource is updated. + :vartype etag: str + """ + + _validation = { + 'priority': {'maximum': 65000, 'minimum': 100}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'priority': {'key': 'properties.priority', 'type': 'int'}, + 'action': {'key': 'properties.action', 'type': 'AzureFirewallNatRCAction'}, + 'rules': {'key': 'properties.rules', 'type': '[AzureFirewallNatRule]'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AzureFirewallNatRuleCollection, self).__init__(**kwargs) + self.priority = kwargs.get('priority', None) + self.action = kwargs.get('action', None) + self.rules = kwargs.get('rules', None) + self.provisioning_state = kwargs.get('provisioning_state', None) + self.name = kwargs.get('name', None) + self.etag = None diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule_collection_py3.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule_collection_py3.py new file mode 100644 index 000000000000..e73c4abadc0e --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule_collection_py3.py @@ -0,0 +1,65 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .sub_resource_py3 import SubResource + + +class AzureFirewallNatRuleCollection(SubResource): + """NAT rule collection resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param id: Resource ID. + :type id: str + :param priority: Priority of the NAT rule collection resource. + :type priority: int + :param action: The action type of a NAT rule collection + :type action: + ~azure.mgmt.network.v2018_08_01.models.AzureFirewallNatRCAction + :param rules: Collection of rules used by a NAT rule collection. + :type rules: + list[~azure.mgmt.network.v2018_08_01.models.AzureFirewallNatRule] + :param provisioning_state: The provisioning state of the resource. + Possible values include: 'Succeeded', 'Updating', 'Deleting', 'Failed' + :type provisioning_state: str or + ~azure.mgmt.network.v2018_08_01.models.ProvisioningState + :param name: Gets name of the resource that is unique within a resource + group. This name can be used to access the resource. + :type name: str + :ivar etag: Gets a unique read-only string that changes whenever the + resource is updated. + :vartype etag: str + """ + + _validation = { + 'priority': {'maximum': 65000, 'minimum': 100}, + 'etag': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'priority': {'key': 'properties.priority', 'type': 'int'}, + 'action': {'key': 'properties.action', 'type': 'AzureFirewallNatRCAction'}, + 'rules': {'key': 'properties.rules', 'type': '[AzureFirewallNatRule]'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + } + + def __init__(self, *, id: str=None, priority: int=None, action=None, rules=None, provisioning_state=None, name: str=None, **kwargs) -> None: + super(AzureFirewallNatRuleCollection, self).__init__(id=id, **kwargs) + self.priority = priority + self.action = action + self.rules = rules + self.provisioning_state = provisioning_state + self.name = name + self.etag = None diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule_py3.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule_py3.py new file mode 100644 index 000000000000..ddc715746307 --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_nat_rule_py3.py @@ -0,0 +1,59 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class AzureFirewallNatRule(Model): + """Properties of a NAT rule. + + :param name: Name of the NAT rule. + :type name: str + :param description: Description of the rule. + :type description: str + :param source_addresses: List of source IP addresses for this rule. + :type source_addresses: list[str] + :param destination_addresses: List of destination IP addresses for this + rule. + :type destination_addresses: list[str] + :param destination_ports: List of destination ports. + :type destination_ports: list[str] + :param protocols: Array of AzureFirewallNetworkRuleProtocols applicable to + this NAT rule. + :type protocols: list[str or + ~azure.mgmt.network.v2018_08_01.models.AzureFirewallNetworkRuleProtocol] + :param translated_address: The translated address for this NAT rule. + :type translated_address: str + :param translated_port: The translated port for this NAT rule. + :type translated_port: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'source_addresses': {'key': 'sourceAddresses', 'type': '[str]'}, + 'destination_addresses': {'key': 'destinationAddresses', 'type': '[str]'}, + 'destination_ports': {'key': 'destinationPorts', 'type': '[str]'}, + 'protocols': {'key': 'protocols', 'type': '[str]'}, + 'translated_address': {'key': 'translatedAddress', 'type': 'str'}, + 'translated_port': {'key': 'translatedPort', 'type': 'str'}, + } + + def __init__(self, *, name: str=None, description: str=None, source_addresses=None, destination_addresses=None, destination_ports=None, protocols=None, translated_address: str=None, translated_port: str=None, **kwargs) -> None: + super(AzureFirewallNatRule, self).__init__(**kwargs) + self.name = name + self.description = description + self.source_addresses = source_addresses + self.destination_addresses = destination_addresses + self.destination_ports = destination_ports + self.protocols = protocols + self.translated_address = translated_address + self.translated_port = translated_port diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_py3.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_py3.py index 91ba67e3df03..f622bc7e7012 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_py3.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/azure_firewall_py3.py @@ -29,11 +29,15 @@ class AzureFirewall(Resource): :param tags: Resource tags. :type tags: dict[str, str] :param application_rule_collections: Collection of application rule - collections used by a Azure Firewall. + collections used by Azure Firewall. :type application_rule_collections: list[~azure.mgmt.network.v2018_08_01.models.AzureFirewallApplicationRuleCollection] + :param nat_rule_collections: Collection of NAT rule collections used by + Azure Firewall. + :type nat_rule_collections: + list[~azure.mgmt.network.v2018_08_01.models.AzureFirewallNatRuleCollection] :param network_rule_collections: Collection of network rule collections - used by a Azure Firewall. + used by Azure Firewall. :type network_rule_collections: list[~azure.mgmt.network.v2018_08_01.models.AzureFirewallNetworkRuleCollection] :param ip_configurations: IP configuration of the Azure Firewall resource. @@ -61,15 +65,17 @@ class AzureFirewall(Resource): 'location': {'key': 'location', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, 'application_rule_collections': {'key': 'properties.applicationRuleCollections', 'type': '[AzureFirewallApplicationRuleCollection]'}, + 'nat_rule_collections': {'key': 'properties.natRuleCollections', 'type': '[AzureFirewallNatRuleCollection]'}, 'network_rule_collections': {'key': 'properties.networkRuleCollections', 'type': '[AzureFirewallNetworkRuleCollection]'}, 'ip_configurations': {'key': 'properties.ipConfigurations', 'type': '[AzureFirewallIPConfiguration]'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 'etag': {'key': 'etag', 'type': 'str'}, } - def __init__(self, *, id: str=None, location: str=None, tags=None, application_rule_collections=None, network_rule_collections=None, ip_configurations=None, provisioning_state=None, **kwargs) -> None: + def __init__(self, *, id: str=None, location: str=None, tags=None, application_rule_collections=None, nat_rule_collections=None, network_rule_collections=None, ip_configurations=None, provisioning_state=None, **kwargs) -> None: super(AzureFirewall, self).__init__(id=id, location=location, tags=tags, **kwargs) self.application_rule_collections = application_rule_collections + self.nat_rule_collections = nat_rule_collections self.network_rule_collections = network_rule_collections self.ip_configurations = ip_configurations self.provisioning_state = provisioning_state diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface.py index 484ae42136e1..2168ba1eef3b 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface.py @@ -52,6 +52,11 @@ class NetworkInterface(Resource): :param enable_ip_forwarding: Indicates whether IP forwarding is enabled on this network interface. :type enable_ip_forwarding: bool + :ivar hosted_workloads: A list of references to linked BareMetal resources + :vartype hosted_workloads: list[str] + :param linked_resource_type: The type of resource to be linked to this + network interface + :type linked_resource_type: str :param resource_guid: The resource GUID property of the network interface resource. :type resource_guid: str @@ -66,6 +71,7 @@ class NetworkInterface(Resource): _validation = { 'name': {'readonly': True}, 'type': {'readonly': True}, + 'hosted_workloads': {'readonly': True}, } _attribute_map = { @@ -82,6 +88,8 @@ class NetworkInterface(Resource): 'primary': {'key': 'properties.primary', 'type': 'bool'}, 'enable_accelerated_networking': {'key': 'properties.enableAcceleratedNetworking', 'type': 'bool'}, 'enable_ip_forwarding': {'key': 'properties.enableIPForwarding', 'type': 'bool'}, + 'hosted_workloads': {'key': 'properties.hostedWorkloads', 'type': '[str]'}, + 'linked_resource_type': {'key': 'properties.linkedResourceType', 'type': 'str'}, 'resource_guid': {'key': 'properties.resourceGuid', 'type': 'str'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 'etag': {'key': 'etag', 'type': 'str'}, @@ -97,6 +105,8 @@ def __init__(self, **kwargs): self.primary = kwargs.get('primary', None) self.enable_accelerated_networking = kwargs.get('enable_accelerated_networking', None) self.enable_ip_forwarding = kwargs.get('enable_ip_forwarding', None) + self.hosted_workloads = None + self.linked_resource_type = kwargs.get('linked_resource_type', None) self.resource_guid = kwargs.get('resource_guid', None) self.provisioning_state = kwargs.get('provisioning_state', None) self.etag = kwargs.get('etag', None) diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_ip_configuration.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_ip_configuration.py index 66e5e0dbb360..1e95a2fe4100 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_ip_configuration.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_ip_configuration.py @@ -17,6 +17,9 @@ class NetworkInterfaceIPConfiguration(SubResource): :param id: Resource ID. :type id: str + :param virtual_network_taps: The reference to Virtual Network Taps. + :type virtual_network_taps: + list[~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap] :param application_gateway_backend_address_pools: The reference of ApplicationGatewayBackendAddressPool resource. :type application_gateway_backend_address_pools: @@ -68,6 +71,7 @@ class NetworkInterfaceIPConfiguration(SubResource): _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, + 'virtual_network_taps': {'key': 'properties.virtualNetworkTaps', 'type': '[VirtualNetworkTap]'}, 'application_gateway_backend_address_pools': {'key': 'properties.applicationGatewayBackendAddressPools', 'type': '[ApplicationGatewayBackendAddressPool]'}, 'load_balancer_backend_address_pools': {'key': 'properties.loadBalancerBackendAddressPools', 'type': '[BackendAddressPool]'}, 'load_balancer_inbound_nat_rules': {'key': 'properties.loadBalancerInboundNatRules', 'type': '[InboundNatRule]'}, @@ -85,6 +89,7 @@ class NetworkInterfaceIPConfiguration(SubResource): def __init__(self, **kwargs): super(NetworkInterfaceIPConfiguration, self).__init__(**kwargs) + self.virtual_network_taps = kwargs.get('virtual_network_taps', None) self.application_gateway_backend_address_pools = kwargs.get('application_gateway_backend_address_pools', None) self.load_balancer_backend_address_pools = kwargs.get('load_balancer_backend_address_pools', None) self.load_balancer_inbound_nat_rules = kwargs.get('load_balancer_inbound_nat_rules', None) diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_ip_configuration_py3.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_ip_configuration_py3.py index d11b61f077de..f1fd7706aa8a 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_ip_configuration_py3.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_ip_configuration_py3.py @@ -17,6 +17,9 @@ class NetworkInterfaceIPConfiguration(SubResource): :param id: Resource ID. :type id: str + :param virtual_network_taps: The reference to Virtual Network Taps. + :type virtual_network_taps: + list[~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap] :param application_gateway_backend_address_pools: The reference of ApplicationGatewayBackendAddressPool resource. :type application_gateway_backend_address_pools: @@ -68,6 +71,7 @@ class NetworkInterfaceIPConfiguration(SubResource): _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, + 'virtual_network_taps': {'key': 'properties.virtualNetworkTaps', 'type': '[VirtualNetworkTap]'}, 'application_gateway_backend_address_pools': {'key': 'properties.applicationGatewayBackendAddressPools', 'type': '[ApplicationGatewayBackendAddressPool]'}, 'load_balancer_backend_address_pools': {'key': 'properties.loadBalancerBackendAddressPools', 'type': '[BackendAddressPool]'}, 'load_balancer_inbound_nat_rules': {'key': 'properties.loadBalancerInboundNatRules', 'type': '[InboundNatRule]'}, @@ -83,8 +87,9 @@ class NetworkInterfaceIPConfiguration(SubResource): 'etag': {'key': 'etag', 'type': 'str'}, } - def __init__(self, *, id: str=None, application_gateway_backend_address_pools=None, load_balancer_backend_address_pools=None, load_balancer_inbound_nat_rules=None, private_ip_address: str=None, private_ip_allocation_method=None, private_ip_address_version=None, subnet=None, primary: bool=None, public_ip_address=None, application_security_groups=None, provisioning_state: str=None, name: str=None, etag: str=None, **kwargs) -> None: + def __init__(self, *, id: str=None, virtual_network_taps=None, application_gateway_backend_address_pools=None, load_balancer_backend_address_pools=None, load_balancer_inbound_nat_rules=None, private_ip_address: str=None, private_ip_allocation_method=None, private_ip_address_version=None, subnet=None, primary: bool=None, public_ip_address=None, application_security_groups=None, provisioning_state: str=None, name: str=None, etag: str=None, **kwargs) -> None: super(NetworkInterfaceIPConfiguration, self).__init__(id=id, **kwargs) + self.virtual_network_taps = virtual_network_taps self.application_gateway_backend_address_pools = application_gateway_backend_address_pools self.load_balancer_backend_address_pools = load_balancer_backend_address_pools self.load_balancer_inbound_nat_rules = load_balancer_inbound_nat_rules diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_py3.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_py3.py index aacec11e390c..ed889716a31b 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_py3.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_py3.py @@ -52,6 +52,11 @@ class NetworkInterface(Resource): :param enable_ip_forwarding: Indicates whether IP forwarding is enabled on this network interface. :type enable_ip_forwarding: bool + :ivar hosted_workloads: A list of references to linked BareMetal resources + :vartype hosted_workloads: list[str] + :param linked_resource_type: The type of resource to be linked to this + network interface + :type linked_resource_type: str :param resource_guid: The resource GUID property of the network interface resource. :type resource_guid: str @@ -66,6 +71,7 @@ class NetworkInterface(Resource): _validation = { 'name': {'readonly': True}, 'type': {'readonly': True}, + 'hosted_workloads': {'readonly': True}, } _attribute_map = { @@ -82,12 +88,14 @@ class NetworkInterface(Resource): 'primary': {'key': 'properties.primary', 'type': 'bool'}, 'enable_accelerated_networking': {'key': 'properties.enableAcceleratedNetworking', 'type': 'bool'}, 'enable_ip_forwarding': {'key': 'properties.enableIPForwarding', 'type': 'bool'}, + 'hosted_workloads': {'key': 'properties.hostedWorkloads', 'type': '[str]'}, + 'linked_resource_type': {'key': 'properties.linkedResourceType', 'type': 'str'}, 'resource_guid': {'key': 'properties.resourceGuid', 'type': 'str'}, 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 'etag': {'key': 'etag', 'type': 'str'}, } - def __init__(self, *, id: str=None, location: str=None, tags=None, virtual_machine=None, network_security_group=None, ip_configurations=None, dns_settings=None, mac_address: str=None, primary: bool=None, enable_accelerated_networking: bool=None, enable_ip_forwarding: bool=None, resource_guid: str=None, provisioning_state: str=None, etag: str=None, **kwargs) -> None: + def __init__(self, *, id: str=None, location: str=None, tags=None, virtual_machine=None, network_security_group=None, ip_configurations=None, dns_settings=None, mac_address: str=None, primary: bool=None, enable_accelerated_networking: bool=None, enable_ip_forwarding: bool=None, linked_resource_type: str=None, resource_guid: str=None, provisioning_state: str=None, etag: str=None, **kwargs) -> None: super(NetworkInterface, self).__init__(id=id, location=location, tags=tags, **kwargs) self.virtual_machine = virtual_machine self.network_security_group = network_security_group @@ -97,6 +105,8 @@ def __init__(self, *, id: str=None, location: str=None, tags=None, virtual_machi self.primary = primary self.enable_accelerated_networking = enable_accelerated_networking self.enable_ip_forwarding = enable_ip_forwarding + self.hosted_workloads = None + self.linked_resource_type = linked_resource_type self.resource_guid = resource_guid self.provisioning_state = provisioning_state self.etag = etag diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_tap_configuration.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_tap_configuration.py new file mode 100644 index 000000000000..4096305a3c55 --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_tap_configuration.py @@ -0,0 +1,54 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .sub_resource import SubResource + + +class NetworkInterfaceTapConfiguration(SubResource): + """Tap configuration in a Network Interface. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param id: Resource ID. + :type id: str + :param virtual_network_tap: The reference of the Virtual Network Tap + resource. + :type virtual_network_tap: + ~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap + :param name: The name of the resource that is unique within a resource + group. This name can be used to access the resource. + :type name: str + :param etag: A unique read-only string that changes whenever the resource + is updated. + :type etag: str + :ivar type: Sub Resource type. + :vartype type: str + """ + + _validation = { + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'virtual_network_tap': {'key': 'properties.virtualNetworkTap', 'type': 'VirtualNetworkTap'}, + 'name': {'key': 'name', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(NetworkInterfaceTapConfiguration, self).__init__(**kwargs) + self.virtual_network_tap = kwargs.get('virtual_network_tap', None) + self.name = kwargs.get('name', None) + self.etag = kwargs.get('etag', None) + self.type = None diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_tap_configuration_paged.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_tap_configuration_paged.py new file mode 100644 index 000000000000..155db4f86bdd --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_tap_configuration_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class NetworkInterfaceTapConfigurationPaged(Paged): + """ + A paging container for iterating over a list of :class:`NetworkInterfaceTapConfiguration ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[NetworkInterfaceTapConfiguration]'} + } + + def __init__(self, *args, **kwargs): + + super(NetworkInterfaceTapConfigurationPaged, self).__init__(*args, **kwargs) diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_tap_configuration_py3.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_tap_configuration_py3.py new file mode 100644 index 000000000000..0596f7bb2c97 --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_interface_tap_configuration_py3.py @@ -0,0 +1,54 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .sub_resource_py3 import SubResource + + +class NetworkInterfaceTapConfiguration(SubResource): + """Tap configuration in a Network Interface. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param id: Resource ID. + :type id: str + :param virtual_network_tap: The reference of the Virtual Network Tap + resource. + :type virtual_network_tap: + ~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap + :param name: The name of the resource that is unique within a resource + group. This name can be used to access the resource. + :type name: str + :param etag: A unique read-only string that changes whenever the resource + is updated. + :type etag: str + :ivar type: Sub Resource type. + :vartype type: str + """ + + _validation = { + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'virtual_network_tap': {'key': 'properties.virtualNetworkTap', 'type': 'VirtualNetworkTap'}, + 'name': {'key': 'name', 'type': 'str'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, *, id: str=None, virtual_network_tap=None, name: str=None, etag: str=None, **kwargs) -> None: + super(NetworkInterfaceTapConfiguration, self).__init__(id=id, **kwargs) + self.virtual_network_tap = virtual_network_tap + self.name = name + self.etag = etag + self.type = None diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_management_client_enums.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_management_client_enums.py index 2a455544e0a5..ba253dc20d57 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_management_client_enums.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/network_management_client_enums.py @@ -12,25 +12,12 @@ from enum import Enum -class TransportProtocol(str, Enum): - - udp = "Udp" - tcp = "Tcp" - all = "All" - - class IPAllocationMethod(str, Enum): static = "Static" dynamic = "Dynamic" -class IPVersion(str, Enum): - - ipv4 = "IPv4" - ipv6 = "IPv6" - - class SecurityRuleProtocol(str, Enum): tcp = "Tcp" @@ -65,6 +52,19 @@ class PublicIPAddressSkuName(str, Enum): standard = "Standard" +class IPVersion(str, Enum): + + ipv4 = "IPv4" + ipv6 = "IPv6" + + +class TransportProtocol(str, Enum): + + udp = "Udp" + tcp = "Tcp" + all = "All" + + class ApplicationGatewayProtocol(str, Enum): http = "Http" @@ -202,6 +202,12 @@ class AzureFirewallApplicationRuleProtocolType(str, Enum): https = "Https" +class AzureFirewallNatRCActionType(str, Enum): + + snat = "Snat" + dnat = "Dnat" + + class AzureFirewallNetworkRuleProtocol(str, Enum): tcp = "TCP" diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/virtual_network_tap.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/virtual_network_tap.py new file mode 100644 index 000000000000..3017d81d0428 --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/virtual_network_tap.py @@ -0,0 +1,77 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .resource import Resource + + +class VirtualNetworkTap(Resource): + """Virtual Network Tap resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param id: Resource ID. + :type id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param location: Resource location. + :type location: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param network_interface_tap_configurations: Specifies the list of + resource IDs for the network interface IP configuration that needs to be + tapped. + :type network_interface_tap_configurations: + list[~azure.mgmt.network.v2018_08_01.models.NetworkInterfaceTapConfiguration] + :param destination_network_interface_ip_configuration: The reference to + the private IP Address of the collector nic that will receive the tap + :type destination_network_interface_ip_configuration: + ~azure.mgmt.network.v2018_08_01.models.NetworkInterfaceIPConfiguration + :param destination_load_balancer_front_end_ip_configuration: The reference + to the private IP address on the internal Load Balancer that will receive + the tap + :type destination_load_balancer_front_end_ip_configuration: + ~azure.mgmt.network.v2018_08_01.models.FrontendIPConfiguration + :param destination_port: The VXLAN destination port that will receive the + tapped traffic. + :type destination_port: int + :param etag: Gets a unique read-only string that changes whenever the + resource is updated. + :type etag: str + """ + + _validation = { + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'network_interface_tap_configurations': {'key': 'properties.networkInterfaceTapConfigurations', 'type': '[NetworkInterfaceTapConfiguration]'}, + 'destination_network_interface_ip_configuration': {'key': 'properties.destinationNetworkInterfaceIPConfiguration', 'type': 'NetworkInterfaceIPConfiguration'}, + 'destination_load_balancer_front_end_ip_configuration': {'key': 'properties.destinationLoadBalancerFrontEndIPConfiguration', 'type': 'FrontendIPConfiguration'}, + 'destination_port': {'key': 'properties.destinationPort', 'type': 'int'}, + 'etag': {'key': 'etag', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(VirtualNetworkTap, self).__init__(**kwargs) + self.network_interface_tap_configurations = kwargs.get('network_interface_tap_configurations', None) + self.destination_network_interface_ip_configuration = kwargs.get('destination_network_interface_ip_configuration', None) + self.destination_load_balancer_front_end_ip_configuration = kwargs.get('destination_load_balancer_front_end_ip_configuration', None) + self.destination_port = kwargs.get('destination_port', None) + self.etag = kwargs.get('etag', None) diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/virtual_network_tap_paged.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/virtual_network_tap_paged.py new file mode 100644 index 000000000000..3324c9558721 --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/virtual_network_tap_paged.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.paging import Paged + + +class VirtualNetworkTapPaged(Paged): + """ + A paging container for iterating over a list of :class:`VirtualNetworkTap ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[VirtualNetworkTap]'} + } + + def __init__(self, *args, **kwargs): + + super(VirtualNetworkTapPaged, self).__init__(*args, **kwargs) diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/virtual_network_tap_py3.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/virtual_network_tap_py3.py new file mode 100644 index 000000000000..8d219ba21c0d --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/models/virtual_network_tap_py3.py @@ -0,0 +1,77 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .resource_py3 import Resource + + +class VirtualNetworkTap(Resource): + """Virtual Network Tap resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param id: Resource ID. + :type id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param location: Resource location. + :type location: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param network_interface_tap_configurations: Specifies the list of + resource IDs for the network interface IP configuration that needs to be + tapped. + :type network_interface_tap_configurations: + list[~azure.mgmt.network.v2018_08_01.models.NetworkInterfaceTapConfiguration] + :param destination_network_interface_ip_configuration: The reference to + the private IP Address of the collector nic that will receive the tap + :type destination_network_interface_ip_configuration: + ~azure.mgmt.network.v2018_08_01.models.NetworkInterfaceIPConfiguration + :param destination_load_balancer_front_end_ip_configuration: The reference + to the private IP address on the internal Load Balancer that will receive + the tap + :type destination_load_balancer_front_end_ip_configuration: + ~azure.mgmt.network.v2018_08_01.models.FrontendIPConfiguration + :param destination_port: The VXLAN destination port that will receive the + tapped traffic. + :type destination_port: int + :param etag: Gets a unique read-only string that changes whenever the + resource is updated. + :type etag: str + """ + + _validation = { + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'network_interface_tap_configurations': {'key': 'properties.networkInterfaceTapConfigurations', 'type': '[NetworkInterfaceTapConfiguration]'}, + 'destination_network_interface_ip_configuration': {'key': 'properties.destinationNetworkInterfaceIPConfiguration', 'type': 'NetworkInterfaceIPConfiguration'}, + 'destination_load_balancer_front_end_ip_configuration': {'key': 'properties.destinationLoadBalancerFrontEndIPConfiguration', 'type': 'FrontendIPConfiguration'}, + 'destination_port': {'key': 'properties.destinationPort', 'type': 'int'}, + 'etag': {'key': 'etag', 'type': 'str'}, + } + + def __init__(self, *, id: str=None, location: str=None, tags=None, network_interface_tap_configurations=None, destination_network_interface_ip_configuration=None, destination_load_balancer_front_end_ip_configuration=None, destination_port: int=None, etag: str=None, **kwargs) -> None: + super(VirtualNetworkTap, self).__init__(id=id, location=location, tags=tags, **kwargs) + self.network_interface_tap_configurations = network_interface_tap_configurations + self.destination_network_interface_ip_configuration = destination_network_interface_ip_configuration + self.destination_load_balancer_front_end_ip_configuration = destination_load_balancer_front_end_ip_configuration + self.destination_port = destination_port + self.etag = etag diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/network_management_client.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/network_management_client.py index 6537a5654dc3..b174fbdb33f8 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/network_management_client.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/network_management_client.py @@ -41,6 +41,7 @@ from .operations.network_interfaces_operations import NetworkInterfacesOperations from .operations.network_interface_ip_configurations_operations import NetworkInterfaceIPConfigurationsOperations from .operations.network_interface_load_balancers_operations import NetworkInterfaceLoadBalancersOperations +from .operations.network_interface_tap_configurations_operations import NetworkInterfaceTapConfigurationsOperations from .operations.network_security_groups_operations import NetworkSecurityGroupsOperations from .operations.security_rules_operations import SecurityRulesOperations from .operations.default_security_rules_operations import DefaultSecurityRulesOperations @@ -61,6 +62,7 @@ from .operations.virtual_networks_operations import VirtualNetworksOperations from .operations.subnets_operations import SubnetsOperations from .operations.virtual_network_peerings_operations import VirtualNetworkPeeringsOperations +from .operations.virtual_network_taps_operations import VirtualNetworkTapsOperations from .operations.virtual_network_gateways_operations import VirtualNetworkGatewaysOperations from .operations.virtual_network_gateway_connections_operations import VirtualNetworkGatewayConnectionsOperations from .operations.local_network_gateways_operations import LocalNetworkGatewaysOperations @@ -160,6 +162,8 @@ class NetworkManagementClient(SDKClient): :vartype network_interface_ip_configurations: azure.mgmt.network.v2018_08_01.operations.NetworkInterfaceIPConfigurationsOperations :ivar network_interface_load_balancers: NetworkInterfaceLoadBalancers operations :vartype network_interface_load_balancers: azure.mgmt.network.v2018_08_01.operations.NetworkInterfaceLoadBalancersOperations + :ivar network_interface_tap_configurations: NetworkInterfaceTapConfigurations operations + :vartype network_interface_tap_configurations: azure.mgmt.network.v2018_08_01.operations.NetworkInterfaceTapConfigurationsOperations :ivar network_security_groups: NetworkSecurityGroups operations :vartype network_security_groups: azure.mgmt.network.v2018_08_01.operations.NetworkSecurityGroupsOperations :ivar security_rules: SecurityRules operations @@ -200,6 +204,8 @@ class NetworkManagementClient(SDKClient): :vartype subnets: azure.mgmt.network.v2018_08_01.operations.SubnetsOperations :ivar virtual_network_peerings: VirtualNetworkPeerings operations :vartype virtual_network_peerings: azure.mgmt.network.v2018_08_01.operations.VirtualNetworkPeeringsOperations + :ivar virtual_network_taps: VirtualNetworkTaps operations + :vartype virtual_network_taps: azure.mgmt.network.v2018_08_01.operations.VirtualNetworkTapsOperations :ivar virtual_network_gateways: VirtualNetworkGateways operations :vartype virtual_network_gateways: azure.mgmt.network.v2018_08_01.operations.VirtualNetworkGatewaysOperations :ivar virtual_network_gateway_connections: VirtualNetworkGatewayConnections operations @@ -287,6 +293,8 @@ def __init__( self._client, self.config, self._serialize, self._deserialize) self.network_interface_load_balancers = NetworkInterfaceLoadBalancersOperations( self._client, self.config, self._serialize, self._deserialize) + self.network_interface_tap_configurations = NetworkInterfaceTapConfigurationsOperations( + self._client, self.config, self._serialize, self._deserialize) self.network_security_groups = NetworkSecurityGroupsOperations( self._client, self.config, self._serialize, self._deserialize) self.security_rules = SecurityRulesOperations( @@ -327,6 +335,8 @@ def __init__( self._client, self.config, self._serialize, self._deserialize) self.virtual_network_peerings = VirtualNetworkPeeringsOperations( self._client, self.config, self._serialize, self._deserialize) + self.virtual_network_taps = VirtualNetworkTapsOperations( + self._client, self.config, self._serialize, self._deserialize) self.virtual_network_gateways = VirtualNetworkGatewaysOperations( self._client, self.config, self._serialize, self._deserialize) self.virtual_network_gateway_connections = VirtualNetworkGatewayConnectionsOperations( diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/operations/__init__.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/operations/__init__.py index ca348d9231bd..98f9ad5f0850 100644 --- a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/operations/__init__.py +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/operations/__init__.py @@ -32,6 +32,7 @@ from .network_interfaces_operations import NetworkInterfacesOperations from .network_interface_ip_configurations_operations import NetworkInterfaceIPConfigurationsOperations from .network_interface_load_balancers_operations import NetworkInterfaceLoadBalancersOperations +from .network_interface_tap_configurations_operations import NetworkInterfaceTapConfigurationsOperations from .network_security_groups_operations import NetworkSecurityGroupsOperations from .security_rules_operations import SecurityRulesOperations from .default_security_rules_operations import DefaultSecurityRulesOperations @@ -52,6 +53,7 @@ from .virtual_networks_operations import VirtualNetworksOperations from .subnets_operations import SubnetsOperations from .virtual_network_peerings_operations import VirtualNetworkPeeringsOperations +from .virtual_network_taps_operations import VirtualNetworkTapsOperations from .virtual_network_gateways_operations import VirtualNetworkGatewaysOperations from .virtual_network_gateway_connections_operations import VirtualNetworkGatewayConnectionsOperations from .local_network_gateways_operations import LocalNetworkGatewaysOperations @@ -87,6 +89,7 @@ 'NetworkInterfacesOperations', 'NetworkInterfaceIPConfigurationsOperations', 'NetworkInterfaceLoadBalancersOperations', + 'NetworkInterfaceTapConfigurationsOperations', 'NetworkSecurityGroupsOperations', 'SecurityRulesOperations', 'DefaultSecurityRulesOperations', @@ -107,6 +110,7 @@ 'VirtualNetworksOperations', 'SubnetsOperations', 'VirtualNetworkPeeringsOperations', + 'VirtualNetworkTapsOperations', 'VirtualNetworkGatewaysOperations', 'VirtualNetworkGatewayConnectionsOperations', 'LocalNetworkGatewaysOperations', diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/operations/network_interface_tap_configurations_operations.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/operations/network_interface_tap_configurations_operations.py new file mode 100644 index 000000000000..3b78d421df2f --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/operations/network_interface_tap_configurations_operations.py @@ -0,0 +1,370 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError +from msrest.polling import LROPoller, NoPolling +from msrestazure.polling.arm_polling import ARMPolling + +from .. import models + + +class NetworkInterfaceTapConfigurationsOperations(object): + """NetworkInterfaceTapConfigurationsOperations operations. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: Client API version. Constant value: "2018-08-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2018-08-01" + + self.config = config + + + def _delete_initial( + self, resource_group_name, network_interface_name, tap_configuration_name, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'networkInterfaceName': self._serialize.url("network_interface_name", network_interface_name, 'str'), + 'tapConfigurationName': self._serialize.url("tap_configuration_name", tap_configuration_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202, 204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def delete( + self, resource_group_name, network_interface_name, tap_configuration_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Deletes the specified tap configuration from the NetworkInterface. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param network_interface_name: The name of the network interface. + :type network_interface_name: str + :param tap_configuration_name: The name of the tap configuration. + :type tap_configuration_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + network_interface_name=network_interface_name, + tap_configuration_name=tap_configuration_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/tapConfigurations/{tapConfigurationName}'} + + def get( + self, resource_group_name, network_interface_name, tap_configuration_name, custom_headers=None, raw=False, **operation_config): + """Get the specified tap configuration on a network interface. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param network_interface_name: The name of the network interface. + :type network_interface_name: str + :param tap_configuration_name: The name of the tap configuration. + :type tap_configuration_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: NetworkInterfaceTapConfiguration or ClientRawResponse if + raw=true + :rtype: + ~azure.mgmt.network.v2018_08_01.models.NetworkInterfaceTapConfiguration + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'networkInterfaceName': self._serialize.url("network_interface_name", network_interface_name, 'str'), + 'tapConfigurationName': self._serialize.url("tap_configuration_name", tap_configuration_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('NetworkInterfaceTapConfiguration', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/tapConfigurations/{tapConfigurationName}'} + + + def _create_or_update_initial( + self, resource_group_name, network_interface_name, tap_configuration_name, tap_configuration_parameters, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.create_or_update.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'networkInterfaceName': self._serialize.url("network_interface_name", network_interface_name, 'str'), + 'tapConfigurationName': self._serialize.url("tap_configuration_name", tap_configuration_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(tap_configuration_parameters, 'NetworkInterfaceTapConfiguration') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 201]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('NetworkInterfaceTapConfiguration', response) + if response.status_code == 201: + deserialized = self._deserialize('NetworkInterfaceTapConfiguration', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + def create_or_update( + self, resource_group_name, network_interface_name, tap_configuration_name, tap_configuration_parameters, custom_headers=None, raw=False, polling=True, **operation_config): + """Creates or updates a Tap configuration in the specified + NetworkInterface. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param network_interface_name: The name of the network interface. + :type network_interface_name: str + :param tap_configuration_name: The name of the tap configuration. + :type tap_configuration_name: str + :param tap_configuration_parameters: Parameters supplied to the create + or update tap configuration operation. + :type tap_configuration_parameters: + ~azure.mgmt.network.v2018_08_01.models.NetworkInterfaceTapConfiguration + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns + NetworkInterfaceTapConfiguration or + ClientRawResponse if raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.network.v2018_08_01.models.NetworkInterfaceTapConfiguration] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.network.v2018_08_01.models.NetworkInterfaceTapConfiguration]] + :raises: :class:`CloudError` + """ + raw_result = self._create_or_update_initial( + resource_group_name=resource_group_name, + network_interface_name=network_interface_name, + tap_configuration_name=tap_configuration_name, + tap_configuration_parameters=tap_configuration_parameters, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + deserialized = self._deserialize('NetworkInterfaceTapConfiguration', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/tapConfigurations/{tapConfigurationName}'} + + def list( + self, resource_group_name, network_interface_name, custom_headers=None, raw=False, **operation_config): + """Get all Tap configurations in a network interface. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param network_interface_name: The name of the network interface. + :type network_interface_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of NetworkInterfaceTapConfiguration + :rtype: + ~azure.mgmt.network.v2018_08_01.models.NetworkInterfaceTapConfigurationPaged[~azure.mgmt.network.v2018_08_01.models.NetworkInterfaceTapConfiguration] + :raises: :class:`CloudError` + """ + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'networkInterfaceName': self._serialize.url("network_interface_name", network_interface_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + deserialized = models.NetworkInterfaceTapConfigurationPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.NetworkInterfaceTapConfigurationPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}/tapConfigurations'} diff --git a/azure-mgmt-network/azure/mgmt/network/v2018_08_01/operations/virtual_network_taps_operations.py b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/operations/virtual_network_taps_operations.py new file mode 100644 index 000000000000..97864621c4d7 --- /dev/null +++ b/azure-mgmt-network/azure/mgmt/network/v2018_08_01/operations/virtual_network_taps_operations.py @@ -0,0 +1,518 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError +from msrest.polling import LROPoller, NoPolling +from msrestazure.polling.arm_polling import ARMPolling + +from .. import models + + +class VirtualNetworkTapsOperations(object): + """VirtualNetworkTapsOperations operations. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: Client API version. Constant value: "2018-08-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2018-08-01" + + self.config = config + + + def _delete_initial( + self, resource_group_name, tap_name, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'tapName': self._serialize.url("tap_name", tap_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202, 204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def delete( + self, resource_group_name, tap_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Deletes the specified virtual network tap. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param tap_name: The name of the virtual network tap. + :type tap_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + tap_name=tap_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkTaps/{tapName}'} + + def get( + self, resource_group_name, tap_name, custom_headers=None, raw=False, **operation_config): + """Gets information about the specified virtual network tap. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param tap_name: The name of virtual network tap. + :type tap_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: VirtualNetworkTap or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'tapName': self._serialize.url("tap_name", tap_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('VirtualNetworkTap', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkTaps/{tapName}'} + + + def _create_or_update_initial( + self, resource_group_name, tap_name, parameters, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.create_or_update.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'tapName': self._serialize.url("tap_name", tap_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(parameters, 'VirtualNetworkTap') + + # Construct and send request + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 201]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('VirtualNetworkTap', response) + if response.status_code == 201: + deserialized = self._deserialize('VirtualNetworkTap', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + def create_or_update( + self, resource_group_name, tap_name, parameters, custom_headers=None, raw=False, polling=True, **operation_config): + """Creates or updates a Virtual Network Tap. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param tap_name: The name of the virtual network tap. + :type tap_name: str + :param parameters: Parameters supplied to the create or update virtual + network tap operation. + :type parameters: + ~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns VirtualNetworkTap or + ClientRawResponse if raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap]] + :raises: :class:`CloudError` + """ + raw_result = self._create_or_update_initial( + resource_group_name=resource_group_name, + tap_name=tap_name, + parameters=parameters, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + deserialized = self._deserialize('VirtualNetworkTap', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkTaps/{tapName}'} + + + def _update_tags_initial( + self, resource_group_name, tap_name, tags=None, custom_headers=None, raw=False, **operation_config): + tap_parameters = models.TagsObject(tags=tags) + + # Construct URL + url = self.update_tags.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'tapName': self._serialize.url("tap_name", tap_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(tap_parameters, 'TagsObject') + + # Construct and send request + request = self._client.patch(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('VirtualNetworkTap', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + def update_tags( + self, resource_group_name, tap_name, tags=None, custom_headers=None, raw=False, polling=True, **operation_config): + """Updates an VirtualNetworkTap tags. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param tap_name: The name of the tap. + :type tap_name: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns VirtualNetworkTap or + ClientRawResponse if raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap]] + :raises: :class:`CloudError` + """ + raw_result = self._update_tags_initial( + resource_group_name=resource_group_name, + tap_name=tap_name, + tags=tags, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + deserialized = self._deserialize('VirtualNetworkTap', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + update_tags.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkTaps/{tapName}'} + + def list_all( + self, custom_headers=None, raw=False, **operation_config): + """Gets all the VirtualNetworkTaps in a subscription. + + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of VirtualNetworkTap + :rtype: + ~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTapPaged[~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap] + :raises: :class:`CloudError` + """ + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_all.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + deserialized = models.VirtualNetworkTapPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.VirtualNetworkTapPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_all.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Network/virtualNetworkTaps'} + + def list_by_resource_group( + self, resource_group_name, custom_headers=None, raw=False, **operation_config): + """Gets all the VirtualNetworkTaps in a subscription. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of VirtualNetworkTap + :rtype: + ~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTapPaged[~azure.mgmt.network.v2018_08_01.models.VirtualNetworkTap] + :raises: :class:`CloudError` + """ + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_by_resource_group.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + header_parameters['Accept'] = 'application/json' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct and send request + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + deserialized = models.VirtualNetworkTapPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.VirtualNetworkTapPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkTaps'}