From 89cd464629b3435cf053f8ce502f217359bc4a64 Mon Sep 17 00:00:00 2001 From: Azure SDK for Python bot Date: Tue, 27 Aug 2019 20:26:23 +0000 Subject: [PATCH 1/2] Generated from 774367438889ac553def1957b72b8ba63ad877e5 Add change feed properties to 2019-04-01 Storage. Add change feed properties to Storage Blob Services. --- .../storage/v2019_04_01/models/__init__.py | 3 +++ .../storage/v2019_04_01/models/_models.py | 21 +++++++++++++++++ .../storage/v2019_04_01/models/_models_py3.py | 23 ++++++++++++++++++- 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/__init__.py b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/__init__.py index b0ac56864838..5a4b89d9efae 100644 --- a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/__init__.py +++ b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/__init__.py @@ -15,6 +15,7 @@ from ._models_py3 import AzureFilesIdentityBasedAuthentication from ._models_py3 import BlobContainer from ._models_py3 import BlobServiceProperties + from ._models_py3 import ChangeFeed from ._models_py3 import CheckNameAvailabilityResult from ._models_py3 import CorsRule from ._models_py3 import CorsRules @@ -83,6 +84,7 @@ from ._models import AzureFilesIdentityBasedAuthentication from ._models import BlobContainer from ._models import BlobServiceProperties + from ._models import ChangeFeed from ._models import CheckNameAvailabilityResult from ._models import CorsRule from ._models import CorsRules @@ -189,6 +191,7 @@ 'AzureFilesIdentityBasedAuthentication', 'BlobContainer', 'BlobServiceProperties', + 'ChangeFeed', 'CheckNameAvailabilityResult', 'CorsRule', 'CorsRules', diff --git a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models.py b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models.py index be20426fbaa4..b2f81b2a27eb 100644 --- a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models.py +++ b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models.py @@ -316,6 +316,8 @@ class BlobServiceProperties(Resource): :param automatic_snapshot_policy_enabled: Automatic Snapshot is enabled if set to true. :type automatic_snapshot_policy_enabled: bool + :param change_feed: The blob service properties for change feed events. + :type change_feed: ~azure.mgmt.storage.v2019_04_01.models.ChangeFeed """ _validation = { @@ -332,6 +334,7 @@ class BlobServiceProperties(Resource): 'default_service_version': {'key': 'properties.defaultServiceVersion', 'type': 'str'}, 'delete_retention_policy': {'key': 'properties.deleteRetentionPolicy', 'type': 'DeleteRetentionPolicy'}, 'automatic_snapshot_policy_enabled': {'key': 'properties.automaticSnapshotPolicyEnabled', 'type': 'bool'}, + 'change_feed': {'key': 'properties.changeFeed', 'type': 'ChangeFeed'}, } def __init__(self, **kwargs): @@ -340,6 +343,24 @@ def __init__(self, **kwargs): self.default_service_version = kwargs.get('default_service_version', None) self.delete_retention_policy = kwargs.get('delete_retention_policy', None) self.automatic_snapshot_policy_enabled = kwargs.get('automatic_snapshot_policy_enabled', None) + self.change_feed = kwargs.get('change_feed', None) + + +class ChangeFeed(Model): + """The blob service properties for change feed events. + + :param enabled: Indicates whether change feed event logging is enabled for + the Blob service. + :type enabled: bool + """ + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(ChangeFeed, self).__init__(**kwargs) + self.enabled = kwargs.get('enabled', None) class CheckNameAvailabilityResult(Model): diff --git a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models_py3.py b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models_py3.py index 458b800137f2..550013a9e013 100644 --- a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models_py3.py +++ b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models_py3.py @@ -316,6 +316,8 @@ class BlobServiceProperties(Resource): :param automatic_snapshot_policy_enabled: Automatic Snapshot is enabled if set to true. :type automatic_snapshot_policy_enabled: bool + :param change_feed: The blob service properties for change feed events. + :type change_feed: ~azure.mgmt.storage.v2019_04_01.models.ChangeFeed """ _validation = { @@ -332,14 +334,33 @@ class BlobServiceProperties(Resource): 'default_service_version': {'key': 'properties.defaultServiceVersion', 'type': 'str'}, 'delete_retention_policy': {'key': 'properties.deleteRetentionPolicy', 'type': 'DeleteRetentionPolicy'}, 'automatic_snapshot_policy_enabled': {'key': 'properties.automaticSnapshotPolicyEnabled', 'type': 'bool'}, + 'change_feed': {'key': 'properties.changeFeed', 'type': 'ChangeFeed'}, } - def __init__(self, *, cors=None, default_service_version: str=None, delete_retention_policy=None, automatic_snapshot_policy_enabled: bool=None, **kwargs) -> None: + def __init__(self, *, cors=None, default_service_version: str=None, delete_retention_policy=None, automatic_snapshot_policy_enabled: bool=None, change_feed=None, **kwargs) -> None: super(BlobServiceProperties, self).__init__(**kwargs) self.cors = cors self.default_service_version = default_service_version self.delete_retention_policy = delete_retention_policy self.automatic_snapshot_policy_enabled = automatic_snapshot_policy_enabled + self.change_feed = change_feed + + +class ChangeFeed(Model): + """The blob service properties for change feed events. + + :param enabled: Indicates whether change feed event logging is enabled for + the Blob service. + :type enabled: bool + """ + + _attribute_map = { + 'enabled': {'key': 'enabled', 'type': 'bool'}, + } + + def __init__(self, *, enabled: bool=None, **kwargs) -> None: + super(ChangeFeed, self).__init__(**kwargs) + self.enabled = enabled class CheckNameAvailabilityResult(Model): From fe933b91f274edfa41fa711c1484cf89a2069fd5 Mon Sep 17 00:00:00 2001 From: Azure SDK for Python bot Date: Fri, 6 Sep 2019 03:15:08 +0000 Subject: [PATCH 2/2] Generated from 774367438889ac553def1957b72b8ba63ad877e5 Add change feed properties to 2019-04-01 Storage. Add change feed properties to Storage Blob Services. --- .../storage/v2019_04_01/models/__init__.py | 5 +- .../storage/v2019_04_01/models/_models.py | 31 ------ .../storage/v2019_04_01/models/_models_py3.py | 31 ------ .../v2019_04_01/models/_paged_models.py | 13 +++ .../operations/_file_services_operations.py | 6 +- .../operations/_file_shares_operations.py | 101 ++++++++++-------- 6 files changed, 74 insertions(+), 113 deletions(-) diff --git a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/__init__.py b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/__init__.py index 5a4b89d9efae..3c0de6b2c59e 100644 --- a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/__init__.py +++ b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/__init__.py @@ -32,7 +32,6 @@ from ._models_py3 import FileServiceProperties from ._models_py3 import FileShare from ._models_py3 import FileShareItem - from ._models_py3 import FileShareItems from ._models_py3 import GeoReplicationStats from ._models_py3 import Identity from ._models_py3 import ImmutabilityPolicy @@ -101,7 +100,6 @@ from ._models import FileServiceProperties from ._models import FileShare from ._models import FileShareItem - from ._models import FileShareItems from ._models import GeoReplicationStats from ._models import Identity from ._models import ImmutabilityPolicy @@ -148,6 +146,7 @@ from ._models import UsageName from ._models import VirtualNetworkRule from ._paged_models import BlobServicePropertiesPaged +from ._paged_models import FileShareItemPaged from ._paged_models import ListContainerItemPaged from ._paged_models import OperationPaged from ._paged_models import SkuPaged @@ -208,7 +207,6 @@ 'FileServiceProperties', 'FileShare', 'FileShareItem', - 'FileShareItems', 'GeoReplicationStats', 'Identity', 'ImmutabilityPolicy', @@ -260,6 +258,7 @@ 'UsagePaged', 'BlobServicePropertiesPaged', 'ListContainerItemPaged', + 'FileShareItemPaged', 'ReasonCode', 'SkuName', 'SkuTier', diff --git a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models.py b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models.py index b2f81b2a27eb..7eab5bc5a910 100644 --- a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models.py +++ b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models.py @@ -978,37 +978,6 @@ def __init__(self, **kwargs): self.share_quota = kwargs.get('share_quota', None) -class FileShareItems(Model): - """Response schema. Contains list of shares returned, and if paging is - requested or required, a URL to next page of shares. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar value: List of file shares returned. - :vartype value: list[~azure.mgmt.storage.v2019_04_01.models.FileShareItem] - :ivar next_link: Request URL that can be used to query next page of - shares. Returned when total number of requested shares exceed maximum page - size. - :vartype next_link: str - """ - - _validation = { - 'value': {'readonly': True}, - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[FileShareItem]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__(self, **kwargs): - super(FileShareItems, self).__init__(**kwargs) - self.value = None - self.next_link = None - - class GeoReplicationStats(Model): """Statistics related to replication for storage account's Blob, Table, Queue and File services. It is only available when geo-redundant replication is diff --git a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models_py3.py b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models_py3.py index 550013a9e013..e8d2a1d88e13 100644 --- a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models_py3.py +++ b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_models_py3.py @@ -978,37 +978,6 @@ def __init__(self, *, metadata=None, share_quota: int=None, **kwargs) -> None: self.share_quota = share_quota -class FileShareItems(Model): - """Response schema. Contains list of shares returned, and if paging is - requested or required, a URL to next page of shares. - - Variables are only populated by the server, and will be ignored when - sending a request. - - :ivar value: List of file shares returned. - :vartype value: list[~azure.mgmt.storage.v2019_04_01.models.FileShareItem] - :ivar next_link: Request URL that can be used to query next page of - shares. Returned when total number of requested shares exceed maximum page - size. - :vartype next_link: str - """ - - _validation = { - 'value': {'readonly': True}, - 'next_link': {'readonly': True}, - } - - _attribute_map = { - 'value': {'key': 'value', 'type': '[FileShareItem]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__(self, **kwargs) -> None: - super(FileShareItems, self).__init__(**kwargs) - self.value = None - self.next_link = None - - class GeoReplicationStats(Model): """Statistics related to replication for storage account's Blob, Table, Queue and File services. It is only available when geo-redundant replication is diff --git a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_paged_models.py b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_paged_models.py index 9bdfb7303a88..b1c9ac4fe23c 100644 --- a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_paged_models.py +++ b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/models/_paged_models.py @@ -90,3 +90,16 @@ class ListContainerItemPaged(Paged): def __init__(self, *args, **kwargs): super(ListContainerItemPaged, self).__init__(*args, **kwargs) +class FileShareItemPaged(Paged): + """ + A paging container for iterating over a list of :class:`FileShareItem ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[FileShareItem]'} + } + + def __init__(self, *args, **kwargs): + + super(FileShareItemPaged, self).__init__(*args, **kwargs) diff --git a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/operations/_file_services_operations.py b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/operations/_file_services_operations.py index 346875c3c6e5..2f69fef9ccbf 100644 --- a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/operations/_file_services_operations.py +++ b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/operations/_file_services_operations.py @@ -103,7 +103,7 @@ def list( return deserialized list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices'} - def put_service_properties( + def set_service_properties( self, resource_group_name, account_name, cors=None, custom_headers=None, raw=False, **operation_config): """Sets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules. . @@ -134,7 +134,7 @@ def put_service_properties( parameters = models.FileServiceProperties(cors=cors) # Construct URL - url = self.put_service_properties.metadata['url'] + url = self.set_service_properties.metadata['url'] path_format_arguments = { 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), @@ -177,7 +177,7 @@ def put_service_properties( return client_raw_response return deserialized - put_service_properties.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/{FileServicesName}'} + set_service_properties.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/{FileServicesName}'} def get_service_properties( self, resource_group_name, account_name, custom_headers=None, raw=False, **operation_config): diff --git a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/operations/_file_shares_operations.py b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/operations/_file_shares_operations.py index 70035e2f650c..31b970865ea4 100644 --- a/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/operations/_file_shares_operations.py +++ b/sdk/storage/azure-mgmt-storage/azure/mgmt/storage/v2019_04_01/operations/_file_shares_operations.py @@ -63,55 +63,66 @@ def list( deserialized response :param operation_config: :ref:`Operation configuration overrides`. - :return: FileShareItems or ClientRawResponse if raw=true - :rtype: ~azure.mgmt.storage.v2019_04_01.models.FileShareItems or - ~msrest.pipeline.ClientRawResponse + :return: An iterator like instance of FileShareItem + :rtype: + ~azure.mgmt.storage.v2019_04_01.models.FileShareItemPaged[~azure.mgmt.storage.v2019_04_01.models.FileShareItem] :raises: :class:`ErrorResponseException` """ - # Construct URL - url = self.list.metadata['url'] - path_format_arguments = { - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), - 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) - } - 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', min_length=1) - if skip_token is not None: - query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') - if maxpagesize is not None: - query_parameters['$maxpagesize'] = self._serialize.query("maxpagesize", maxpagesize, 'str') - if filter is not None: - query_parameters['$filter'] = self._serialize.query("filter", filter, '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]: - raise models.ErrorResponseException(self._deserialize, response) - - deserialized = None - if response.status_code == 200: - deserialized = self._deserialize('FileShareItems', response) - + def prepare_request(next_link=None): + 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', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'accountName': self._serialize.url("account_name", account_name, 'str', max_length=24, min_length=3), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1) + } + 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', min_length=1) + if skip_token is not None: + query_parameters['$skipToken'] = self._serialize.query("skip_token", skip_token, 'str') + if maxpagesize is not None: + query_parameters['$maxpagesize'] = self._serialize.query("maxpagesize", maxpagesize, 'str') + if filter is not None: + query_parameters['$filter'] = self._serialize.query("filter", filter, '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) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + raise models.ErrorResponseException(self._deserialize, response) + + return response + + # Deserialize response + header_dict = None if raw: - client_raw_response = ClientRawResponse(deserialized, response) - return client_raw_response + header_dict = {} + deserialized = models.FileShareItemPaged(internal_paging, self._deserialize.dependencies, header_dict) return deserialized list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares'}