diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py index 1da944103ce9..3cbdd675e5fe 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_blob_client.py @@ -53,7 +53,6 @@ from datetime import datetime from ._generated.models import BlockList from ._models import ( # pylint: disable=unused-import - BlobProperties, ContentSettings, PremiumPageBlobTier, StandardBlobTier, diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_append_blob_operations_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_append_blob_operations_async.py index 2f765d42722f..ea79827cdbd0 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_append_blob_operations_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_append_blob_operations_async.py @@ -131,6 +131,9 @@ async def create(self, content_length, timeout=None, metadata=None, request_id=N if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.create.metadata['url'] @@ -185,6 +188,8 @@ async def create(self, content_length, timeout=None, metadata=None, request_id=N header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -295,6 +300,9 @@ async def append_block(self, body, content_length, timeout=None, transactional_c if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "appendblock" @@ -344,6 +352,8 @@ async def append_block(self, body, content_length, timeout=None, transactional_c header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct body @@ -468,6 +478,9 @@ async def append_block_from_url(self, source_url, content_length, source_range=N if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags source_if_modified_since = None if source_modified_access_conditions is not None: source_if_modified_since = source_modified_access_conditions.source_if_modified_since @@ -533,6 +546,8 @@ async def append_block_from_url(self, source_url, content_length, source_range=N header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') if source_if_modified_since is not None: header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') if source_if_unmodified_since is not None: diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_blob_operations_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_blob_operations_async.py index 08f335455ebd..344088bdf7b9 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_blob_operations_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_blob_operations_async.py @@ -118,6 +118,9 @@ async def download(self, snapshot=None, version_id=None, timeout=None, range=Non if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.download.metadata['url'] @@ -163,6 +166,8 @@ async def download(self, snapshot=None, version_id=None, timeout=None, range=Non header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.get(url, query_parameters, header_parameters) @@ -335,6 +340,9 @@ async def get_properties(self, snapshot=None, version_id=None, timeout=None, req if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.get_properties.metadata['url'] @@ -373,6 +381,8 @@ async def get_properties(self, snapshot=None, version_id=None, timeout=None, req header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.head(url, query_parameters, header_parameters) @@ -508,6 +518,9 @@ async def delete(self, snapshot=None, version_id=None, timeout=None, delete_snap if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.delete.metadata['url'] @@ -542,6 +555,8 @@ async def delete(self, snapshot=None, version_id=None, timeout=None, delete_snap header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) @@ -839,8 +854,7 @@ async def rename(self, rename_source, timeout=None, path_rename_mode=None, direc default umask - 0027 will be used. :type posix_umask: str :param source_lease_id: A lease ID for the source path. If specified, - the source path must have an active lease and the leaase ID must - match. + the source path must have an active lease and the lease ID must match. :type source_lease_id: str :param request_id: Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage @@ -1188,6 +1202,9 @@ async def set_http_headers(self, timeout=None, request_id=None, blob_http_header if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "properties" @@ -1231,6 +1248,8 @@ async def set_http_headers(self, timeout=None, request_id=None, blob_http_header header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1325,6 +1344,9 @@ async def set_metadata(self, timeout=None, metadata=None, request_id=None, lease if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "metadata" @@ -1366,6 +1388,8 @@ async def set_metadata(self, timeout=None, metadata=None, request_id=None, lease header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1440,6 +1464,9 @@ async def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=Non if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "lease" action = "acquire" @@ -1475,6 +1502,8 @@ async def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=Non header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1538,6 +1567,9 @@ async def release_lease(self, lease_id, timeout=None, request_id=None, modified_ if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "lease" action = "release" @@ -1570,6 +1602,8 @@ async def release_lease(self, lease_id, timeout=None, request_id=None, modified_ header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1632,6 +1666,9 @@ async def renew_lease(self, lease_id, timeout=None, request_id=None, modified_ac if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "lease" action = "renew" @@ -1664,6 +1701,8 @@ async def renew_lease(self, lease_id, timeout=None, request_id=None, modified_ac header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1732,6 +1771,9 @@ async def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_ if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "lease" action = "change" @@ -1765,6 +1807,8 @@ async def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_ header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1836,6 +1880,9 @@ async def break_lease(self, timeout=None, break_period=None, request_id=None, mo if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "lease" action = "break" @@ -1869,6 +1916,8 @@ async def break_lease(self, timeout=None, break_period=None, request_id=None, mo header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1959,6 +2008,9 @@ async def create_snapshot(self, timeout=None, metadata=None, request_id=None, cp if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags lease_id = None if lease_access_conditions is not None: lease_id = lease_access_conditions.lease_id @@ -2001,6 +2053,8 @@ async def create_snapshot(self, timeout=None, metadata=None, request_id=None, cp header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') if lease_id is not None: header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') @@ -2105,6 +2159,9 @@ async def start_copy_from_url(self, copy_source, timeout=None, metadata=None, ti source_if_none_match = None if source_modified_access_conditions is not None: source_if_none_match = source_modified_access_conditions.source_if_none_match + source_if_tags = None + if source_modified_access_conditions is not None: + source_if_tags = source_modified_access_conditions.source_if_tags if_modified_since = None if modified_access_conditions is not None: if_modified_since = modified_access_conditions.if_modified_since @@ -2117,6 +2174,9 @@ async def start_copy_from_url(self, copy_source, timeout=None, metadata=None, ti if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags lease_id = None if lease_access_conditions is not None: lease_id = lease_access_conditions.lease_id @@ -2157,6 +2217,8 @@ async def start_copy_from_url(self, copy_source, timeout=None, metadata=None, ti header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') if source_if_none_match is not None: header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + if source_if_tags is not None: + header_parameters['x-ms-source-if-tags'] = self._serialize.header("source_if_tags", source_if_tags, 'str') if if_modified_since is not None: header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') if if_unmodified_since is not None: @@ -2165,6 +2227,8 @@ async def start_copy_from_url(self, copy_source, timeout=None, metadata=None, ti header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') if lease_id is not None: header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') @@ -2279,6 +2343,9 @@ async def copy_from_url(self, copy_source, timeout=None, metadata=None, tier=Non if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags lease_id = None if lease_access_conditions is not None: lease_id = lease_access_conditions.lease_id @@ -2328,6 +2395,8 @@ async def copy_from_url(self, copy_source, timeout=None, metadata=None, tier=Non header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') if lease_id is not None: header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') @@ -2588,9 +2657,9 @@ async def get_account_info(self, *, cls=None, **kwargs): return cls(response, None, response_headers) get_account_info.metadata = {'url': '/{containerName}/{blob}'} - async def quick_query(self, query_request=None, snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, *, cls=None, **kwargs): - """The QuickQuery operation enables users to select/project on blob data - by providing simple query expressions. + async def query(self, query_request=None, snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, *, cls=None, **kwargs): + """The Query operation enables users to select/project on blob data by + providing simple query expressions. :param query_request: the query request :type query_request: ~azure.storage.blob.models.QueryRequest @@ -2655,7 +2724,7 @@ async def quick_query(self, query_request=None, snapshot=None, timeout=None, req comp = "query" # Construct URL - url = self.quick_query.metadata['url'] + url = self.query.metadata['url'] path_format_arguments = { 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) } @@ -2792,9 +2861,9 @@ async def quick_query(self, query_request=None, snapshot=None, timeout=None, req return cls(response, deserialized, header_dict) return deserialized - quick_query.metadata = {'url': '/{containerName}/{blob}'} + query.metadata = {'url': '/{containerName}/{blob}'} - async def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None, *, cls=None, **kwargs): + async def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None, modified_access_conditions=None, *, cls=None, **kwargs): """The Get Tags operation enables users to get the tags associated with a blob. @@ -2817,6 +2886,10 @@ async def get_tags(self, timeout=None, request_id=None, snapshot=None, version_i value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer. :type version_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions :param callable cls: A custom type or function that will be passed the direct response :return: BlobTags or the result of cls(response) @@ -2825,6 +2898,10 @@ async def get_tags(self, timeout=None, request_id=None, snapshot=None, version_i :class:`StorageErrorException` """ error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + comp = "tags" # Construct URL @@ -2850,6 +2927,8 @@ async def get_tags(self, timeout=None, request_id=None, snapshot=None, version_i header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') if request_id is not None: header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.get(url, query_parameters, header_parameters) @@ -2878,7 +2957,7 @@ async def get_tags(self, timeout=None, request_id=None, snapshot=None, version_i return deserialized get_tags.metadata = {'url': '/{containerName}/{blob}'} - async def set_tags(self, timeout=None, snapshot=None, version_id=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, tags=None, *, cls=None, **kwargs): + async def set_tags(self, timeout=None, version_id=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, tags=None, modified_access_conditions=None, *, cls=None, **kwargs): """The Set Tags operation enables users to set tags on a blob. :param timeout: The timeout parameter is expressed in seconds. For @@ -2886,12 +2965,6 @@ async def set_tags(self, timeout=None, snapshot=None, version_id=None, transacti href="https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations">Setting Timeouts for Blob Service Operations. :type timeout: int - :param snapshot: The snapshot parameter is an opaque DateTime value - that, when present, specifies the blob snapshot to retrieve. For more - information on working with blob snapshots, see Creating - a Snapshot of a Blob. - :type snapshot: str :param version_id: The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer. @@ -2908,6 +2981,10 @@ async def set_tags(self, timeout=None, snapshot=None, version_id=None, transacti :type request_id: str :param tags: Blob tags :type tags: ~azure.storage.blob.models.BlobTags + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions :param callable cls: A custom type or function that will be passed the direct response :return: None or the result of cls(response) @@ -2916,6 +2993,10 @@ async def set_tags(self, timeout=None, snapshot=None, version_id=None, transacti :class:`StorageErrorException` """ error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + comp = "tags" # Construct URL @@ -2929,8 +3010,6 @@ async def set_tags(self, timeout=None, snapshot=None, version_id=None, transacti query_parameters = {} if timeout is not None: query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) - if snapshot is not None: - query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') if version_id is not None: query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') query_parameters['comp'] = self._serialize.query("comp", comp, 'str') @@ -2945,6 +3024,8 @@ async def set_tags(self, timeout=None, snapshot=None, version_id=None, transacti header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') if request_id is not None: header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct body if tags is not None: diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_block_blob_operations_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_block_blob_operations_async.py index ab07535bd90e..e06937056b0b 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_block_blob_operations_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_block_blob_operations_async.py @@ -145,6 +145,9 @@ async def upload(self, body, content_length, timeout=None, transactional_content if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.upload.metadata['url'] @@ -204,6 +207,8 @@ async def upload(self, body, content_length, timeout=None, transactional_content header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct body @@ -622,6 +627,9 @@ async def commit_block_list(self, blocks, timeout=None, transactional_content_md if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "blocklist" @@ -684,6 +692,8 @@ async def commit_block_list(self, blocks, timeout=None, transactional_content_md header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct body body_content = self._serialize.body(blocks, 'BlockLookupList') @@ -716,7 +726,7 @@ async def commit_block_list(self, blocks, timeout=None, transactional_content_md return cls(response, None, response_headers) commit_block_list.metadata = {'url': '/{containerName}/{blob}'} - async def get_block_list(self, list_type="committed", snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, *, cls=None, **kwargs): + async def get_block_list(self, list_type="committed", snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, *, cls=None, **kwargs): """The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob. @@ -743,6 +753,10 @@ async def get_block_list(self, list_type="committed", snapshot=None, timeout=Non operation :type lease_access_conditions: ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions :param callable cls: A custom type or function that will be passed the direct response :return: BlockList or the result of cls(response) @@ -754,6 +768,9 @@ async def get_block_list(self, list_type="committed", snapshot=None, timeout=Non lease_id = None if lease_access_conditions is not None: lease_id = lease_access_conditions.lease_id + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "blocklist" @@ -781,6 +798,8 @@ async def get_block_list(self, list_type="committed", snapshot=None, timeout=Non header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') if lease_id is not None: header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.get(url, query_parameters, header_parameters) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_directory_operations_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_directory_operations_async.py index 144bdfff6582..590c0f884339 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_directory_operations_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_directory_operations_async.py @@ -246,8 +246,7 @@ async def rename(self, rename_source, timeout=None, marker=None, path_rename_mod default umask - 0027 will be used. :type posix_umask: str :param source_lease_id: A lease ID for the source path. If specified, - the source path must have an active lease and the leaase ID must - match. + the source path must have an active lease and the lease ID must match. :type source_lease_id: str :param request_id: Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_page_blob_operations_async.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_page_blob_operations_async.py index 6ab1820ec145..af3903960000 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_page_blob_operations_async.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/aio/operations_async/_page_blob_operations_async.py @@ -144,6 +144,9 @@ async def create(self, content_length, blob_content_length, timeout=None, tier=N if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.create.metadata['url'] @@ -203,6 +206,8 @@ async def create(self, content_length, blob_content_length, timeout=None, tier=N header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -316,6 +321,9 @@ async def upload_pages(self, body, content_length, transactional_content_md5=Non if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "page" page_write = "update" @@ -371,6 +379,8 @@ async def upload_pages(self, body, content_length, transactional_content_md5=Non header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct body @@ -649,6 +659,9 @@ async def upload_pages_from_url(self, source_url, source_range, content_length, if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags source_if_modified_since = None if source_modified_access_conditions is not None: source_if_modified_since = source_modified_access_conditions.source_if_modified_since @@ -716,6 +729,8 @@ async def upload_pages_from_url(self, source_url, source_range, content_length, header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') if source_if_modified_since is not None: header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') if source_if_unmodified_since is not None: @@ -805,6 +820,9 @@ async def get_page_ranges(self, snapshot=None, timeout=None, range=None, request if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "pagelist" @@ -841,6 +859,8 @@ async def get_page_ranges(self, snapshot=None, timeout=None, range=None, request header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.get(url, query_parameters, header_parameters) @@ -941,6 +961,9 @@ async def get_page_ranges_diff(self, snapshot=None, timeout=None, prevsnapshot=N if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "pagelist" @@ -981,6 +1004,8 @@ async def get_page_ranges_diff(self, snapshot=None, timeout=None, prevsnapshot=N header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.get(url, query_parameters, header_parameters) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/__init__.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/__init__.py index b16a559b72b9..a77c55794e10 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/__init__.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/__init__.py @@ -18,7 +18,7 @@ from ._models_py3 import BlobItemInternal from ._models_py3 import BlobMetadata from ._models_py3 import BlobPrefix - from ._models_py3 import BlobProperties + from ._models_py3 import BlobPropertiesInternal from ._models_py3 import BlobTag from ._models_py3 import BlobTags from ._models_py3 import Block @@ -49,9 +49,9 @@ from ._models_py3 import ModifiedAccessConditions from ._models_py3 import PageList from ._models_py3 import PageRange + from ._models_py3 import QueryFormat from ._models_py3 import QueryRequest - from ._models_py3 import QuickQueryFormat - from ._models_py3 import QuickQuerySerialization + from ._models_py3 import QuerySerialization from ._models_py3 import RetentionPolicy from ._models_py3 import SequenceNumberAccessConditions from ._models_py3 import SignedIdentifier @@ -70,7 +70,7 @@ from ._models import BlobItemInternal from ._models import BlobMetadata from ._models import BlobPrefix - from ._models import BlobProperties + from ._models import BlobPropertiesInternal from ._models import BlobTag from ._models import BlobTags from ._models import Block @@ -101,9 +101,9 @@ from ._models import ModifiedAccessConditions from ._models import PageList from ._models import PageRange + from ._models import QueryFormat from ._models import QueryRequest - from ._models import QuickQueryFormat - from ._models import QuickQuerySerialization + from ._models import QuerySerialization from ._models import RetentionPolicy from ._models import SequenceNumberAccessConditions from ._models import SignedIdentifier @@ -134,7 +134,7 @@ PathRenameMode, PremiumPageBlobAccessTier, PublicAccessType, - QuickQueryFormatType, + QueryFormatType, RehydratePriority, SequenceNumberActionType, SkuName, @@ -151,7 +151,7 @@ 'BlobItemInternal', 'BlobMetadata', 'BlobPrefix', - 'BlobProperties', + 'BlobPropertiesInternal', 'BlobTag', 'BlobTags', 'Block', @@ -182,9 +182,9 @@ 'ModifiedAccessConditions', 'PageList', 'PageRange', + 'QueryFormat', 'QueryRequest', - 'QuickQueryFormat', - 'QuickQuerySerialization', + 'QuerySerialization', 'RetentionPolicy', 'SequenceNumberAccessConditions', 'SignedIdentifier', @@ -204,7 +204,7 @@ 'BlobType', 'StorageErrorCode', 'GeoReplicationStatusType', - 'QuickQueryFormatType', + 'QueryFormatType', 'AccessTierRequired', 'AccessTierOptional', 'PremiumPageBlobAccessTier', diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_azure_blob_storage_enums.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_azure_blob_storage_enums.py index 6bdfd2a9b05b..853f65bbac6c 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_azure_blob_storage_enums.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_azure_blob_storage_enums.py @@ -200,7 +200,7 @@ class GeoReplicationStatusType(str, Enum): unavailable = "unavailable" -class QuickQueryFormatType(str, Enum): +class QueryFormatType(str, Enum): delimited = "delimited" json = "json" diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models.py index 3717803f3958..1922133d70a5 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models.py @@ -191,15 +191,13 @@ class BlobItemInternal(Model): :param is_current_version: :type is_current_version: bool :param properties: Required. - :type properties: ~azure.storage.blob.models.BlobProperties + :type properties: ~azure.storage.blob.models.BlobPropertiesInternal :param metadata: :type metadata: ~azure.storage.blob.models.BlobMetadata :param blob_tags: :type blob_tags: ~azure.storage.blob.models.BlobTags - :param object_replication_policy_id: - :type object_replication_policy_id: str - :param object_replication_rule_status: - :type object_replication_rule_status: dict[str, str] + :param object_replication_metadata: + :type object_replication_metadata: dict[str, str] """ _validation = { @@ -215,11 +213,10 @@ class BlobItemInternal(Model): 'snapshot': {'key': 'Snapshot', 'type': 'str', 'xml': {'name': 'Snapshot'}}, 'version_id': {'key': 'VersionId', 'type': 'str', 'xml': {'name': 'VersionId'}}, 'is_current_version': {'key': 'IsCurrentVersion', 'type': 'bool', 'xml': {'name': 'IsCurrentVersion'}}, - 'properties': {'key': 'Properties', 'type': 'BlobProperties', 'xml': {'name': 'Properties'}}, + 'properties': {'key': 'Properties', 'type': 'BlobPropertiesInternal', 'xml': {'name': 'Properties'}}, 'metadata': {'key': 'Metadata', 'type': 'BlobMetadata', 'xml': {'name': 'Metadata'}}, 'blob_tags': {'key': 'BlobTags', 'type': 'BlobTags', 'xml': {'name': 'BlobTags'}}, - 'object_replication_policy_id': {'key': 'ObjectReplicationPolicyId', 'type': 'str', 'xml': {'name': 'ObjectReplicationPolicyId'}}, - 'object_replication_rule_status': {'key': 'ObjectReplicationRuleStatus', 'type': '{str}', 'xml': {'name': 'ObjectReplicationRuleStatus'}}, + 'object_replication_metadata': {'key': 'ObjectReplicationMetadata', 'type': '{str}', 'xml': {'name': 'ObjectReplicationMetadata'}}, } _xml_map = { 'name': 'Blob' @@ -235,8 +232,7 @@ def __init__(self, **kwargs): self.properties = kwargs.get('properties', None) self.metadata = kwargs.get('metadata', None) self.blob_tags = kwargs.get('blob_tags', None) - self.object_replication_policy_id = kwargs.get('object_replication_policy_id', None) - self.object_replication_rule_status = kwargs.get('object_replication_rule_status', None) + self.object_replication_metadata = kwargs.get('object_replication_metadata', None) class BlobMetadata(Model): @@ -287,7 +283,7 @@ def __init__(self, **kwargs): self.name = kwargs.get('name', None) -class BlobProperties(Model): +class BlobPropertiesInternal(Model): """Properties of a blob. All required parameters must be populated in order to send to Azure. @@ -417,7 +413,7 @@ class BlobProperties(Model): } def __init__(self, **kwargs): - super(BlobProperties, self).__init__(**kwargs) + super(BlobPropertiesInternal, self).__init__(**kwargs) self.creation_time = kwargs.get('creation_time', None) self.last_modified = kwargs.get('last_modified', None) self.etag = kwargs.get('etag', None) @@ -874,19 +870,20 @@ def __init__(self, **kwargs): class DataLakeStorageError(Model): """DataLakeStorageError. - :param error: The service error response object. - :type error: ~azure.storage.blob.models.DataLakeStorageErrorError + :param data_lake_storage_error_details: The service error response object. + :type data_lake_storage_error_details: + ~azure.storage.blob.models.DataLakeStorageErrorError """ _attribute_map = { - 'error': {'key': 'error', 'type': 'DataLakeStorageErrorError', 'xml': {'name': 'error'}}, + 'data_lake_storage_error_details': {'key': 'error', 'type': 'DataLakeStorageErrorError', 'xml': {'name': 'error'}}, } _xml_map = { } def __init__(self, **kwargs): super(DataLakeStorageError, self).__init__(**kwargs) - self.error = kwargs.get('error', None) + self.data_lake_storage_error_details = kwargs.get('data_lake_storage_error_details', None) class DataLakeStorageErrorException(HttpResponseError): @@ -1442,6 +1439,9 @@ class ModifiedAccessConditions(Model): :param if_none_match: Specify an ETag value to operate only on blobs without a matching value. :type if_none_match: str + :param if_tags: Specify a SQL where clause on blob tags to operate only on + blobs with a matching value. + :type if_tags: str """ _attribute_map = { @@ -1449,6 +1449,7 @@ class ModifiedAccessConditions(Model): 'if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'if_unmodified_since'}}, 'if_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_match'}}, 'if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_none_match'}}, + 'if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'if_tags'}}, } _xml_map = { } @@ -1459,6 +1460,7 @@ def __init__(self, **kwargs): self.if_unmodified_since = kwargs.get('if_unmodified_since', None) self.if_match = kwargs.get('if_match', None) self.if_none_match = kwargs.get('if_none_match', None) + self.if_tags = kwargs.get('if_tags', None) class PageList(Model): @@ -1513,6 +1515,34 @@ def __init__(self, **kwargs): self.end = kwargs.get('end', None) +class QueryFormat(Model): + """QueryFormat. + + :param type: Possible values include: 'delimited', 'json' + :type type: str or ~azure.storage.blob.models.QueryFormatType + :param delimited_text_configuration: + :type delimited_text_configuration: + ~azure.storage.blob.models.DelimitedTextConfiguration + :param json_text_configuration: + :type json_text_configuration: + ~azure.storage.blob.models.JsonTextConfiguration + """ + + _attribute_map = { + 'type': {'key': 'Type', 'type': 'QueryFormatType', 'xml': {'name': 'Type'}}, + 'delimited_text_configuration': {'key': 'DelimitedTextConfiguration', 'type': 'DelimitedTextConfiguration', 'xml': {'name': 'DelimitedTextConfiguration'}}, + 'json_text_configuration': {'key': 'JsonTextConfiguration', 'type': 'JsonTextConfiguration', 'xml': {'name': 'JsonTextConfiguration'}}, + } + _xml_map = { + } + + def __init__(self, **kwargs): + super(QueryFormat, self).__init__(**kwargs) + self.type = kwargs.get('type', None) + self.delimited_text_configuration = kwargs.get('delimited_text_configuration', None) + self.json_text_configuration = kwargs.get('json_text_configuration', None) + + class QueryRequest(Model): """the quick query body. @@ -1526,11 +1556,9 @@ class QueryRequest(Model): :param expression: Required. a query statement :type expression: str :param input_serialization: - :type input_serialization: - ~azure.storage.blob.models.QuickQuerySerialization + :type input_serialization: ~azure.storage.blob.models.QuerySerialization :param output_serialization: - :type output_serialization: - ~azure.storage.blob.models.QuickQuerySerialization + :type output_serialization: ~azure.storage.blob.models.QuerySerialization """ _validation = { @@ -1541,8 +1569,8 @@ class QueryRequest(Model): _attribute_map = { 'query_type': {'key': 'QueryType', 'type': 'str', 'xml': {'name': 'QueryType'}}, 'expression': {'key': 'Expression', 'type': 'str', 'xml': {'name': 'Expression'}}, - 'input_serialization': {'key': 'InputSerialization', 'type': 'QuickQuerySerialization', 'xml': {'name': 'InputSerialization'}}, - 'output_serialization': {'key': 'OutputSerialization', 'type': 'QuickQuerySerialization', 'xml': {'name': 'OutputSerialization'}}, + 'input_serialization': {'key': 'InputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'InputSerialization'}}, + 'output_serialization': {'key': 'OutputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'OutputSerialization'}}, } _xml_map = { 'name': 'QueryRequest' @@ -1557,41 +1585,13 @@ def __init__(self, **kwargs): self.output_serialization = kwargs.get('output_serialization', None) -class QuickQueryFormat(Model): - """QuickQueryFormat. - - :param type: Possible values include: 'delimited', 'json' - :type type: str or ~azure.storage.blob.models.QuickQueryFormatType - :param delimited_text_configuration: - :type delimited_text_configuration: - ~azure.storage.blob.models.DelimitedTextConfiguration - :param json_text_configuration: - :type json_text_configuration: - ~azure.storage.blob.models.JsonTextConfiguration - """ - - _attribute_map = { - 'type': {'key': 'Type', 'type': 'QuickQueryFormatType', 'xml': {'name': 'Type'}}, - 'delimited_text_configuration': {'key': 'DelimitedTextConfiguration', 'type': 'DelimitedTextConfiguration', 'xml': {'name': 'DelimitedTextConfiguration'}}, - 'json_text_configuration': {'key': 'JsonTextConfiguration', 'type': 'JsonTextConfiguration', 'xml': {'name': 'JsonTextConfiguration'}}, - } - _xml_map = { - } - - def __init__(self, **kwargs): - super(QuickQueryFormat, self).__init__(**kwargs) - self.type = kwargs.get('type', None) - self.delimited_text_configuration = kwargs.get('delimited_text_configuration', None) - self.json_text_configuration = kwargs.get('json_text_configuration', None) - - -class QuickQuerySerialization(Model): - """QuickQuerySerialization. +class QuerySerialization(Model): + """QuerySerialization. All required parameters must be populated in order to send to Azure. :param format: Required. - :type format: ~azure.storage.blob.models.QuickQueryFormat + :type format: ~azure.storage.blob.models.QueryFormat """ _validation = { @@ -1599,13 +1599,13 @@ class QuickQuerySerialization(Model): } _attribute_map = { - 'format': {'key': 'Format', 'type': 'QuickQueryFormat', 'xml': {'name': 'Format'}}, + 'format': {'key': 'Format', 'type': 'QueryFormat', 'xml': {'name': 'Format'}}, } _xml_map = { } def __init__(self, **kwargs): - super(QuickQuerySerialization, self).__init__(**kwargs) + super(QuerySerialization, self).__init__(**kwargs) self.format = kwargs.get('format', None) @@ -1718,6 +1718,9 @@ class SourceModifiedAccessConditions(Model): :param source_if_none_match: Specify an ETag value to operate only on blobs without a matching value. :type source_if_none_match: str + :param source_if_tags: Specify a SQL where clause on blob tags to operate + only on blobs with a matching value. + :type source_if_tags: str """ _attribute_map = { @@ -1725,6 +1728,7 @@ class SourceModifiedAccessConditions(Model): 'source_if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'source_if_unmodified_since'}}, 'source_if_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_match'}}, 'source_if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_none_match'}}, + 'source_if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_tags'}}, } _xml_map = { } @@ -1735,6 +1739,7 @@ def __init__(self, **kwargs): self.source_if_unmodified_since = kwargs.get('source_if_unmodified_since', None) self.source_if_match = kwargs.get('source_if_match', None) self.source_if_none_match = kwargs.get('source_if_none_match', None) + self.source_if_tags = kwargs.get('source_if_tags', None) class StaticWebsite(Model): diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models_py3.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models_py3.py index 2ce184a8c734..bd6fc85b7b22 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models_py3.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/models/_models_py3.py @@ -191,15 +191,13 @@ class BlobItemInternal(Model): :param is_current_version: :type is_current_version: bool :param properties: Required. - :type properties: ~azure.storage.blob.models.BlobProperties + :type properties: ~azure.storage.blob.models.BlobPropertiesInternal :param metadata: :type metadata: ~azure.storage.blob.models.BlobMetadata :param blob_tags: :type blob_tags: ~azure.storage.blob.models.BlobTags - :param object_replication_policy_id: - :type object_replication_policy_id: str - :param object_replication_rule_status: - :type object_replication_rule_status: dict[str, str] + :param object_replication_metadata: + :type object_replication_metadata: dict[str, str] """ _validation = { @@ -215,17 +213,16 @@ class BlobItemInternal(Model): 'snapshot': {'key': 'Snapshot', 'type': 'str', 'xml': {'name': 'Snapshot'}}, 'version_id': {'key': 'VersionId', 'type': 'str', 'xml': {'name': 'VersionId'}}, 'is_current_version': {'key': 'IsCurrentVersion', 'type': 'bool', 'xml': {'name': 'IsCurrentVersion'}}, - 'properties': {'key': 'Properties', 'type': 'BlobProperties', 'xml': {'name': 'Properties'}}, + 'properties': {'key': 'Properties', 'type': 'BlobPropertiesInternal', 'xml': {'name': 'Properties'}}, 'metadata': {'key': 'Metadata', 'type': 'BlobMetadata', 'xml': {'name': 'Metadata'}}, 'blob_tags': {'key': 'BlobTags', 'type': 'BlobTags', 'xml': {'name': 'BlobTags'}}, - 'object_replication_policy_id': {'key': 'ObjectReplicationPolicyId', 'type': 'str', 'xml': {'name': 'ObjectReplicationPolicyId'}}, - 'object_replication_rule_status': {'key': 'ObjectReplicationRuleStatus', 'type': '{str}', 'xml': {'name': 'ObjectReplicationRuleStatus'}}, + 'object_replication_metadata': {'key': 'ObjectReplicationMetadata', 'type': '{str}', 'xml': {'name': 'ObjectReplicationMetadata'}}, } _xml_map = { 'name': 'Blob' } - def __init__(self, *, name: str, deleted: bool, snapshot: str, properties, version_id: str=None, is_current_version: bool=None, metadata=None, blob_tags=None, object_replication_policy_id: str=None, object_replication_rule_status=None, **kwargs) -> None: + def __init__(self, *, name: str, deleted: bool, snapshot: str, properties, version_id: str=None, is_current_version: bool=None, metadata=None, blob_tags=None, object_replication_metadata=None, **kwargs) -> None: super(BlobItemInternal, self).__init__(**kwargs) self.name = name self.deleted = deleted @@ -235,8 +232,7 @@ def __init__(self, *, name: str, deleted: bool, snapshot: str, properties, versi self.properties = properties self.metadata = metadata self.blob_tags = blob_tags - self.object_replication_policy_id = object_replication_policy_id - self.object_replication_rule_status = object_replication_rule_status + self.object_replication_metadata = object_replication_metadata class BlobMetadata(Model): @@ -287,7 +283,7 @@ def __init__(self, *, name: str, **kwargs) -> None: self.name = name -class BlobProperties(Model): +class BlobPropertiesInternal(Model): """Properties of a blob. All required parameters must be populated in order to send to Azure. @@ -417,7 +413,7 @@ class BlobProperties(Model): } def __init__(self, *, last_modified, etag: str, creation_time=None, content_length: int=None, content_type: str=None, content_encoding: str=None, content_language: str=None, content_md5: bytearray=None, content_disposition: str=None, cache_control: str=None, blob_sequence_number: int=None, blob_type=None, lease_status=None, lease_state=None, lease_duration=None, copy_id: str=None, copy_status=None, copy_source: str=None, copy_progress: str=None, copy_completion_time=None, copy_status_description: str=None, server_encrypted: bool=None, incremental_copy: bool=None, destination_snapshot: str=None, deleted_time=None, remaining_retention_days: int=None, access_tier=None, access_tier_inferred: bool=None, archive_status=None, customer_provided_key_sha256: str=None, encryption_scope: str=None, access_tier_change_time=None, tag_count: int=None, expires_on=None, is_sealed: bool=None, **kwargs) -> None: - super(BlobProperties, self).__init__(**kwargs) + super(BlobPropertiesInternal, self).__init__(**kwargs) self.creation_time = creation_time self.last_modified = last_modified self.etag = etag @@ -874,19 +870,20 @@ def __init__(self, *, encryption_scope: str=None, **kwargs) -> None: class DataLakeStorageError(Model): """DataLakeStorageError. - :param error: The service error response object. - :type error: ~azure.storage.blob.models.DataLakeStorageErrorError + :param data_lake_storage_error_details: The service error response object. + :type data_lake_storage_error_details: + ~azure.storage.blob.models.DataLakeStorageErrorError """ _attribute_map = { - 'error': {'key': 'error', 'type': 'DataLakeStorageErrorError', 'xml': {'name': 'error'}}, + 'data_lake_storage_error_details': {'key': 'error', 'type': 'DataLakeStorageErrorError', 'xml': {'name': 'error'}}, } _xml_map = { } - def __init__(self, *, error=None, **kwargs) -> None: + def __init__(self, *, data_lake_storage_error_details=None, **kwargs) -> None: super(DataLakeStorageError, self).__init__(**kwargs) - self.error = error + self.data_lake_storage_error_details = data_lake_storage_error_details class DataLakeStorageErrorException(HttpResponseError): @@ -1442,6 +1439,9 @@ class ModifiedAccessConditions(Model): :param if_none_match: Specify an ETag value to operate only on blobs without a matching value. :type if_none_match: str + :param if_tags: Specify a SQL where clause on blob tags to operate only on + blobs with a matching value. + :type if_tags: str """ _attribute_map = { @@ -1449,16 +1449,18 @@ class ModifiedAccessConditions(Model): 'if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'if_unmodified_since'}}, 'if_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_match'}}, 'if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'if_none_match'}}, + 'if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'if_tags'}}, } _xml_map = { } - def __init__(self, *, if_modified_since=None, if_unmodified_since=None, if_match: str=None, if_none_match: str=None, **kwargs) -> None: + def __init__(self, *, if_modified_since=None, if_unmodified_since=None, if_match: str=None, if_none_match: str=None, if_tags: str=None, **kwargs) -> None: super(ModifiedAccessConditions, self).__init__(**kwargs) self.if_modified_since = if_modified_since self.if_unmodified_since = if_unmodified_since self.if_match = if_match self.if_none_match = if_none_match + self.if_tags = if_tags class PageList(Model): @@ -1513,6 +1515,34 @@ def __init__(self, *, start: int, end: int, **kwargs) -> None: self.end = end +class QueryFormat(Model): + """QueryFormat. + + :param type: Possible values include: 'delimited', 'json' + :type type: str or ~azure.storage.blob.models.QueryFormatType + :param delimited_text_configuration: + :type delimited_text_configuration: + ~azure.storage.blob.models.DelimitedTextConfiguration + :param json_text_configuration: + :type json_text_configuration: + ~azure.storage.blob.models.JsonTextConfiguration + """ + + _attribute_map = { + 'type': {'key': 'Type', 'type': 'QueryFormatType', 'xml': {'name': 'Type'}}, + 'delimited_text_configuration': {'key': 'DelimitedTextConfiguration', 'type': 'DelimitedTextConfiguration', 'xml': {'name': 'DelimitedTextConfiguration'}}, + 'json_text_configuration': {'key': 'JsonTextConfiguration', 'type': 'JsonTextConfiguration', 'xml': {'name': 'JsonTextConfiguration'}}, + } + _xml_map = { + } + + def __init__(self, *, type=None, delimited_text_configuration=None, json_text_configuration=None, **kwargs) -> None: + super(QueryFormat, self).__init__(**kwargs) + self.type = type + self.delimited_text_configuration = delimited_text_configuration + self.json_text_configuration = json_text_configuration + + class QueryRequest(Model): """the quick query body. @@ -1526,11 +1556,9 @@ class QueryRequest(Model): :param expression: Required. a query statement :type expression: str :param input_serialization: - :type input_serialization: - ~azure.storage.blob.models.QuickQuerySerialization + :type input_serialization: ~azure.storage.blob.models.QuerySerialization :param output_serialization: - :type output_serialization: - ~azure.storage.blob.models.QuickQuerySerialization + :type output_serialization: ~azure.storage.blob.models.QuerySerialization """ _validation = { @@ -1541,8 +1569,8 @@ class QueryRequest(Model): _attribute_map = { 'query_type': {'key': 'QueryType', 'type': 'str', 'xml': {'name': 'QueryType'}}, 'expression': {'key': 'Expression', 'type': 'str', 'xml': {'name': 'Expression'}}, - 'input_serialization': {'key': 'InputSerialization', 'type': 'QuickQuerySerialization', 'xml': {'name': 'InputSerialization'}}, - 'output_serialization': {'key': 'OutputSerialization', 'type': 'QuickQuerySerialization', 'xml': {'name': 'OutputSerialization'}}, + 'input_serialization': {'key': 'InputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'InputSerialization'}}, + 'output_serialization': {'key': 'OutputSerialization', 'type': 'QuerySerialization', 'xml': {'name': 'OutputSerialization'}}, } _xml_map = { 'name': 'QueryRequest' @@ -1557,41 +1585,13 @@ def __init__(self, *, expression: str, input_serialization=None, output_serializ self.output_serialization = output_serialization -class QuickQueryFormat(Model): - """QuickQueryFormat. - - :param type: Possible values include: 'delimited', 'json' - :type type: str or ~azure.storage.blob.models.QuickQueryFormatType - :param delimited_text_configuration: - :type delimited_text_configuration: - ~azure.storage.blob.models.DelimitedTextConfiguration - :param json_text_configuration: - :type json_text_configuration: - ~azure.storage.blob.models.JsonTextConfiguration - """ - - _attribute_map = { - 'type': {'key': 'Type', 'type': 'QuickQueryFormatType', 'xml': {'name': 'Type'}}, - 'delimited_text_configuration': {'key': 'DelimitedTextConfiguration', 'type': 'DelimitedTextConfiguration', 'xml': {'name': 'DelimitedTextConfiguration'}}, - 'json_text_configuration': {'key': 'JsonTextConfiguration', 'type': 'JsonTextConfiguration', 'xml': {'name': 'JsonTextConfiguration'}}, - } - _xml_map = { - } - - def __init__(self, *, type=None, delimited_text_configuration=None, json_text_configuration=None, **kwargs) -> None: - super(QuickQueryFormat, self).__init__(**kwargs) - self.type = type - self.delimited_text_configuration = delimited_text_configuration - self.json_text_configuration = json_text_configuration - - -class QuickQuerySerialization(Model): - """QuickQuerySerialization. +class QuerySerialization(Model): + """QuerySerialization. All required parameters must be populated in order to send to Azure. :param format: Required. - :type format: ~azure.storage.blob.models.QuickQueryFormat + :type format: ~azure.storage.blob.models.QueryFormat """ _validation = { @@ -1599,13 +1599,13 @@ class QuickQuerySerialization(Model): } _attribute_map = { - 'format': {'key': 'Format', 'type': 'QuickQueryFormat', 'xml': {'name': 'Format'}}, + 'format': {'key': 'Format', 'type': 'QueryFormat', 'xml': {'name': 'Format'}}, } _xml_map = { } def __init__(self, *, format, **kwargs) -> None: - super(QuickQuerySerialization, self).__init__(**kwargs) + super(QuerySerialization, self).__init__(**kwargs) self.format = format @@ -1718,6 +1718,9 @@ class SourceModifiedAccessConditions(Model): :param source_if_none_match: Specify an ETag value to operate only on blobs without a matching value. :type source_if_none_match: str + :param source_if_tags: Specify a SQL where clause on blob tags to operate + only on blobs with a matching value. + :type source_if_tags: str """ _attribute_map = { @@ -1725,16 +1728,18 @@ class SourceModifiedAccessConditions(Model): 'source_if_unmodified_since': {'key': '', 'type': 'rfc-1123', 'xml': {'name': 'source_if_unmodified_since'}}, 'source_if_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_match'}}, 'source_if_none_match': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_none_match'}}, + 'source_if_tags': {'key': '', 'type': 'str', 'xml': {'name': 'source_if_tags'}}, } _xml_map = { } - def __init__(self, *, source_if_modified_since=None, source_if_unmodified_since=None, source_if_match: str=None, source_if_none_match: str=None, **kwargs) -> None: + def __init__(self, *, source_if_modified_since=None, source_if_unmodified_since=None, source_if_match: str=None, source_if_none_match: str=None, source_if_tags: str=None, **kwargs) -> None: super(SourceModifiedAccessConditions, self).__init__(**kwargs) self.source_if_modified_since = source_if_modified_since self.source_if_unmodified_since = source_if_unmodified_since self.source_if_match = source_if_match self.source_if_none_match = source_if_none_match + self.source_if_tags = source_if_tags class StaticWebsite(Model): diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_append_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_append_blob_operations.py index d30cedda2fb9..000810acffe1 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_append_blob_operations.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_append_blob_operations.py @@ -131,6 +131,9 @@ def create(self, content_length, timeout=None, metadata=None, request_id=None, b if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.create.metadata['url'] @@ -185,6 +188,8 @@ def create(self, content_length, timeout=None, metadata=None, request_id=None, b header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -295,6 +300,9 @@ def append_block(self, body, content_length, timeout=None, transactional_content if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "appendblock" @@ -344,6 +352,8 @@ def append_block(self, body, content_length, timeout=None, transactional_content header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct body @@ -468,6 +478,9 @@ def append_block_from_url(self, source_url, content_length, source_range=None, s if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags source_if_modified_since = None if source_modified_access_conditions is not None: source_if_modified_since = source_modified_access_conditions.source_if_modified_since @@ -533,6 +546,8 @@ def append_block_from_url(self, source_url, content_length, source_range=None, s header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') if source_if_modified_since is not None: header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') if source_if_unmodified_since is not None: diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_blob_operations.py index 179dbec13e67..e956bcc25e84 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_blob_operations.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_blob_operations.py @@ -118,6 +118,9 @@ def download(self, snapshot=None, version_id=None, timeout=None, range=None, ran if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.download.metadata['url'] @@ -163,6 +166,8 @@ def download(self, snapshot=None, version_id=None, timeout=None, range=None, ran header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.get(url, query_parameters, header_parameters) @@ -334,6 +339,9 @@ def get_properties(self, snapshot=None, version_id=None, timeout=None, request_i if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.get_properties.metadata['url'] @@ -372,6 +380,8 @@ def get_properties(self, snapshot=None, version_id=None, timeout=None, request_i header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.head(url, query_parameters, header_parameters) @@ -507,6 +517,9 @@ def delete(self, snapshot=None, version_id=None, timeout=None, delete_snapshots= if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.delete.metadata['url'] @@ -541,6 +554,8 @@ def delete(self, snapshot=None, version_id=None, timeout=None, delete_snapshots= header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.delete(url, query_parameters, header_parameters) @@ -838,8 +853,7 @@ def rename(self, rename_source, timeout=None, path_rename_mode=None, directory_p default umask - 0027 will be used. :type posix_umask: str :param source_lease_id: A lease ID for the source path. If specified, - the source path must have an active lease and the leaase ID must - match. + the source path must have an active lease and the lease ID must match. :type source_lease_id: str :param request_id: Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage @@ -1187,6 +1201,9 @@ def set_http_headers(self, timeout=None, request_id=None, blob_http_headers=None if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "properties" @@ -1230,6 +1247,8 @@ def set_http_headers(self, timeout=None, request_id=None, blob_http_headers=None header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1324,6 +1343,9 @@ def set_metadata(self, timeout=None, metadata=None, request_id=None, lease_acces if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "metadata" @@ -1365,6 +1387,8 @@ def set_metadata(self, timeout=None, metadata=None, request_id=None, lease_acces header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1439,6 +1463,9 @@ def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=None, req if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "lease" action = "acquire" @@ -1474,6 +1501,8 @@ def acquire_lease(self, timeout=None, duration=None, proposed_lease_id=None, req header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1537,6 +1566,9 @@ def release_lease(self, lease_id, timeout=None, request_id=None, modified_access if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "lease" action = "release" @@ -1569,6 +1601,8 @@ def release_lease(self, lease_id, timeout=None, request_id=None, modified_access header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1631,6 +1665,9 @@ def renew_lease(self, lease_id, timeout=None, request_id=None, modified_access_c if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "lease" action = "renew" @@ -1663,6 +1700,8 @@ def renew_lease(self, lease_id, timeout=None, request_id=None, modified_access_c header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1731,6 +1770,9 @@ def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_id=Non if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "lease" action = "change" @@ -1764,6 +1806,8 @@ def change_lease(self, lease_id, proposed_lease_id, timeout=None, request_id=Non header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1835,6 +1879,9 @@ def break_lease(self, timeout=None, break_period=None, request_id=None, modified if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "lease" action = "break" @@ -1868,6 +1915,8 @@ def break_lease(self, timeout=None, break_period=None, request_id=None, modified header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -1958,6 +2007,9 @@ def create_snapshot(self, timeout=None, metadata=None, request_id=None, cpk_info if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags lease_id = None if lease_access_conditions is not None: lease_id = lease_access_conditions.lease_id @@ -2000,6 +2052,8 @@ def create_snapshot(self, timeout=None, metadata=None, request_id=None, cpk_info header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') if lease_id is not None: header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') @@ -2104,6 +2158,9 @@ def start_copy_from_url(self, copy_source, timeout=None, metadata=None, tier=Non source_if_none_match = None if source_modified_access_conditions is not None: source_if_none_match = source_modified_access_conditions.source_if_none_match + source_if_tags = None + if source_modified_access_conditions is not None: + source_if_tags = source_modified_access_conditions.source_if_tags if_modified_since = None if modified_access_conditions is not None: if_modified_since = modified_access_conditions.if_modified_since @@ -2116,6 +2173,9 @@ def start_copy_from_url(self, copy_source, timeout=None, metadata=None, tier=Non if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags lease_id = None if lease_access_conditions is not None: lease_id = lease_access_conditions.lease_id @@ -2156,6 +2216,8 @@ def start_copy_from_url(self, copy_source, timeout=None, metadata=None, tier=Non header_parameters['x-ms-source-if-match'] = self._serialize.header("source_if_match", source_if_match, 'str') if source_if_none_match is not None: header_parameters['x-ms-source-if-none-match'] = self._serialize.header("source_if_none_match", source_if_none_match, 'str') + if source_if_tags is not None: + header_parameters['x-ms-source-if-tags'] = self._serialize.header("source_if_tags", source_if_tags, 'str') if if_modified_since is not None: header_parameters['If-Modified-Since'] = self._serialize.header("if_modified_since", if_modified_since, 'rfc-1123') if if_unmodified_since is not None: @@ -2164,6 +2226,8 @@ def start_copy_from_url(self, copy_source, timeout=None, metadata=None, tier=Non header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') if lease_id is not None: header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') @@ -2278,6 +2342,9 @@ def copy_from_url(self, copy_source, timeout=None, metadata=None, tier=None, req if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags lease_id = None if lease_access_conditions is not None: lease_id = lease_access_conditions.lease_id @@ -2327,6 +2394,8 @@ def copy_from_url(self, copy_source, timeout=None, metadata=None, tier=None, req header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') if lease_id is not None: header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') @@ -2587,9 +2656,9 @@ def get_account_info(self, cls=None, **kwargs): return cls(response, None, response_headers) get_account_info.metadata = {'url': '/{containerName}/{blob}'} - def quick_query(self, query_request=None, snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, cls=None, **kwargs): - """The QuickQuery operation enables users to select/project on blob data - by providing simple query expressions. + def query(self, query_request=None, snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, cpk_info=None, modified_access_conditions=None, cls=None, **kwargs): + """The Query operation enables users to select/project on blob data by + providing simple query expressions. :param query_request: the query request :type query_request: ~azure.storage.blob.models.QueryRequest @@ -2654,7 +2723,7 @@ def quick_query(self, query_request=None, snapshot=None, timeout=None, request_i comp = "query" # Construct URL - url = self.quick_query.metadata['url'] + url = self.query.metadata['url'] path_format_arguments = { 'url': self._serialize.url("self._config.url", self._config.url, 'str', skip_quote=True) } @@ -2790,9 +2859,9 @@ def quick_query(self, query_request=None, snapshot=None, timeout=None, request_i return cls(response, deserialized, header_dict) return deserialized - quick_query.metadata = {'url': '/{containerName}/{blob}'} + query.metadata = {'url': '/{containerName}/{blob}'} - def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None, cls=None, **kwargs): + def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None, modified_access_conditions=None, cls=None, **kwargs): """The Get Tags operation enables users to get the tags associated with a blob. @@ -2815,6 +2884,10 @@ def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer. :type version_id: str + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions :param callable cls: A custom type or function that will be passed the direct response :return: BlobTags or the result of cls(response) @@ -2823,6 +2896,10 @@ def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None :class:`StorageErrorException` """ error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + comp = "tags" # Construct URL @@ -2848,6 +2925,8 @@ def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None header_parameters['x-ms-version'] = self._serialize.header("self._config.version", self._config.version, 'str') if request_id is not None: header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.get(url, query_parameters, header_parameters) @@ -2876,7 +2955,7 @@ def get_tags(self, timeout=None, request_id=None, snapshot=None, version_id=None return deserialized get_tags.metadata = {'url': '/{containerName}/{blob}'} - def set_tags(self, timeout=None, snapshot=None, version_id=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, tags=None, cls=None, **kwargs): + def set_tags(self, timeout=None, version_id=None, transactional_content_md5=None, transactional_content_crc64=None, request_id=None, tags=None, modified_access_conditions=None, cls=None, **kwargs): """The Set Tags operation enables users to set tags on a blob. :param timeout: The timeout parameter is expressed in seconds. For @@ -2884,12 +2963,6 @@ def set_tags(self, timeout=None, snapshot=None, version_id=None, transactional_c href="https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations">Setting Timeouts for Blob Service Operations. :type timeout: int - :param snapshot: The snapshot parameter is an opaque DateTime value - that, when present, specifies the blob snapshot to retrieve. For more - information on working with blob snapshots, see Creating - a Snapshot of a Blob. - :type snapshot: str :param version_id: The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer. @@ -2906,6 +2979,10 @@ def set_tags(self, timeout=None, snapshot=None, version_id=None, transactional_c :type request_id: str :param tags: Blob tags :type tags: ~azure.storage.blob.models.BlobTags + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions :param callable cls: A custom type or function that will be passed the direct response :return: None or the result of cls(response) @@ -2914,6 +2991,10 @@ def set_tags(self, timeout=None, snapshot=None, version_id=None, transactional_c :class:`StorageErrorException` """ error_map = kwargs.pop('error_map', None) + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags + comp = "tags" # Construct URL @@ -2927,8 +3008,6 @@ def set_tags(self, timeout=None, snapshot=None, version_id=None, transactional_c query_parameters = {} if timeout is not None: query_parameters['timeout'] = self._serialize.query("timeout", timeout, 'int', minimum=0) - if snapshot is not None: - query_parameters['snapshot'] = self._serialize.query("snapshot", snapshot, 'str') if version_id is not None: query_parameters['versionid'] = self._serialize.query("version_id", version_id, 'str') query_parameters['comp'] = self._serialize.query("comp", comp, 'str') @@ -2943,6 +3022,8 @@ def set_tags(self, timeout=None, snapshot=None, version_id=None, transactional_c header_parameters['x-ms-content-crc64'] = self._serialize.header("transactional_content_crc64", transactional_content_crc64, 'bytearray') if request_id is not None: header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct body if tags is not None: diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_block_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_block_blob_operations.py index 022b2a5cce17..8228c4782b6b 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_block_blob_operations.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_block_blob_operations.py @@ -145,6 +145,9 @@ def upload(self, body, content_length, timeout=None, transactional_content_md5=N if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.upload.metadata['url'] @@ -204,6 +207,8 @@ def upload(self, body, content_length, timeout=None, transactional_content_md5=N header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct body @@ -622,6 +627,9 @@ def commit_block_list(self, blocks, timeout=None, transactional_content_md5=None if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "blocklist" @@ -684,6 +692,8 @@ def commit_block_list(self, blocks, timeout=None, transactional_content_md5=None header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct body body_content = self._serialize.body(blocks, 'BlockLookupList') @@ -716,7 +726,7 @@ def commit_block_list(self, blocks, timeout=None, transactional_content_md5=None return cls(response, None, response_headers) commit_block_list.metadata = {'url': '/{containerName}/{blob}'} - def get_block_list(self, list_type="committed", snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, cls=None, **kwargs): + def get_block_list(self, list_type="committed", snapshot=None, timeout=None, request_id=None, lease_access_conditions=None, modified_access_conditions=None, cls=None, **kwargs): """The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob. @@ -743,6 +753,10 @@ def get_block_list(self, list_type="committed", snapshot=None, timeout=None, req operation :type lease_access_conditions: ~azure.storage.blob.models.LeaseAccessConditions + :param modified_access_conditions: Additional parameters for the + operation + :type modified_access_conditions: + ~azure.storage.blob.models.ModifiedAccessConditions :param callable cls: A custom type or function that will be passed the direct response :return: BlockList or the result of cls(response) @@ -754,6 +768,9 @@ def get_block_list(self, list_type="committed", snapshot=None, timeout=None, req lease_id = None if lease_access_conditions is not None: lease_id = lease_access_conditions.lease_id + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "blocklist" @@ -781,6 +798,8 @@ def get_block_list(self, list_type="committed", snapshot=None, timeout=None, req header_parameters['x-ms-client-request-id'] = self._serialize.header("request_id", request_id, 'str') if lease_id is not None: header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.get(url, query_parameters, header_parameters) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_directory_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_directory_operations.py index bfaf63388ec0..c2bf3178b972 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_directory_operations.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_directory_operations.py @@ -246,8 +246,7 @@ def rename(self, rename_source, timeout=None, marker=None, path_rename_mode=None default umask - 0027 will be used. :type posix_umask: str :param source_lease_id: A lease ID for the source path. If specified, - the source path must have an active lease and the leaase ID must - match. + the source path must have an active lease and the lease ID must match. :type source_lease_id: str :param request_id: Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_page_blob_operations.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_page_blob_operations.py index 7c9ec9dc904c..a65ab4c92fbb 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_page_blob_operations.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/operations/_page_blob_operations.py @@ -144,6 +144,9 @@ def create(self, content_length, blob_content_length, timeout=None, tier=None, m if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags # Construct URL url = self.create.metadata['url'] @@ -203,6 +206,8 @@ def create(self, content_length, blob_content_length, timeout=None, tier=None, m header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.put(url, query_parameters, header_parameters) @@ -316,6 +321,9 @@ def upload_pages(self, body, content_length, transactional_content_md5=None, tra if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "page" page_write = "update" @@ -371,6 +379,8 @@ def upload_pages(self, body, content_length, transactional_content_md5=None, tra header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct body @@ -649,6 +659,9 @@ def upload_pages_from_url(self, source_url, source_range, content_length, range, if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags source_if_modified_since = None if source_modified_access_conditions is not None: source_if_modified_since = source_modified_access_conditions.source_if_modified_since @@ -716,6 +729,8 @@ def upload_pages_from_url(self, source_url, source_range, content_length, range, header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') if source_if_modified_since is not None: header_parameters['x-ms-source-if-modified-since'] = self._serialize.header("source_if_modified_since", source_if_modified_since, 'rfc-1123') if source_if_unmodified_since is not None: @@ -805,6 +820,9 @@ def get_page_ranges(self, snapshot=None, timeout=None, range=None, request_id=No if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "pagelist" @@ -841,6 +859,8 @@ def get_page_ranges(self, snapshot=None, timeout=None, range=None, request_id=No header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.get(url, query_parameters, header_parameters) @@ -941,6 +961,9 @@ def get_page_ranges_diff(self, snapshot=None, timeout=None, prevsnapshot=None, p if_none_match = None if modified_access_conditions is not None: if_none_match = modified_access_conditions.if_none_match + if_tags = None + if modified_access_conditions is not None: + if_tags = modified_access_conditions.if_tags comp = "pagelist" @@ -981,6 +1004,8 @@ def get_page_ranges_diff(self, snapshot=None, timeout=None, prevsnapshot=None, p header_parameters['If-Match'] = self._serialize.header("if_match", if_match, 'str') if if_none_match is not None: header_parameters['If-None-Match'] = self._serialize.header("if_none_match", if_none_match, 'str') + if if_tags is not None: + header_parameters['x-ms-if-tags'] = self._serialize.header("if_tags", if_tags, 'str') # Construct and send request request = self._client.get(url, query_parameters, header_parameters) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/version.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/version.py index 0b20a9ed22a5..be045899fa00 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/version.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_generated/version.py @@ -9,5 +9,5 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "2019-10-10" +VERSION = "2019-12-12" diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py index 250f714c2efe..bdb4e1218ebc 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_quick_query_helper.py @@ -68,7 +68,7 @@ def readinto(self, stream): or any writable stream. :returns: None """ - headers, raw_response_body = self._client.blob.quick_query(**self._request_options) + headers, raw_response_body = self._client.blob.query(**self._request_options) self.response_headers = headers self._parse_quick_query_result(raw_response_body, stream, progress_callback=self._progress_callback) diff --git a/sdk/storage/azure-storage-blob/azure/storage/blob/_serialize.py b/sdk/storage/azure-storage-blob/azure/storage/blob/_serialize.py index eb4b6f41d16a..02ba437452dc 100644 --- a/sdk/storage/azure-storage-blob/azure/storage/blob/_serialize.py +++ b/sdk/storage/azure-storage-blob/azure/storage/blob/_serialize.py @@ -17,11 +17,11 @@ SourceModifiedAccessConditions, CpkScopeInfo, ContainerCpkScopeInfo, - QuickQueryFormat, - QuickQuerySerialization, + QueryFormat, + QuerySerialization, DelimitedTextConfiguration, JsonTextConfiguration, - QuickQueryFormatType, + QueryFormatType, BlobTag, BlobTags ) @@ -119,16 +119,16 @@ def get_api_version(kwargs, default): def get_quick_query_serialization_info(serialization_settings=None): if serialization_settings: if isinstance(serialization_settings, DelimitedTextConfiguration): - qq_format = QuickQueryFormat(type=QuickQueryFormatType.delimited, - delimited_text_configuration=serialization_settings) + qq_format = QueryFormat(type=QueryFormatType.delimited, + delimited_text_configuration=serialization_settings) elif isinstance(serialization_settings, str): - qq_format = QuickQueryFormat(type=QuickQueryFormatType.json, - json_text_configuration=JsonTextConfiguration( - record_separator=serialization_settings)) + qq_format = QueryFormat(type=QueryFormatType.json, + json_text_configuration=JsonTextConfiguration( + record_separator=serialization_settings)) else: raise ValueError("the class type of serialization settings should be either DelimitedTextConfiguration" "or JsonTextConfiguration") - return QuickQuerySerialization(format=qq_format) + return QuerySerialization(format=qq_format) return None