diff --git a/azure-mgmt-dns/azure/mgmt/dns/dns_management_client.py b/azure-mgmt-dns/azure/mgmt/dns/dns_management_client.py index d8c552b815c8..ec0ebcc9799e 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/dns_management_client.py +++ b/azure-mgmt-dns/azure/mgmt/dns/dns_management_client.py @@ -44,7 +44,7 @@ def __init__( super(DnsManagementClientConfiguration, self).__init__(base_url) - self.add_user_agent('dnsmanagementclient/{}'.format(VERSION)) + self.add_user_agent('azure-mgmt-dns/{}'.format(VERSION)) self.add_user_agent('Azure-SDK-For-Python') self.credentials = credentials @@ -78,7 +78,7 @@ def __init__( self._client = ServiceClient(self.config.credentials, self.config) client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self.api_version = '2017-09-01' + self.api_version = '2017-10-01' self._serialize = Serializer(client_models) self._deserialize = Deserializer(client_models) diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/aaaa_record.py b/azure-mgmt-dns/azure/mgmt/dns/models/aaaa_record.py index 0a33defb6fa3..69167abed968 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/aaaa_record.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/aaaa_record.py @@ -24,4 +24,5 @@ class AaaaRecord(Model): } def __init__(self, ipv6_address=None): + super(AaaaRecord, self).__init__() self.ipv6_address = ipv6_address diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/arecord.py b/azure-mgmt-dns/azure/mgmt/dns/models/arecord.py index 893a4aaa16b8..430dd1b8cbfa 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/arecord.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/arecord.py @@ -24,4 +24,5 @@ class ARecord(Model): } def __init__(self, ipv4_address=None): + super(ARecord, self).__init__() self.ipv4_address = ipv4_address diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/caa_record.py b/azure-mgmt-dns/azure/mgmt/dns/models/caa_record.py index a20a1d2fc95d..2115ebba3862 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/caa_record.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/caa_record.py @@ -31,6 +31,7 @@ class CaaRecord(Model): } def __init__(self, flags=None, tag=None, value=None): + super(CaaRecord, self).__init__() self.flags = flags self.tag = tag self.value = value diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/cname_record.py b/azure-mgmt-dns/azure/mgmt/dns/models/cname_record.py index 2e967a7a89e8..ddabfad14219 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/cname_record.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/cname_record.py @@ -24,4 +24,5 @@ class CnameRecord(Model): } def __init__(self, cname=None): + super(CnameRecord, self).__init__() self.cname = cname diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/mx_record.py b/azure-mgmt-dns/azure/mgmt/dns/models/mx_record.py index a9dbb9d25a9b..6484a057c797 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/mx_record.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/mx_record.py @@ -27,5 +27,6 @@ class MxRecord(Model): } def __init__(self, preference=None, exchange=None): + super(MxRecord, self).__init__() self.preference = preference self.exchange = exchange diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/ns_record.py b/azure-mgmt-dns/azure/mgmt/dns/models/ns_record.py index a309839097f0..ccfa7d0ab809 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/ns_record.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/ns_record.py @@ -24,4 +24,5 @@ class NsRecord(Model): } def __init__(self, nsdname=None): + super(NsRecord, self).__init__() self.nsdname = nsdname diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/ptr_record.py b/azure-mgmt-dns/azure/mgmt/dns/models/ptr_record.py index 9ed0da711bab..ea9404669788 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/ptr_record.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/ptr_record.py @@ -24,4 +24,5 @@ class PtrRecord(Model): } def __init__(self, ptrdname=None): + super(PtrRecord, self).__init__() self.ptrdname = ptrdname diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/record_set.py b/azure-mgmt-dns/azure/mgmt/dns/models/record_set.py index b9af444a823f..f29c5f5bf8f0 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/record_set.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/record_set.py @@ -83,6 +83,7 @@ class RecordSet(Model): } def __init__(self, etag=None, metadata=None, ttl=None, arecords=None, aaaa_records=None, mx_records=None, ns_records=None, ptr_records=None, srv_records=None, txt_records=None, cname_record=None, soa_record=None, caa_records=None): + super(RecordSet, self).__init__() self.id = None self.name = None self.type = None diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/record_set_update_parameters.py b/azure-mgmt-dns/azure/mgmt/dns/models/record_set_update_parameters.py index d12270d14099..7cefe40b9e3d 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/record_set_update_parameters.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/record_set_update_parameters.py @@ -25,4 +25,5 @@ class RecordSetUpdateParameters(Model): } def __init__(self, record_set=None): + super(RecordSetUpdateParameters, self).__init__() self.record_set = record_set diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/resource.py b/azure-mgmt-dns/azure/mgmt/dns/models/resource.py index 4cef2c8f8255..664761f0c5a0 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/resource.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/resource.py @@ -34,7 +34,6 @@ class Resource(Model): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'location': {'required': True}, } _attribute_map = { @@ -45,7 +44,8 @@ class Resource(Model): 'tags': {'key': 'tags', 'type': '{str}'}, } - def __init__(self, location, tags=None): + def __init__(self, location=None, tags=None): + super(Resource, self).__init__() self.id = None self.name = None self.type = None diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/soa_record.py b/azure-mgmt-dns/azure/mgmt/dns/models/soa_record.py index fec121ed625d..e96c7ac113bc 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/soa_record.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/soa_record.py @@ -44,6 +44,7 @@ class SoaRecord(Model): } def __init__(self, host=None, email=None, serial_number=None, refresh_time=None, retry_time=None, expire_time=None, minimum_ttl=None): + super(SoaRecord, self).__init__() self.host = host self.email = email self.serial_number = serial_number diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/srv_record.py b/azure-mgmt-dns/azure/mgmt/dns/models/srv_record.py index 8f258d5d798c..5ed7d4b25f8e 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/srv_record.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/srv_record.py @@ -33,6 +33,7 @@ class SrvRecord(Model): } def __init__(self, priority=None, weight=None, port=None, target=None): + super(SrvRecord, self).__init__() self.priority = priority self.weight = weight self.port = port diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/txt_record.py b/azure-mgmt-dns/azure/mgmt/dns/models/txt_record.py index 13201e2cfd95..5d1e5adfcf0d 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/txt_record.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/txt_record.py @@ -24,4 +24,5 @@ class TxtRecord(Model): } def __init__(self, value=None): + super(TxtRecord, self).__init__() self.value = value diff --git a/azure-mgmt-dns/azure/mgmt/dns/models/zone.py b/azure-mgmt-dns/azure/mgmt/dns/models/zone.py index d88f88e3973d..dcc6ddc676e7 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/models/zone.py +++ b/azure-mgmt-dns/azure/mgmt/dns/models/zone.py @@ -47,7 +47,6 @@ class Zone(Resource): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, - 'location': {'required': True}, 'max_number_of_record_sets': {'readonly': True}, 'number_of_record_sets': {'readonly': True}, 'name_servers': {'readonly': True}, @@ -65,7 +64,7 @@ class Zone(Resource): 'name_servers': {'key': 'properties.nameServers', 'type': '[str]'}, } - def __init__(self, location, tags=None, etag=None): + def __init__(self, location=None, tags=None, etag=None): super(Zone, self).__init__(location=location, tags=tags) self.etag = etag self.max_number_of_record_sets = None diff --git a/azure-mgmt-dns/azure/mgmt/dns/operations/record_sets_operations.py b/azure-mgmt-dns/azure/mgmt/dns/operations/record_sets_operations.py index ab3735ac47d2..76942014635d 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/operations/record_sets_operations.py +++ b/azure-mgmt-dns/azure/mgmt/dns/operations/record_sets_operations.py @@ -22,16 +22,18 @@ class RecordSetsOperations(object): :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. - :param deserializer: An objec model deserializer. - :ivar api_version: Specifies the API version. Constant value: "2017-09-01". + :param deserializer: An object model deserializer. + :ivar api_version: Specifies the API version. Constant value: "2017-10-01". """ + models = models + def __init__(self, client, config, serializer, deserializer): self._client = client self._serialize = serializer self._deserialize = deserializer - self.api_version = "2017-09-01" + self.api_version = "2017-10-01" self.config = config @@ -68,7 +70,7 @@ def update( :raises: :class:`CloudError` """ # Construct URL - url = '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}/{relativeRecordSetName}' + url = self.update.metadata['url'] path_format_arguments = { 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 'zoneName': self._serialize.url("zone_name", zone_name, 'str'), @@ -100,7 +102,7 @@ def update( # Construct and send request request = self._client.patch(url, query_parameters) response = self._client.send( - request, header_parameters, body_content, **operation_config) + request, header_parameters, body_content, stream=False, **operation_config) if response.status_code not in [200]: exp = CloudError(response) @@ -117,6 +119,7 @@ def update( return client_raw_response return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}/{relativeRecordSetName}'} def create_or_update( self, resource_group_name, zone_name, relative_record_set_name, record_type, parameters, if_match=None, if_none_match=None, custom_headers=None, raw=False, **operation_config): @@ -157,7 +160,7 @@ def create_or_update( :raises: :class:`CloudError` """ # Construct URL - url = '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}/{relativeRecordSetName}' + url = self.create_or_update.metadata['url'] path_format_arguments = { 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 'zoneName': self._serialize.url("zone_name", zone_name, 'str'), @@ -191,25 +194,26 @@ def create_or_update( # Construct and send request request = self._client.put(url, query_parameters) response = self._client.send( - request, header_parameters, body_content, **operation_config) + request, header_parameters, body_content, stream=False, **operation_config) - if response.status_code not in [201, 200]: + 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 == 201: - deserialized = self._deserialize('RecordSet', response) if response.status_code == 200: deserialized = self._deserialize('RecordSet', response) + if response.status_code == 201: + deserialized = self._deserialize('RecordSet', response) if raw: client_raw_response = ClientRawResponse(deserialized, response) return client_raw_response return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}/{relativeRecordSetName}'} def delete( self, resource_group_name, zone_name, relative_record_set_name, record_type, if_match=None, custom_headers=None, raw=False, **operation_config): @@ -242,7 +246,7 @@ def delete( :raises: :class:`CloudError` """ # Construct URL - url = '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}/{relativeRecordSetName}' + url = self.delete.metadata['url'] path_format_arguments = { 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 'zoneName': self._serialize.url("zone_name", zone_name, 'str'), @@ -270,9 +274,9 @@ def delete( # Construct and send request request = self._client.delete(url, query_parameters) - response = self._client.send(request, header_parameters, **operation_config) + response = self._client.send(request, header_parameters, stream=False, **operation_config) - if response.status_code not in [204, 200]: + if response.status_code not in [200, 204]: exp = CloudError(response) exp.request_id = response.headers.get('x-ms-request-id') raise exp @@ -280,6 +284,7 @@ def delete( if raw: client_raw_response = ClientRawResponse(None, response) return client_raw_response + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}/{relativeRecordSetName}'} def get( self, resource_group_name, zone_name, relative_record_set_name, record_type, custom_headers=None, raw=False, **operation_config): @@ -308,7 +313,7 @@ def get( :raises: :class:`CloudError` """ # Construct URL - url = '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}/{relativeRecordSetName}' + url = self.get.metadata['url'] path_format_arguments = { 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 'zoneName': self._serialize.url("zone_name", zone_name, 'str'), @@ -334,7 +339,7 @@ def get( # Construct and send request request = self._client.get(url, query_parameters) - response = self._client.send(request, header_parameters, **operation_config) + response = self._client.send(request, header_parameters, stream=False, **operation_config) if response.status_code not in [200]: exp = CloudError(response) @@ -351,6 +356,7 @@ def get( return client_raw_response return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}/{relativeRecordSetName}'} def list_by_type( self, resource_group_name, zone_name, record_type, top=None, recordsetnamesuffix=None, custom_headers=None, raw=False, **operation_config): @@ -387,7 +393,7 @@ def internal_paging(next_link=None, raw=False): if not next_link: # Construct URL - url = '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}' + url = self.list_by_type.metadata['url'] path_format_arguments = { 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 'zoneName': self._serialize.url("zone_name", zone_name, 'str'), @@ -421,7 +427,7 @@ def internal_paging(next_link=None, raw=False): # Construct and send request request = self._client.get(url, query_parameters) response = self._client.send( - request, header_parameters, **operation_config) + request, header_parameters, stream=False, **operation_config) if response.status_code not in [200]: exp = CloudError(response) @@ -439,6 +445,7 @@ def internal_paging(next_link=None, raw=False): return client_raw_response return deserialized + list_by_type.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}'} def list_by_dns_zone( self, resource_group_name, zone_name, top=None, recordsetnamesuffix=None, custom_headers=None, raw=False, **operation_config): @@ -471,7 +478,7 @@ def internal_paging(next_link=None, raw=False): if not next_link: # Construct URL - url = '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/recordsets' + url = self.list_by_dns_zone.metadata['url'] path_format_arguments = { 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 'zoneName': self._serialize.url("zone_name", zone_name, 'str'), @@ -504,7 +511,91 @@ def internal_paging(next_link=None, raw=False): # Construct and send request request = self._client.get(url, query_parameters) response = self._client.send( - request, header_parameters, **operation_config) + request, header_parameters, 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.RecordSetPaged(internal_paging, self._deserialize.dependencies) + + if raw: + header_dict = {} + client_raw_response = models.RecordSetPaged(internal_paging, self._deserialize.dependencies, header_dict) + return client_raw_response + + return deserialized + list_by_dns_zone.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/recordsets'} + + def list_all_by_dns_zone( + self, resource_group_name, zone_name, top=None, record_set_name_suffix=None, custom_headers=None, raw=False, **operation_config): + """Lists all record sets in a DNS zone. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param zone_name: The name of the DNS zone (without a terminating + dot). + :type zone_name: str + :param top: The maximum number of record sets to return. If not + specified, returns up to 100 record sets. + :type top: int + :param record_set_name_suffix: The suffix label of the record set name + that has to be used to filter the record set enumerations. If this + parameter is specified, Enumeration will return only records that end + with . + :type record_set_name_suffix: 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 RecordSet + :rtype: + ~azure.mgmt.dns.models.RecordSetPaged[~azure.mgmt.dns.models.RecordSet] + :raises: :class:`CloudError` + """ + def internal_paging(next_link=None, raw=False): + + if not next_link: + # Construct URL + url = self.list_all_by_dns_zone.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'zoneName': self._serialize.url("zone_name", zone_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 = {} + if top is not None: + query_parameters['$top'] = self._serialize.query("top", top, 'int') + if record_set_name_suffix is not None: + query_parameters['$recordsetnamesuffix'] = self._serialize.query("record_set_name_suffix", record_set_name_suffix, 'str') + 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['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 and send request + request = self._client.get(url, query_parameters) + response = self._client.send( + request, header_parameters, stream=False, **operation_config) if response.status_code not in [200]: exp = CloudError(response) @@ -522,3 +613,4 @@ def internal_paging(next_link=None, raw=False): return client_raw_response return deserialized + list_all_by_dns_zone.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/all'} diff --git a/azure-mgmt-dns/azure/mgmt/dns/operations/zones_operations.py b/azure-mgmt-dns/azure/mgmt/dns/operations/zones_operations.py index 5c147a0f31e1..a7dbb1763603 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/operations/zones_operations.py +++ b/azure-mgmt-dns/azure/mgmt/dns/operations/zones_operations.py @@ -12,6 +12,7 @@ import uuid from msrest.pipeline import ClientRawResponse from msrestazure.azure_exceptions import CloudError +from msrest.exceptions import DeserializationError from msrestazure.azure_operation import AzureOperationPoller from .. import models @@ -23,16 +24,18 @@ class ZonesOperations(object): :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. - :param deserializer: An objec model deserializer. - :ivar api_version: Specifies the API version. Constant value: "2017-09-01". + :param deserializer: An object model deserializer. + :ivar api_version: Specifies the API version. Constant value: "2017-10-01". """ + models = models + def __init__(self, client, config, serializer, deserializer): self._client = client self._serialize = serializer self._deserialize = deserializer - self.api_version = "2017-09-01" + self.api_version = "2017-10-01" self.config = config @@ -68,7 +71,7 @@ def create_or_update( :raises: :class:`CloudError` """ # Construct URL - url = '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}' + url = self.create_or_update.metadata['url'] path_format_arguments = { 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 'zoneName': self._serialize.url("zone_name", zone_name, 'str'), @@ -100,7 +103,7 @@ def create_or_update( # Construct and send request request = self._client.put(url, query_parameters) response = self._client.send( - request, header_parameters, body_content, **operation_config) + request, header_parameters, body_content, stream=False, **operation_config) if response.status_code not in [200, 201]: exp = CloudError(response) @@ -119,32 +122,13 @@ def create_or_update( return client_raw_response return deserialized + create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}'} - def delete( - self, resource_group_name, zone_name, if_match=None, custom_headers=None, raw=False, **operation_config): - """Deletes a DNS zone. WARNING: All DNS records in the zone will also be - deleted. This operation cannot be undone. - :param resource_group_name: The name of the resource group. - :type resource_group_name: str - :param zone_name: The name of the DNS zone (without a terminating - dot). - :type zone_name: str - :param if_match: The etag of the DNS zone. Omit this value to always - delete the current zone. Specify the last-seen etag value to prevent - accidentally deleting any concurrent changes. - :type if_match: str - :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :return: An instance of AzureOperationPoller that returns None or - ClientRawResponse if raw=true - :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or - ~msrest.pipeline.ClientRawResponse - :raises: :class:`CloudError` - """ + def _delete_initial( + self, resource_group_name, zone_name, if_match=None, custom_headers=None, raw=False, **operation_config): # Construct URL - url = '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}' + url = self.delete.metadata['url'] path_format_arguments = { 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 'zoneName': self._serialize.url("zone_name", zone_name, 'str'), @@ -169,22 +153,69 @@ def delete( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - def long_running_send(): + request = self._client.delete(url, query_parameters) + response = self._client.send(request, header_parameters, stream=False, **operation_config) - request = self._client.delete(url, query_parameters) - return self._client.send(request, header_parameters, **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, zone_name, if_match=None, custom_headers=None, raw=False, **operation_config): + """Deletes a DNS zone. WARNING: All DNS records in the zone will also be + deleted. This operation cannot be undone. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param zone_name: The name of the DNS zone (without a terminating + dot). + :type zone_name: str + :param if_match: The etag of the DNS zone. Omit this value to always + delete the current zone. Specify the last-seen etag value to prevent + accidentally deleting any concurrent changes. + :type if_match: str + :param dict custom_headers: headers that will be added to the request + :param bool raw: returns the direct response alongside the + deserialized response + :return: An instance of AzureOperationPoller that returns None or + ClientRawResponse if raw=true + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + zone_name=zone_name, + if_match=if_match, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + if raw: + return raw_result + + # Construct and send request + def long_running_send(): + return raw_result.response def get_long_running_status(status_link, headers=None): request = self._client.get(status_link) if headers: request.headers.update(headers) + header_parameters = {} + header_parameters['x-ms-client-request-id'] = raw_result.response.request.headers['x-ms-client-request-id'] return self._client.send( - request, header_parameters, **operation_config) + request, header_parameters, stream=False, **operation_config) def get_long_running_output(response): - if response.status_code not in [204, 202, 200]: + if response.status_code not in [200, 202, 204]: exp = CloudError(response) exp.request_id = response.headers.get('x-ms-request-id') raise exp @@ -193,16 +224,13 @@ def get_long_running_output(response): client_raw_response = ClientRawResponse(None, response) return client_raw_response - if raw: - response = long_running_send() - return get_long_running_output(response) - long_running_operation_timeout = operation_config.get( 'long_running_operation_timeout', self.config.long_running_operation_timeout) return AzureOperationPoller( long_running_send, get_long_running_output, get_long_running_status, long_running_operation_timeout) + delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}'} def get( self, resource_group_name, zone_name, custom_headers=None, raw=False, **operation_config): @@ -225,7 +253,7 @@ def get( :raises: :class:`CloudError` """ # Construct URL - url = '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}' + url = self.get.metadata['url'] path_format_arguments = { 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 'zoneName': self._serialize.url("zone_name", zone_name, 'str'), @@ -249,7 +277,82 @@ def get( # Construct and send request request = self._client.get(url, query_parameters) - response = self._client.send(request, header_parameters, **operation_config) + response = self._client.send(request, header_parameters, 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('Zone', 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/dnsZones/{zoneName}'} + + def update( + self, resource_group_name, zone_name, parameters, if_match=None, custom_headers=None, raw=False, **operation_config): + """Updates a DNS zone. Does not modify DNS records within the zone. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param zone_name: The name of the DNS zone (without a terminating + dot). + :type zone_name: str + :param parameters: Parameters supplied to the Update operation. + :type parameters: ~azure.mgmt.dns.models.Zone + :param if_match: The etag of the DNS zone. Omit this value to always + overwrite the current zone. Specify the last-seen etag value to + prevent accidentally overwritting any concurrent changes. + :type if_match: 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: Zone or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.dns.models.Zone or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.update.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'zoneName': self._serialize.url("zone_name", zone_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['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 if_match is not None: + header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') + 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, 'Zone') + + # Construct and send request + request = self._client.patch(url, query_parameters) + response = self._client.send( + request, header_parameters, body_content, stream=False, **operation_config) if response.status_code not in [200]: exp = CloudError(response) @@ -266,6 +369,7 @@ def get( return client_raw_response return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}'} def list_by_resource_group( self, resource_group_name, top=None, custom_headers=None, raw=False, **operation_config): @@ -289,7 +393,7 @@ def internal_paging(next_link=None, raw=False): if not next_link: # Construct URL - url = '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones' + 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') @@ -319,7 +423,7 @@ def internal_paging(next_link=None, raw=False): # Construct and send request request = self._client.get(url, query_parameters) response = self._client.send( - request, header_parameters, **operation_config) + request, header_parameters, stream=False, **operation_config) if response.status_code not in [200]: exp = CloudError(response) @@ -337,6 +441,7 @@ def internal_paging(next_link=None, raw=False): return client_raw_response return deserialized + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones'} def list( self, top=None, custom_headers=None, raw=False, **operation_config): @@ -358,7 +463,7 @@ def internal_paging(next_link=None, raw=False): if not next_link: # Construct URL - url = '/subscriptions/{subscriptionId}/providers/Microsoft.Network/dnszones' + url = self.list.metadata['url'] path_format_arguments = { 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') } @@ -387,7 +492,7 @@ def internal_paging(next_link=None, raw=False): # Construct and send request request = self._client.get(url, query_parameters) response = self._client.send( - request, header_parameters, **operation_config) + request, header_parameters, stream=False, **operation_config) if response.status_code not in [200]: exp = CloudError(response) @@ -405,3 +510,4 @@ def internal_paging(next_link=None, raw=False): return client_raw_response return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Network/dnszones'} diff --git a/azure-mgmt-dns/azure/mgmt/dns/version.py b/azure-mgmt-dns/azure/mgmt/dns/version.py index 9c644827672b..6fd4531cf9ac 100644 --- a/azure-mgmt-dns/azure/mgmt/dns/version.py +++ b/azure-mgmt-dns/azure/mgmt/dns/version.py @@ -9,5 +9,5 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "1.2.0" +VERSION = "2017-10-01"