< Summary

Class:Azure.Storage.Blobs.Models.BlobSignedIdentifier
Assembly:Azure.Storage.Blobs
File(s):C:\Git\azure-sdk-for-net\sdk\storage\Azure.Storage.Blobs\src\Generated\BlobRestClient.cs
Covered lines:22
Uncovered lines:0
Coverable lines:22
Total lines:22932
Line coverage:100% (22 of 22)
Covered branches:6
Total branches:6
Branch coverage:100% (6 of 6)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
get_Id()-100%100%
get_AccessPolicy()-100%100%
.ctor()-100%100%
.ctor(...)-100%100%
ToXml(...)-100%100%
FromXml(...)-100%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\storage\Azure.Storage.Blobs\src\Generated\BlobRestClient.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4// This file was automatically generated.  Do not edit.
 5
 6#pragma warning disable IDE0016 // Null check can be simplified
 7#pragma warning disable IDE0017 // Variable declaration can be inlined
 8#pragma warning disable IDE0018 // Object initialization can be simplified
 9#pragma warning disable SA1402  // File may only contain a single type
 10
 11#region Service
 12namespace Azure.Storage.Blobs
 13{
 14    /// <summary>
 15    /// Azure Blob Storage
 16    /// </summary>
 17    internal static partial class BlobRestClient
 18    {
 19        #region Service operations
 20        /// <summary>
 21        /// Service operations for Azure Blob Storage
 22        /// </summary>
 23        public static partial class Service
 24        {
 25            #region Service.SetPropertiesAsync
 26            /// <summary>
 27            /// Sets properties for a storage account's Blob service endpoint, including properties for Storage Analytic
 28            /// </summary>
 29            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 30            /// <param name="pipeline">The pipeline used for sending requests.</param>
 31            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 32            /// <param name="blobServiceProperties">The StorageService properties.</param>
 33            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 34            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 35            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 36            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 37            /// <param name="operationName">Operation name.</param>
 38            /// <param name="cancellationToken">Cancellation token.</param>
 39            /// <returns>Azure.Response</returns>
 40            public static async System.Threading.Tasks.ValueTask<Azure.Response> SetPropertiesAsync(
 41                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 42                Azure.Core.Pipeline.HttpPipeline pipeline,
 43                System.Uri resourceUri,
 44                Azure.Storage.Blobs.Models.BlobServiceProperties blobServiceProperties,
 45                string version,
 46                int? timeout = default,
 47                string requestId = default,
 48                bool async = true,
 49                string operationName = "ServiceClient.SetProperties",
 50                System.Threading.CancellationToken cancellationToken = default)
 51            {
 52                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 53                try
 54                {
 55                    _scope.AddAttribute("url", resourceUri);
 56                    _scope.Start();
 57                    using (Azure.Core.HttpMessage _message = SetPropertiesAsync_CreateMessage(
 58                        pipeline,
 59                        resourceUri,
 60                        blobServiceProperties,
 61                        version,
 62                        timeout,
 63                        requestId))
 64                    {
 65                        if (async)
 66                        {
 67                            // Send the request asynchronously if we're being called via an async path
 68                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 69                        }
 70                        else
 71                        {
 72                            // Send the request synchronously through the API that blocks if we're being called via a sy
 73                            // (this is safe because the Task will complete before the user can call Wait)
 74                            pipeline.Send(_message, cancellationToken);
 75                        }
 76                        Azure.Response _response = _message.Response;
 77                        cancellationToken.ThrowIfCancellationRequested();
 78                        return SetPropertiesAsync_CreateResponse(clientDiagnostics, _response);
 79                    }
 80                }
 81                catch (System.Exception ex)
 82                {
 83                    _scope.Failed(ex);
 84                    throw;
 85                }
 86                finally
 87                {
 88                    _scope.Dispose();
 89                }
 90            }
 91
 92            /// <summary>
 93            /// Create the Service.SetPropertiesAsync request.
 94            /// </summary>
 95            /// <param name="pipeline">The pipeline used for sending requests.</param>
 96            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 97            /// <param name="blobServiceProperties">The StorageService properties.</param>
 98            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 99            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 100            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 101            /// <returns>The Service.SetPropertiesAsync Message.</returns>
 102            internal static Azure.Core.HttpMessage SetPropertiesAsync_CreateMessage(
 103                Azure.Core.Pipeline.HttpPipeline pipeline,
 104                System.Uri resourceUri,
 105                Azure.Storage.Blobs.Models.BlobServiceProperties blobServiceProperties,
 106                string version,
 107                int? timeout = default,
 108                string requestId = default)
 109            {
 110                // Validation
 111                if (resourceUri == null)
 112                {
 113                    throw new System.ArgumentNullException(nameof(resourceUri));
 114                }
 115                if (blobServiceProperties == null)
 116                {
 117                    throw new System.ArgumentNullException(nameof(blobServiceProperties));
 118                }
 119                if (version == null)
 120                {
 121                    throw new System.ArgumentNullException(nameof(version));
 122                }
 123
 124                // Create the request
 125                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 126                Azure.Core.Request _request = _message.Request;
 127
 128                // Set the endpoint
 129                _request.Method = Azure.Core.RequestMethod.Put;
 130                _request.Uri.Reset(resourceUri);
 131                _request.Uri.AppendQuery("restype", "service", escapeValue: false);
 132                _request.Uri.AppendQuery("comp", "properties", escapeValue: false);
 133                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 134
 135                // Add request headers
 136                _request.Headers.SetValue("x-ms-version", version);
 137                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 138
 139                // Create the body
 140                System.Xml.Linq.XElement _body = Azure.Storage.Blobs.Models.BlobServiceProperties.ToXml(blobServicePrope
 141                string _text = _body.ToString(System.Xml.Linq.SaveOptions.DisableFormatting);
 142                _request.Headers.SetValue("Content-Type", "application/xml");
 143                _request.Headers.SetValue("Content-Length", _text.Length.ToString(System.Globalization.CultureInfo.Invar
 144                _request.Content = Azure.Core.RequestContent.Create(System.Text.Encoding.UTF8.GetBytes(_text));
 145
 146                return _message;
 147            }
 148
 149            /// <summary>
 150            /// Create the Service.SetPropertiesAsync response or throw a failure exception.
 151            /// </summary>
 152            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 153            /// <param name="response">The raw Response.</param>
 154            /// <returns>The Service.SetPropertiesAsync Azure.Response.</returns>
 155            internal static Azure.Response SetPropertiesAsync_CreateResponse(
 156                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 157                Azure.Response response)
 158            {
 159                // Process the response
 160                switch (response.Status)
 161                {
 162                    case 202:
 163                    {
 164                        return response;
 165                    }
 166                    default:
 167                    {
 168                        // Create the result
 169                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 170                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 171
 172                        throw _value.CreateException(clientDiagnostics, response);
 173                    }
 174                }
 175            }
 176            #endregion Service.SetPropertiesAsync
 177
 178            #region Service.GetPropertiesAsync
 179            /// <summary>
 180            /// gets the properties of a storage account's Blob service, including properties for Storage Analytics and 
 181            /// </summary>
 182            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 183            /// <param name="pipeline">The pipeline used for sending requests.</param>
 184            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 185            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 186            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 187            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 188            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 189            /// <param name="operationName">Operation name.</param>
 190            /// <param name="cancellationToken">Cancellation token.</param>
 191            /// <returns>Storage Service Properties.</returns>
 192            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobServicePr
 193                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 194                Azure.Core.Pipeline.HttpPipeline pipeline,
 195                System.Uri resourceUri,
 196                string version,
 197                int? timeout = default,
 198                string requestId = default,
 199                bool async = true,
 200                string operationName = "ServiceClient.GetProperties",
 201                System.Threading.CancellationToken cancellationToken = default)
 202            {
 203                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 204                try
 205                {
 206                    _scope.AddAttribute("url", resourceUri);
 207                    _scope.Start();
 208                    using (Azure.Core.HttpMessage _message = GetPropertiesAsync_CreateMessage(
 209                        pipeline,
 210                        resourceUri,
 211                        version,
 212                        timeout,
 213                        requestId))
 214                    {
 215                        if (async)
 216                        {
 217                            // Send the request asynchronously if we're being called via an async path
 218                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 219                        }
 220                        else
 221                        {
 222                            // Send the request synchronously through the API that blocks if we're being called via a sy
 223                            // (this is safe because the Task will complete before the user can call Wait)
 224                            pipeline.Send(_message, cancellationToken);
 225                        }
 226                        Azure.Response _response = _message.Response;
 227                        cancellationToken.ThrowIfCancellationRequested();
 228                        return GetPropertiesAsync_CreateResponse(clientDiagnostics, _response);
 229                    }
 230                }
 231                catch (System.Exception ex)
 232                {
 233                    _scope.Failed(ex);
 234                    throw;
 235                }
 236                finally
 237                {
 238                    _scope.Dispose();
 239                }
 240            }
 241
 242            /// <summary>
 243            /// Create the Service.GetPropertiesAsync request.
 244            /// </summary>
 245            /// <param name="pipeline">The pipeline used for sending requests.</param>
 246            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 247            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 248            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 249            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 250            /// <returns>The Service.GetPropertiesAsync Message.</returns>
 251            internal static Azure.Core.HttpMessage GetPropertiesAsync_CreateMessage(
 252                Azure.Core.Pipeline.HttpPipeline pipeline,
 253                System.Uri resourceUri,
 254                string version,
 255                int? timeout = default,
 256                string requestId = default)
 257            {
 258                // Validation
 259                if (resourceUri == null)
 260                {
 261                    throw new System.ArgumentNullException(nameof(resourceUri));
 262                }
 263                if (version == null)
 264                {
 265                    throw new System.ArgumentNullException(nameof(version));
 266                }
 267
 268                // Create the request
 269                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 270                Azure.Core.Request _request = _message.Request;
 271
 272                // Set the endpoint
 273                _request.Method = Azure.Core.RequestMethod.Get;
 274                _request.Uri.Reset(resourceUri);
 275                _request.Uri.AppendQuery("restype", "service", escapeValue: false);
 276                _request.Uri.AppendQuery("comp", "properties", escapeValue: false);
 277                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 278
 279                // Add request headers
 280                _request.Headers.SetValue("x-ms-version", version);
 281                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 282
 283                return _message;
 284            }
 285
 286            /// <summary>
 287            /// Create the Service.GetPropertiesAsync response or throw a failure exception.
 288            /// </summary>
 289            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 290            /// <param name="response">The raw Response.</param>
 291            /// <returns>The Service.GetPropertiesAsync Azure.Response{Azure.Storage.Blobs.Models.BlobServiceProperties}
 292            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobServiceProperties> GetPropertiesAsync_CreateRe
 293                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 294                Azure.Response response)
 295            {
 296                // Process the response
 297                switch (response.Status)
 298                {
 299                    case 200:
 300                    {
 301                        // Create the result
 302                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 303                        Azure.Storage.Blobs.Models.BlobServiceProperties _value = Azure.Storage.Blobs.Models.BlobService
 304
 305                        // Create the response
 306                        return Response.FromValue(_value, response);
 307                    }
 308                    case 304:
 309                    {
 310                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.BlobServiceProperties>(response);
 311                    }
 312                    default:
 313                    {
 314                        // Create the result
 315                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 316                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 317
 318                        throw _value.CreateException(clientDiagnostics, response);
 319                    }
 320                }
 321            }
 322            #endregion Service.GetPropertiesAsync
 323
 324            #region Service.GetStatisticsAsync
 325            /// <summary>
 326            /// Retrieves statistics related to replication for the Blob service. It is only available on the secondary 
 327            /// </summary>
 328            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 329            /// <param name="pipeline">The pipeline used for sending requests.</param>
 330            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 331            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 332            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 333            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 334            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 335            /// <param name="operationName">Operation name.</param>
 336            /// <param name="cancellationToken">Cancellation token.</param>
 337            /// <returns>Statistics for the storage service.</returns>
 338            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobServiceSt
 339                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 340                Azure.Core.Pipeline.HttpPipeline pipeline,
 341                System.Uri resourceUri,
 342                string version,
 343                int? timeout = default,
 344                string requestId = default,
 345                bool async = true,
 346                string operationName = "ServiceClient.GetStatistics",
 347                System.Threading.CancellationToken cancellationToken = default)
 348            {
 349                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 350                try
 351                {
 352                    _scope.AddAttribute("url", resourceUri);
 353                    _scope.Start();
 354                    using (Azure.Core.HttpMessage _message = GetStatisticsAsync_CreateMessage(
 355                        pipeline,
 356                        resourceUri,
 357                        version,
 358                        timeout,
 359                        requestId))
 360                    {
 361                        if (async)
 362                        {
 363                            // Send the request asynchronously if we're being called via an async path
 364                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 365                        }
 366                        else
 367                        {
 368                            // Send the request synchronously through the API that blocks if we're being called via a sy
 369                            // (this is safe because the Task will complete before the user can call Wait)
 370                            pipeline.Send(_message, cancellationToken);
 371                        }
 372                        Azure.Response _response = _message.Response;
 373                        cancellationToken.ThrowIfCancellationRequested();
 374                        return GetStatisticsAsync_CreateResponse(clientDiagnostics, _response);
 375                    }
 376                }
 377                catch (System.Exception ex)
 378                {
 379                    _scope.Failed(ex);
 380                    throw;
 381                }
 382                finally
 383                {
 384                    _scope.Dispose();
 385                }
 386            }
 387
 388            /// <summary>
 389            /// Create the Service.GetStatisticsAsync request.
 390            /// </summary>
 391            /// <param name="pipeline">The pipeline used for sending requests.</param>
 392            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 393            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 394            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 395            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 396            /// <returns>The Service.GetStatisticsAsync Message.</returns>
 397            internal static Azure.Core.HttpMessage GetStatisticsAsync_CreateMessage(
 398                Azure.Core.Pipeline.HttpPipeline pipeline,
 399                System.Uri resourceUri,
 400                string version,
 401                int? timeout = default,
 402                string requestId = default)
 403            {
 404                // Validation
 405                if (resourceUri == null)
 406                {
 407                    throw new System.ArgumentNullException(nameof(resourceUri));
 408                }
 409                if (version == null)
 410                {
 411                    throw new System.ArgumentNullException(nameof(version));
 412                }
 413
 414                // Create the request
 415                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 416                Azure.Core.Request _request = _message.Request;
 417
 418                // Set the endpoint
 419                _request.Method = Azure.Core.RequestMethod.Get;
 420                _request.Uri.Reset(resourceUri);
 421                _request.Uri.AppendQuery("restype", "service", escapeValue: false);
 422                _request.Uri.AppendQuery("comp", "stats", escapeValue: false);
 423                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 424
 425                // Add request headers
 426                _request.Headers.SetValue("x-ms-version", version);
 427                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 428
 429                return _message;
 430            }
 431
 432            /// <summary>
 433            /// Create the Service.GetStatisticsAsync response or throw a failure exception.
 434            /// </summary>
 435            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 436            /// <param name="response">The raw Response.</param>
 437            /// <returns>The Service.GetStatisticsAsync Azure.Response{Azure.Storage.Blobs.Models.BlobServiceStatistics}
 438            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobServiceStatistics> GetStatisticsAsync_CreateRe
 439                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 440                Azure.Response response)
 441            {
 442                // Process the response
 443                switch (response.Status)
 444                {
 445                    case 200:
 446                    {
 447                        // Create the result
 448                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 449                        Azure.Storage.Blobs.Models.BlobServiceStatistics _value = Azure.Storage.Blobs.Models.BlobService
 450
 451                        // Create the response
 452                        return Response.FromValue(_value, response);
 453                    }
 454                    case 304:
 455                    {
 456                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.BlobServiceStatistics>(response);
 457                    }
 458                    default:
 459                    {
 460                        // Create the result
 461                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 462                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 463
 464                        throw _value.CreateException(clientDiagnostics, response);
 465                    }
 466                }
 467            }
 468            #endregion Service.GetStatisticsAsync
 469
 470            #region Service.ListBlobContainersSegmentAsync
 471            /// <summary>
 472            /// The List Containers Segment operation returns a list of the containers under the specified account
 473            /// </summary>
 474            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 475            /// <param name="pipeline">The pipeline used for sending requests.</param>
 476            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 477            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 478            /// <param name="prefix">Filters the results to return only containers whose name begins with the specified 
 479            /// <param name="marker">A string value that identifies the portion of the list of containers to be returned
 480            /// <param name="maxresults">Specifies the maximum number of containers to return. If the request does not s
 481            /// <param name="include">Include this parameter to specify that the container's metadata be returned as par
 482            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 483            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 484            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 485            /// <param name="operationName">Operation name.</param>
 486            /// <param name="cancellationToken">Cancellation token.</param>
 487            /// <returns>An enumeration of containers</returns>
 488            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobContainer
 489                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 490                Azure.Core.Pipeline.HttpPipeline pipeline,
 491                System.Uri resourceUri,
 492                string version,
 493                string prefix = default,
 494                string marker = default,
 495                int? maxresults = default,
 496                System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.ListContainersIncludeType> include = d
 497                int? timeout = default,
 498                string requestId = default,
 499                bool async = true,
 500                string operationName = "ServiceClient.ListBlobContainersSegment",
 501                System.Threading.CancellationToken cancellationToken = default)
 502            {
 503                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 504                try
 505                {
 506                    _scope.AddAttribute("url", resourceUri);
 507                    _scope.Start();
 508                    using (Azure.Core.HttpMessage _message = ListBlobContainersSegmentAsync_CreateMessage(
 509                        pipeline,
 510                        resourceUri,
 511                        version,
 512                        prefix,
 513                        marker,
 514                        maxresults,
 515                        include,
 516                        timeout,
 517                        requestId))
 518                    {
 519                        if (async)
 520                        {
 521                            // Send the request asynchronously if we're being called via an async path
 522                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 523                        }
 524                        else
 525                        {
 526                            // Send the request synchronously through the API that blocks if we're being called via a sy
 527                            // (this is safe because the Task will complete before the user can call Wait)
 528                            pipeline.Send(_message, cancellationToken);
 529                        }
 530                        Azure.Response _response = _message.Response;
 531                        cancellationToken.ThrowIfCancellationRequested();
 532                        return ListBlobContainersSegmentAsync_CreateResponse(clientDiagnostics, _response);
 533                    }
 534                }
 535                catch (System.Exception ex)
 536                {
 537                    _scope.Failed(ex);
 538                    throw;
 539                }
 540                finally
 541                {
 542                    _scope.Dispose();
 543                }
 544            }
 545
 546            /// <summary>
 547            /// Create the Service.ListBlobContainersSegmentAsync request.
 548            /// </summary>
 549            /// <param name="pipeline">The pipeline used for sending requests.</param>
 550            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 551            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 552            /// <param name="prefix">Filters the results to return only containers whose name begins with the specified 
 553            /// <param name="marker">A string value that identifies the portion of the list of containers to be returned
 554            /// <param name="maxresults">Specifies the maximum number of containers to return. If the request does not s
 555            /// <param name="include">Include this parameter to specify that the container's metadata be returned as par
 556            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 557            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 558            /// <returns>The Service.ListBlobContainersSegmentAsync Message.</returns>
 559            internal static Azure.Core.HttpMessage ListBlobContainersSegmentAsync_CreateMessage(
 560                Azure.Core.Pipeline.HttpPipeline pipeline,
 561                System.Uri resourceUri,
 562                string version,
 563                string prefix = default,
 564                string marker = default,
 565                int? maxresults = default,
 566                System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.ListContainersIncludeType> include = d
 567                int? timeout = default,
 568                string requestId = default)
 569            {
 570                // Validation
 571                if (resourceUri == null)
 572                {
 573                    throw new System.ArgumentNullException(nameof(resourceUri));
 574                }
 575                if (version == null)
 576                {
 577                    throw new System.ArgumentNullException(nameof(version));
 578                }
 579
 580                // Create the request
 581                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 582                Azure.Core.Request _request = _message.Request;
 583
 584                // Set the endpoint
 585                _request.Method = Azure.Core.RequestMethod.Get;
 586                _request.Uri.Reset(resourceUri);
 587                _request.Uri.AppendQuery("comp", "list", escapeValue: false);
 588                if (prefix != null) { _request.Uri.AppendQuery("prefix", prefix); }
 589                if (marker != null) { _request.Uri.AppendQuery("marker", marker); }
 590                if (maxresults != null) { _request.Uri.AppendQuery("maxresults", maxresults.Value.ToString(System.Global
 591                if (include != null) { _request.Uri.AppendQuery("include", string.Join(",", System.Linq.Enumerable.Selec
 592                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 593
 594                // Add request headers
 595                _request.Headers.SetValue("x-ms-version", version);
 596                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 597
 598                return _message;
 599            }
 600
 601            /// <summary>
 602            /// Create the Service.ListBlobContainersSegmentAsync response or throw a failure exception.
 603            /// </summary>
 604            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 605            /// <param name="response">The raw Response.</param>
 606            /// <returns>The Service.ListBlobContainersSegmentAsync Azure.Response{Azure.Storage.Blobs.Models.BlobContai
 607            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobContainersSegment> ListBlobContainersSegmentAs
 608                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 609                Azure.Response response)
 610            {
 611                // Process the response
 612                switch (response.Status)
 613                {
 614                    case 200:
 615                    {
 616                        // Create the result
 617                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 618                        Azure.Storage.Blobs.Models.BlobContainersSegment _value = Azure.Storage.Blobs.Models.BlobContain
 619
 620                        // Create the response
 621                        return Response.FromValue(_value, response);
 622                    }
 623                    case 304:
 624                    {
 625                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.BlobContainersSegment>(response);
 626                    }
 627                    default:
 628                    {
 629                        // Create the result
 630                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 631                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 632
 633                        throw _value.CreateException(clientDiagnostics, response);
 634                    }
 635                }
 636            }
 637            #endregion Service.ListBlobContainersSegmentAsync
 638
 639            #region Service.GetUserDelegationKeyAsync
 640            /// <summary>
 641            /// Retrieves a user delegation key for the Blob service. This is only a valid operation when using bearer t
 642            /// </summary>
 643            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 644            /// <param name="pipeline">The pipeline used for sending requests.</param>
 645            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 646            /// <param name="keyInfo">Key information</param>
 647            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 648            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 649            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 650            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 651            /// <param name="operationName">Operation name.</param>
 652            /// <param name="cancellationToken">Cancellation token.</param>
 653            /// <returns>A user delegation key</returns>
 654            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.UserDelegatio
 655                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 656                Azure.Core.Pipeline.HttpPipeline pipeline,
 657                System.Uri resourceUri,
 658                Azure.Storage.Blobs.Models.KeyInfo keyInfo,
 659                string version,
 660                int? timeout = default,
 661                string requestId = default,
 662                bool async = true,
 663                string operationName = "ServiceClient.GetUserDelegationKey",
 664                System.Threading.CancellationToken cancellationToken = default)
 665            {
 666                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 667                try
 668                {
 669                    _scope.AddAttribute("url", resourceUri);
 670                    _scope.Start();
 671                    using (Azure.Core.HttpMessage _message = GetUserDelegationKeyAsync_CreateMessage(
 672                        pipeline,
 673                        resourceUri,
 674                        keyInfo,
 675                        version,
 676                        timeout,
 677                        requestId))
 678                    {
 679                        if (async)
 680                        {
 681                            // Send the request asynchronously if we're being called via an async path
 682                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 683                        }
 684                        else
 685                        {
 686                            // Send the request synchronously through the API that blocks if we're being called via a sy
 687                            // (this is safe because the Task will complete before the user can call Wait)
 688                            pipeline.Send(_message, cancellationToken);
 689                        }
 690                        Azure.Response _response = _message.Response;
 691                        cancellationToken.ThrowIfCancellationRequested();
 692                        return GetUserDelegationKeyAsync_CreateResponse(clientDiagnostics, _response);
 693                    }
 694                }
 695                catch (System.Exception ex)
 696                {
 697                    _scope.Failed(ex);
 698                    throw;
 699                }
 700                finally
 701                {
 702                    _scope.Dispose();
 703                }
 704            }
 705
 706            /// <summary>
 707            /// Create the Service.GetUserDelegationKeyAsync request.
 708            /// </summary>
 709            /// <param name="pipeline">The pipeline used for sending requests.</param>
 710            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 711            /// <param name="keyInfo">Key information</param>
 712            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 713            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 714            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 715            /// <returns>The Service.GetUserDelegationKeyAsync Message.</returns>
 716            internal static Azure.Core.HttpMessage GetUserDelegationKeyAsync_CreateMessage(
 717                Azure.Core.Pipeline.HttpPipeline pipeline,
 718                System.Uri resourceUri,
 719                Azure.Storage.Blobs.Models.KeyInfo keyInfo,
 720                string version,
 721                int? timeout = default,
 722                string requestId = default)
 723            {
 724                // Validation
 725                if (resourceUri == null)
 726                {
 727                    throw new System.ArgumentNullException(nameof(resourceUri));
 728                }
 729                if (keyInfo == null)
 730                {
 731                    throw new System.ArgumentNullException(nameof(keyInfo));
 732                }
 733                if (version == null)
 734                {
 735                    throw new System.ArgumentNullException(nameof(version));
 736                }
 737
 738                // Create the request
 739                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 740                Azure.Core.Request _request = _message.Request;
 741
 742                // Set the endpoint
 743                _request.Method = Azure.Core.RequestMethod.Post;
 744                _request.Uri.Reset(resourceUri);
 745                _request.Uri.AppendQuery("restype", "service", escapeValue: false);
 746                _request.Uri.AppendQuery("comp", "userdelegationkey", escapeValue: false);
 747                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 748
 749                // Add request headers
 750                _request.Headers.SetValue("x-ms-version", version);
 751                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 752
 753                // Create the body
 754                System.Xml.Linq.XElement _body = Azure.Storage.Blobs.Models.KeyInfo.ToXml(keyInfo, "KeyInfo", "");
 755                string _text = _body.ToString(System.Xml.Linq.SaveOptions.DisableFormatting);
 756                _request.Headers.SetValue("Content-Type", "application/xml");
 757                _request.Headers.SetValue("Content-Length", _text.Length.ToString(System.Globalization.CultureInfo.Invar
 758                _request.Content = Azure.Core.RequestContent.Create(System.Text.Encoding.UTF8.GetBytes(_text));
 759
 760                return _message;
 761            }
 762
 763            /// <summary>
 764            /// Create the Service.GetUserDelegationKeyAsync response or throw a failure exception.
 765            /// </summary>
 766            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 767            /// <param name="response">The raw Response.</param>
 768            /// <returns>The Service.GetUserDelegationKeyAsync Azure.Response{Azure.Storage.Blobs.Models.UserDelegationK
 769            internal static Azure.Response<Azure.Storage.Blobs.Models.UserDelegationKey> GetUserDelegationKeyAsync_Creat
 770                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 771                Azure.Response response)
 772            {
 773                // Process the response
 774                switch (response.Status)
 775                {
 776                    case 200:
 777                    {
 778                        // Create the result
 779                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 780                        Azure.Storage.Blobs.Models.UserDelegationKey _value = Azure.Storage.Blobs.Models.UserDelegationK
 781
 782                        // Create the response
 783                        return Response.FromValue(_value, response);
 784                    }
 785                    default:
 786                    {
 787                        // Create the result
 788                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 789                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 790
 791                        throw _value.CreateException(clientDiagnostics, response);
 792                    }
 793                }
 794            }
 795            #endregion Service.GetUserDelegationKeyAsync
 796
 797            #region Service.GetAccountInfoAsync
 798            /// <summary>
 799            /// Returns the sku name and account kind
 800            /// </summary>
 801            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 802            /// <param name="pipeline">The pipeline used for sending requests.</param>
 803            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 804            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 805            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 806            /// <param name="operationName">Operation name.</param>
 807            /// <param name="cancellationToken">Cancellation token.</param>
 808            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.AccountInfo}</returns>
 809            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.AccountInfo>>
 810                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 811                Azure.Core.Pipeline.HttpPipeline pipeline,
 812                System.Uri resourceUri,
 813                string version,
 814                bool async = true,
 815                string operationName = "ServiceClient.GetAccountInfo",
 816                System.Threading.CancellationToken cancellationToken = default)
 817            {
 818                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 819                try
 820                {
 821                    _scope.AddAttribute("url", resourceUri);
 822                    _scope.Start();
 823                    using (Azure.Core.HttpMessage _message = GetAccountInfoAsync_CreateMessage(
 824                        pipeline,
 825                        resourceUri,
 826                        version))
 827                    {
 828                        if (async)
 829                        {
 830                            // Send the request asynchronously if we're being called via an async path
 831                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 832                        }
 833                        else
 834                        {
 835                            // Send the request synchronously through the API that blocks if we're being called via a sy
 836                            // (this is safe because the Task will complete before the user can call Wait)
 837                            pipeline.Send(_message, cancellationToken);
 838                        }
 839                        Azure.Response _response = _message.Response;
 840                        cancellationToken.ThrowIfCancellationRequested();
 841                        return GetAccountInfoAsync_CreateResponse(clientDiagnostics, _response);
 842                    }
 843                }
 844                catch (System.Exception ex)
 845                {
 846                    _scope.Failed(ex);
 847                    throw;
 848                }
 849                finally
 850                {
 851                    _scope.Dispose();
 852                }
 853            }
 854
 855            /// <summary>
 856            /// Create the Service.GetAccountInfoAsync request.
 857            /// </summary>
 858            /// <param name="pipeline">The pipeline used for sending requests.</param>
 859            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 860            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 861            /// <returns>The Service.GetAccountInfoAsync Message.</returns>
 862            internal static Azure.Core.HttpMessage GetAccountInfoAsync_CreateMessage(
 863                Azure.Core.Pipeline.HttpPipeline pipeline,
 864                System.Uri resourceUri,
 865                string version)
 866            {
 867                // Validation
 868                if (resourceUri == null)
 869                {
 870                    throw new System.ArgumentNullException(nameof(resourceUri));
 871                }
 872                if (version == null)
 873                {
 874                    throw new System.ArgumentNullException(nameof(version));
 875                }
 876
 877                // Create the request
 878                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 879                Azure.Core.Request _request = _message.Request;
 880
 881                // Set the endpoint
 882                _request.Method = Azure.Core.RequestMethod.Get;
 883                _request.Uri.Reset(resourceUri);
 884                _request.Uri.AppendQuery("restype", "account", escapeValue: false);
 885                _request.Uri.AppendQuery("comp", "properties", escapeValue: false);
 886
 887                // Add request headers
 888                _request.Headers.SetValue("x-ms-version", version);
 889
 890                return _message;
 891            }
 892
 893            /// <summary>
 894            /// Create the Service.GetAccountInfoAsync response or throw a failure exception.
 895            /// </summary>
 896            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 897            /// <param name="response">The raw Response.</param>
 898            /// <returns>The Service.GetAccountInfoAsync Azure.Response{Azure.Storage.Blobs.Models.AccountInfo}.</return
 899            internal static Azure.Response<Azure.Storage.Blobs.Models.AccountInfo> GetAccountInfoAsync_CreateResponse(
 900                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 901                Azure.Response response)
 902            {
 903                // Process the response
 904                switch (response.Status)
 905                {
 906                    case 200:
 907                    {
 908                        // Create the result
 909                        Azure.Storage.Blobs.Models.AccountInfo _value = new Azure.Storage.Blobs.Models.AccountInfo();
 910
 911                        // Get response headers
 912                        string _header;
 913                        if (response.Headers.TryGetValue("x-ms-sku-name", out _header))
 914                        {
 915                            _value.SkuName = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseSkuName(_header);
 916                        }
 917                        if (response.Headers.TryGetValue("x-ms-account-kind", out _header))
 918                        {
 919                            _value.AccountKind = (Azure.Storage.Blobs.Models.AccountKind)System.Enum.Parse(typeof(Azure.
 920                        }
 921
 922                        // Create the response
 923                        return Response.FromValue(_value, response);
 924                    }
 925                    case 304:
 926                    {
 927                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.AccountInfo>(response);
 928                    }
 929                    default:
 930                    {
 931                        // Create the result
 932                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 933                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 934
 935                        throw _value.CreateException(clientDiagnostics, response);
 936                    }
 937                }
 938            }
 939            #endregion Service.GetAccountInfoAsync
 940
 941            #region Service.SubmitBatchAsync
 942            /// <summary>
 943            /// The Batch operation allows multiple API calls to be embedded into a single HTTP request.
 944            /// </summary>
 945            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 946            /// <param name="pipeline">The pipeline used for sending requests.</param>
 947            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 948            /// <param name="body">Initial data</param>
 949            /// <param name="contentLength">The length of the request.</param>
 950            /// <param name="multipartContentType">Required. The value of this header must be multipart/mixed with a bat
 951            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 952            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 953            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 954            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 955            /// <param name="operationName">Operation name.</param>
 956            /// <param name="cancellationToken">Cancellation token.</param>
 957            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobBatchResult}</returns>
 958            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobBatchResu
 959                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 960                Azure.Core.Pipeline.HttpPipeline pipeline,
 961                System.Uri resourceUri,
 962                System.IO.Stream body,
 963                long contentLength,
 964                string multipartContentType,
 965                string version,
 966                int? timeout = default,
 967                string requestId = default,
 968                bool async = true,
 969                string operationName = "ServiceClient.SubmitBatch",
 970                System.Threading.CancellationToken cancellationToken = default)
 971            {
 972                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 973                try
 974                {
 975                    _scope.AddAttribute("url", resourceUri);
 976                    _scope.Start();
 977                    using (Azure.Core.HttpMessage _message = SubmitBatchAsync_CreateMessage(
 978                        pipeline,
 979                        resourceUri,
 980                        body,
 981                        contentLength,
 982                        multipartContentType,
 983                        version,
 984                        timeout,
 985                        requestId))
 986                    {
 987                        if (async)
 988                        {
 989                            // Send the request asynchronously if we're being called via an async path
 990                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 991                        }
 992                        else
 993                        {
 994                            // Send the request synchronously through the API that blocks if we're being called via a sy
 995                            // (this is safe because the Task will complete before the user can call Wait)
 996                            pipeline.Send(_message, cancellationToken);
 997                        }
 998                        Azure.Response _response = _message.Response;
 999                        cancellationToken.ThrowIfCancellationRequested();
 1000                        return SubmitBatchAsync_CreateResponse(clientDiagnostics, _response);
 1001                    }
 1002                }
 1003                catch (System.Exception ex)
 1004                {
 1005                    _scope.Failed(ex);
 1006                    throw;
 1007                }
 1008                finally
 1009                {
 1010                    _scope.Dispose();
 1011                }
 1012            }
 1013
 1014            /// <summary>
 1015            /// Create the Service.SubmitBatchAsync request.
 1016            /// </summary>
 1017            /// <param name="pipeline">The pipeline used for sending requests.</param>
 1018            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 1019            /// <param name="body">Initial data</param>
 1020            /// <param name="contentLength">The length of the request.</param>
 1021            /// <param name="multipartContentType">Required. The value of this header must be multipart/mixed with a bat
 1022            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 1023            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 1024            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 1025            /// <returns>The Service.SubmitBatchAsync Message.</returns>
 1026            internal static Azure.Core.HttpMessage SubmitBatchAsync_CreateMessage(
 1027                Azure.Core.Pipeline.HttpPipeline pipeline,
 1028                System.Uri resourceUri,
 1029                System.IO.Stream body,
 1030                long contentLength,
 1031                string multipartContentType,
 1032                string version,
 1033                int? timeout = default,
 1034                string requestId = default)
 1035            {
 1036                // Validation
 1037                if (resourceUri == null)
 1038                {
 1039                    throw new System.ArgumentNullException(nameof(resourceUri));
 1040                }
 1041                if (body == null)
 1042                {
 1043                    throw new System.ArgumentNullException(nameof(body));
 1044                }
 1045                if (multipartContentType == null)
 1046                {
 1047                    throw new System.ArgumentNullException(nameof(multipartContentType));
 1048                }
 1049                if (version == null)
 1050                {
 1051                    throw new System.ArgumentNullException(nameof(version));
 1052                }
 1053
 1054                // Create the request
 1055                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 1056                Azure.Core.Request _request = _message.Request;
 1057
 1058                // Set the endpoint
 1059                _request.Method = Azure.Core.RequestMethod.Post;
 1060                _request.Uri.Reset(resourceUri);
 1061                _request.Uri.AppendQuery("comp", "batch", escapeValue: false);
 1062                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 1063
 1064                // Add request headers
 1065                _request.Headers.SetValue("Content-Length", contentLength.ToString(System.Globalization.CultureInfo.Inva
 1066                _request.Headers.SetValue("Content-Type", multipartContentType);
 1067                _request.Headers.SetValue("x-ms-version", version);
 1068                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 1069
 1070                // Create the body
 1071                _request.Content = Azure.Core.RequestContent.Create(body);
 1072
 1073                return _message;
 1074            }
 1075
 1076            /// <summary>
 1077            /// Create the Service.SubmitBatchAsync response or throw a failure exception.
 1078            /// </summary>
 1079            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 1080            /// <param name="response">The raw Response.</param>
 1081            /// <returns>The Service.SubmitBatchAsync Azure.Response{Azure.Storage.Blobs.Models.BlobBatchResult}.</retur
 1082            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobBatchResult> SubmitBatchAsync_CreateResponse(
 1083                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 1084                Azure.Response response)
 1085            {
 1086                // Process the response
 1087                switch (response.Status)
 1088                {
 1089                    case 202:
 1090                    {
 1091                        // Create the result
 1092                        Azure.Storage.Blobs.Models.BlobBatchResult _value = new Azure.Storage.Blobs.Models.BlobBatchResu
 1093                        _value.Content = response.ContentStream; // You should manually wrap with RetriableStream!
 1094
 1095                        // Get response headers
 1096                        string _header;
 1097                        if (response.Headers.TryGetValue("Content-Type", out _header))
 1098                        {
 1099                            _value.ContentType = _header;
 1100                        }
 1101
 1102                        // Create the response
 1103                        return Response.FromValue(_value, response);
 1104                    }
 1105                    default:
 1106                    {
 1107                        // Create the result
 1108                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 1109                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 1110
 1111                        throw _value.CreateException(clientDiagnostics, response);
 1112                    }
 1113                }
 1114            }
 1115            #endregion Service.SubmitBatchAsync
 1116
 1117            #region Service.FilterBlobsAsync
 1118            /// <summary>
 1119            /// The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given 
 1120            /// </summary>
 1121            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 1122            /// <param name="pipeline">The pipeline used for sending requests.</param>
 1123            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 1124            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 1125            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 1126            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 1127            /// <param name="where">Filters the results to return only to return only blobs whose tags match the specifi
 1128            /// <param name="marker">A string value that identifies the portion of the list of containers to be returned
 1129            /// <param name="maxresults">Specifies the maximum number of containers to return. If the request does not s
 1130            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 1131            /// <param name="operationName">Operation name.</param>
 1132            /// <param name="cancellationToken">Cancellation token.</param>
 1133            /// <returns>The result of a Filter Blobs API call</returns>
 1134            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.FilterBlobSeg
 1135                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 1136                Azure.Core.Pipeline.HttpPipeline pipeline,
 1137                System.Uri resourceUri,
 1138                string version,
 1139                int? timeout = default,
 1140                string requestId = default,
 1141                string where = default,
 1142                string marker = default,
 1143                int? maxresults = default,
 1144                bool async = true,
 1145                string operationName = "ServiceClient.FilterBlobs",
 1146                System.Threading.CancellationToken cancellationToken = default)
 1147            {
 1148                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 1149                try
 1150                {
 1151                    _scope.AddAttribute("url", resourceUri);
 1152                    _scope.Start();
 1153                    using (Azure.Core.HttpMessage _message = FilterBlobsAsync_CreateMessage(
 1154                        pipeline,
 1155                        resourceUri,
 1156                        version,
 1157                        timeout,
 1158                        requestId,
 1159                        where,
 1160                        marker,
 1161                        maxresults))
 1162                    {
 1163                        if (async)
 1164                        {
 1165                            // Send the request asynchronously if we're being called via an async path
 1166                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 1167                        }
 1168                        else
 1169                        {
 1170                            // Send the request synchronously through the API that blocks if we're being called via a sy
 1171                            // (this is safe because the Task will complete before the user can call Wait)
 1172                            pipeline.Send(_message, cancellationToken);
 1173                        }
 1174                        Azure.Response _response = _message.Response;
 1175                        cancellationToken.ThrowIfCancellationRequested();
 1176                        return FilterBlobsAsync_CreateResponse(clientDiagnostics, _response);
 1177                    }
 1178                }
 1179                catch (System.Exception ex)
 1180                {
 1181                    _scope.Failed(ex);
 1182                    throw;
 1183                }
 1184                finally
 1185                {
 1186                    _scope.Dispose();
 1187                }
 1188            }
 1189
 1190            /// <summary>
 1191            /// Create the Service.FilterBlobsAsync request.
 1192            /// </summary>
 1193            /// <param name="pipeline">The pipeline used for sending requests.</param>
 1194            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 1195            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 1196            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 1197            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 1198            /// <param name="where">Filters the results to return only to return only blobs whose tags match the specifi
 1199            /// <param name="marker">A string value that identifies the portion of the list of containers to be returned
 1200            /// <param name="maxresults">Specifies the maximum number of containers to return. If the request does not s
 1201            /// <returns>The Service.FilterBlobsAsync Message.</returns>
 1202            internal static Azure.Core.HttpMessage FilterBlobsAsync_CreateMessage(
 1203                Azure.Core.Pipeline.HttpPipeline pipeline,
 1204                System.Uri resourceUri,
 1205                string version,
 1206                int? timeout = default,
 1207                string requestId = default,
 1208                string where = default,
 1209                string marker = default,
 1210                int? maxresults = default)
 1211            {
 1212                // Validation
 1213                if (resourceUri == null)
 1214                {
 1215                    throw new System.ArgumentNullException(nameof(resourceUri));
 1216                }
 1217                if (version == null)
 1218                {
 1219                    throw new System.ArgumentNullException(nameof(version));
 1220                }
 1221
 1222                // Create the request
 1223                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 1224                Azure.Core.Request _request = _message.Request;
 1225
 1226                // Set the endpoint
 1227                _request.Method = Azure.Core.RequestMethod.Get;
 1228                _request.Uri.Reset(resourceUri);
 1229                _request.Uri.AppendQuery("comp", "blobs", escapeValue: false);
 1230                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 1231                if (where != null) { _request.Uri.AppendQuery("where", where); }
 1232                if (marker != null) { _request.Uri.AppendQuery("marker", marker); }
 1233                if (maxresults != null) { _request.Uri.AppendQuery("maxresults", maxresults.Value.ToString(System.Global
 1234
 1235                // Add request headers
 1236                _request.Headers.SetValue("x-ms-version", version);
 1237                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 1238
 1239                return _message;
 1240            }
 1241
 1242            /// <summary>
 1243            /// Create the Service.FilterBlobsAsync response or throw a failure exception.
 1244            /// </summary>
 1245            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 1246            /// <param name="response">The raw Response.</param>
 1247            /// <returns>The Service.FilterBlobsAsync Azure.Response{Azure.Storage.Blobs.Models.FilterBlobSegment}.</ret
 1248            internal static Azure.Response<Azure.Storage.Blobs.Models.FilterBlobSegment> FilterBlobsAsync_CreateResponse
 1249                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 1250                Azure.Response response)
 1251            {
 1252                // Process the response
 1253                switch (response.Status)
 1254                {
 1255                    case 200:
 1256                    {
 1257                        // Create the result
 1258                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 1259                        Azure.Storage.Blobs.Models.FilterBlobSegment _value = Azure.Storage.Blobs.Models.FilterBlobSegme
 1260
 1261                        // Create the response
 1262                        return Response.FromValue(_value, response);
 1263                    }
 1264                    case 304:
 1265                    {
 1266                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.FilterBlobSegment>(response);
 1267                    }
 1268                    default:
 1269                    {
 1270                        // Create the result
 1271                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 1272                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 1273
 1274                        throw _value.CreateException(clientDiagnostics, response);
 1275                    }
 1276                }
 1277            }
 1278            #endregion Service.FilterBlobsAsync
 1279        }
 1280        #endregion Service operations
 1281
 1282        #region Container operations
 1283        /// <summary>
 1284        /// Container operations for Azure Blob Storage
 1285        /// </summary>
 1286        public static partial class Container
 1287        {
 1288            #region Container.CreateAsync
 1289            /// <summary>
 1290            /// creates a new container under the specified account. If the container with the same name already exists,
 1291            /// </summary>
 1292            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 1293            /// <param name="pipeline">The pipeline used for sending requests.</param>
 1294            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 1295            /// <param name="access">Specifies whether data in the container may be accessed publicly and the level of a
 1296            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 1297            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 1298            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 1299            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 1300            /// <param name="defaultEncryptionScope">Optional.  Version 2019-07-07 and later.  Specifies the default enc
 1301            /// <param name="preventEncryptionScopeOverride">Optional.  Version 2019-07-07 and newer.  If true, prevents
 1302            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 1303            /// <param name="operationName">Operation name.</param>
 1304            /// <param name="cancellationToken">Cancellation token.</param>
 1305            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobContainerInfo}</returns>
 1306            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobContainer
 1307                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 1308                Azure.Core.Pipeline.HttpPipeline pipeline,
 1309                System.Uri resourceUri,
 1310                Azure.Storage.Blobs.Models.PublicAccessType access,
 1311                string version,
 1312                int? timeout = default,
 1313                System.Collections.Generic.IDictionary<string, string> metadata = default,
 1314                string requestId = default,
 1315                string defaultEncryptionScope = default,
 1316                bool? preventEncryptionScopeOverride = default,
 1317                bool async = true,
 1318                string operationName = "ContainerClient.Create",
 1319                System.Threading.CancellationToken cancellationToken = default)
 1320            {
 1321                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 1322                try
 1323                {
 1324                    _scope.AddAttribute("url", resourceUri);
 1325                    _scope.Start();
 1326                    using (Azure.Core.HttpMessage _message = CreateAsync_CreateMessage(
 1327                        pipeline,
 1328                        resourceUri,
 1329                        access,
 1330                        version,
 1331                        timeout,
 1332                        metadata,
 1333                        requestId,
 1334                        defaultEncryptionScope,
 1335                        preventEncryptionScopeOverride))
 1336                    {
 1337                        if (async)
 1338                        {
 1339                            // Send the request asynchronously if we're being called via an async path
 1340                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 1341                        }
 1342                        else
 1343                        {
 1344                            // Send the request synchronously through the API that blocks if we're being called via a sy
 1345                            // (this is safe because the Task will complete before the user can call Wait)
 1346                            pipeline.Send(_message, cancellationToken);
 1347                        }
 1348                        Azure.Response _response = _message.Response;
 1349                        cancellationToken.ThrowIfCancellationRequested();
 1350                        return CreateAsync_CreateResponse(clientDiagnostics, _response);
 1351                    }
 1352                }
 1353                catch (System.Exception ex)
 1354                {
 1355                    _scope.Failed(ex);
 1356                    throw;
 1357                }
 1358                finally
 1359                {
 1360                    _scope.Dispose();
 1361                }
 1362            }
 1363
 1364            /// <summary>
 1365            /// Create the Container.CreateAsync request.
 1366            /// </summary>
 1367            /// <param name="pipeline">The pipeline used for sending requests.</param>
 1368            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 1369            /// <param name="access">Specifies whether data in the container may be accessed publicly and the level of a
 1370            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 1371            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 1372            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 1373            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 1374            /// <param name="defaultEncryptionScope">Optional.  Version 2019-07-07 and later.  Specifies the default enc
 1375            /// <param name="preventEncryptionScopeOverride">Optional.  Version 2019-07-07 and newer.  If true, prevents
 1376            /// <returns>The Container.CreateAsync Message.</returns>
 1377            internal static Azure.Core.HttpMessage CreateAsync_CreateMessage(
 1378                Azure.Core.Pipeline.HttpPipeline pipeline,
 1379                System.Uri resourceUri,
 1380                Azure.Storage.Blobs.Models.PublicAccessType access,
 1381                string version,
 1382                int? timeout = default,
 1383                System.Collections.Generic.IDictionary<string, string> metadata = default,
 1384                string requestId = default,
 1385                string defaultEncryptionScope = default,
 1386                bool? preventEncryptionScopeOverride = default)
 1387            {
 1388                // Validation
 1389                if (resourceUri == null)
 1390                {
 1391                    throw new System.ArgumentNullException(nameof(resourceUri));
 1392                }
 1393                if (version == null)
 1394                {
 1395                    throw new System.ArgumentNullException(nameof(version));
 1396                }
 1397
 1398                // Create the request
 1399                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 1400                Azure.Core.Request _request = _message.Request;
 1401
 1402                // Set the endpoint
 1403                _request.Method = Azure.Core.RequestMethod.Put;
 1404                _request.Uri.Reset(resourceUri);
 1405                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 1406                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 1407
 1408                // Add request headers
 1409                if (access != Azure.Storage.Blobs.Models.PublicAccessType.None) { _request.Headers.SetValue("x-ms-blob-p
 1410                _request.Headers.SetValue("x-ms-version", version);
 1411                if (metadata != null) {
 1412                    foreach (System.Collections.Generic.KeyValuePair<string, string> _pair in metadata)
 1413                    {
 1414                        _request.Headers.SetValue("x-ms-meta-" + _pair.Key, _pair.Value);
 1415                    }
 1416                }
 1417                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 1418                if (defaultEncryptionScope != null) { _request.Headers.SetValue("x-ms-default-encryption-scope", default
 1419                if (preventEncryptionScopeOverride != null) {
 1420                #pragma warning disable CA1308 // Normalize strings to uppercase
 1421                _request.Headers.SetValue("x-ms-deny-encryption-scope-override", preventEncryptionScopeOverride.Value.To
 1422                #pragma warning restore CA1308 // Normalize strings to uppercase
 1423                }
 1424
 1425                return _message;
 1426            }
 1427
 1428            /// <summary>
 1429            /// Create the Container.CreateAsync response or throw a failure exception.
 1430            /// </summary>
 1431            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 1432            /// <param name="response">The raw Response.</param>
 1433            /// <returns>The Container.CreateAsync Azure.Response{Azure.Storage.Blobs.Models.BlobContainerInfo}.</return
 1434            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobContainerInfo> CreateAsync_CreateResponse(
 1435                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 1436                Azure.Response response)
 1437            {
 1438                // Process the response
 1439                switch (response.Status)
 1440                {
 1441                    case 201:
 1442                    {
 1443                        // Create the result
 1444                        Azure.Storage.Blobs.Models.BlobContainerInfo _value = new Azure.Storage.Blobs.Models.BlobContain
 1445
 1446                        // Get response headers
 1447                        string _header;
 1448                        if (response.Headers.TryGetValue("ETag", out _header))
 1449                        {
 1450                            _value.ETag = new Azure.ETag(_header);
 1451                        }
 1452                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 1453                        {
 1454                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 1455                        }
 1456
 1457                        // Create the response
 1458                        return Response.FromValue(_value, response);
 1459                    }
 1460                    default:
 1461                    {
 1462                        // Create the result
 1463                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 1464                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 1465
 1466                        throw _value.CreateException(clientDiagnostics, response);
 1467                    }
 1468                }
 1469            }
 1470            #endregion Container.CreateAsync
 1471
 1472            #region Container.GetPropertiesAsync
 1473            /// <summary>
 1474            /// returns all user-defined metadata and system properties for the specified container. The data returned d
 1475            /// </summary>
 1476            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 1477            /// <param name="pipeline">The pipeline used for sending requests.</param>
 1478            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 1479            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 1480            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 1481            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 1482            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 1483            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 1484            /// <param name="operationName">Operation name.</param>
 1485            /// <param name="cancellationToken">Cancellation token.</param>
 1486            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.FlattenedContainerItem}</returns>
 1487            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.FlattenedCont
 1488                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 1489                Azure.Core.Pipeline.HttpPipeline pipeline,
 1490                System.Uri resourceUri,
 1491                string version,
 1492                int? timeout = default,
 1493                string leaseId = default,
 1494                string requestId = default,
 1495                bool async = true,
 1496                string operationName = "ContainerClient.GetProperties",
 1497                System.Threading.CancellationToken cancellationToken = default)
 1498            {
 1499                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 1500                try
 1501                {
 1502                    _scope.AddAttribute("url", resourceUri);
 1503                    _scope.Start();
 1504                    using (Azure.Core.HttpMessage _message = GetPropertiesAsync_CreateMessage(
 1505                        pipeline,
 1506                        resourceUri,
 1507                        version,
 1508                        timeout,
 1509                        leaseId,
 1510                        requestId))
 1511                    {
 1512                        if (async)
 1513                        {
 1514                            // Send the request asynchronously if we're being called via an async path
 1515                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 1516                        }
 1517                        else
 1518                        {
 1519                            // Send the request synchronously through the API that blocks if we're being called via a sy
 1520                            // (this is safe because the Task will complete before the user can call Wait)
 1521                            pipeline.Send(_message, cancellationToken);
 1522                        }
 1523                        Azure.Response _response = _message.Response;
 1524                        cancellationToken.ThrowIfCancellationRequested();
 1525                        return GetPropertiesAsync_CreateResponse(clientDiagnostics, _response);
 1526                    }
 1527                }
 1528                catch (System.Exception ex)
 1529                {
 1530                    _scope.Failed(ex);
 1531                    throw;
 1532                }
 1533                finally
 1534                {
 1535                    _scope.Dispose();
 1536                }
 1537            }
 1538
 1539            /// <summary>
 1540            /// Create the Container.GetPropertiesAsync request.
 1541            /// </summary>
 1542            /// <param name="pipeline">The pipeline used for sending requests.</param>
 1543            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 1544            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 1545            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 1546            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 1547            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 1548            /// <returns>The Container.GetPropertiesAsync Message.</returns>
 1549            internal static Azure.Core.HttpMessage GetPropertiesAsync_CreateMessage(
 1550                Azure.Core.Pipeline.HttpPipeline pipeline,
 1551                System.Uri resourceUri,
 1552                string version,
 1553                int? timeout = default,
 1554                string leaseId = default,
 1555                string requestId = default)
 1556            {
 1557                // Validation
 1558                if (resourceUri == null)
 1559                {
 1560                    throw new System.ArgumentNullException(nameof(resourceUri));
 1561                }
 1562                if (version == null)
 1563                {
 1564                    throw new System.ArgumentNullException(nameof(version));
 1565                }
 1566
 1567                // Create the request
 1568                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 1569                Azure.Core.Request _request = _message.Request;
 1570
 1571                // Set the endpoint
 1572                _request.Method = Azure.Core.RequestMethod.Get;
 1573                _request.Uri.Reset(resourceUri);
 1574                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 1575                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 1576
 1577                // Add request headers
 1578                _request.Headers.SetValue("x-ms-version", version);
 1579                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 1580                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 1581
 1582                return _message;
 1583            }
 1584
 1585            /// <summary>
 1586            /// Create the Container.GetPropertiesAsync response or throw a failure exception.
 1587            /// </summary>
 1588            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 1589            /// <param name="response">The raw Response.</param>
 1590            /// <returns>The Container.GetPropertiesAsync Azure.Response{Azure.Storage.Blobs.Models.FlattenedContainerIt
 1591            internal static Azure.Response<Azure.Storage.Blobs.Models.FlattenedContainerItem> GetPropertiesAsync_CreateR
 1592                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 1593                Azure.Response response)
 1594            {
 1595                // Process the response
 1596                switch (response.Status)
 1597                {
 1598                    case 200:
 1599                    {
 1600                        // Create the result
 1601                        Azure.Storage.Blobs.Models.FlattenedContainerItem _value = new Azure.Storage.Blobs.Models.Flatte
 1602
 1603                        // Get response headers
 1604                        string _header;
 1605                        _value.Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringCompare
 1606                        foreach (Azure.Core.HttpHeader _headerPair in response.Headers)
 1607                        {
 1608                            if (_headerPair.Name.StartsWith("x-ms-meta-", System.StringComparison.InvariantCulture))
 1609                            {
 1610                                _value.Metadata[_headerPair.Name.Substring(10)] = _headerPair.Value;
 1611                            }
 1612                        }
 1613                        if (response.Headers.TryGetValue("ETag", out _header))
 1614                        {
 1615                            _value.ETag = new Azure.ETag(_header);
 1616                        }
 1617                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 1618                        {
 1619                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 1620                        }
 1621                        if (response.Headers.TryGetValue("x-ms-lease-duration", out _header))
 1622                        {
 1623                            _value.LeaseDuration = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseDurationTy
 1624                        }
 1625                        if (response.Headers.TryGetValue("x-ms-lease-state", out _header))
 1626                        {
 1627                            _value.LeaseState = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseState(_header
 1628                        }
 1629                        if (response.Headers.TryGetValue("x-ms-lease-status", out _header))
 1630                        {
 1631                            _value.LeaseStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseStatus(_head
 1632                        }
 1633                        if (response.Headers.TryGetValue("x-ms-blob-public-access", out _header))
 1634                        {
 1635                            _value.BlobPublicAccess = Azure.Storage.Blobs.BlobRestClient.Serialization.ParsePublicAccess
 1636                        }
 1637                        if (response.Headers.TryGetValue("x-ms-has-immutability-policy", out _header))
 1638                        {
 1639                            _value.HasImmutabilityPolicy = bool.Parse(_header);
 1640                        }
 1641                        if (response.Headers.TryGetValue("x-ms-has-legal-hold", out _header))
 1642                        {
 1643                            _value.HasLegalHold = bool.Parse(_header);
 1644                        }
 1645                        if (response.Headers.TryGetValue("x-ms-default-encryption-scope", out _header))
 1646                        {
 1647                            _value.DefaultEncryptionScope = _header;
 1648                        }
 1649                        if (response.Headers.TryGetValue("x-ms-deny-encryption-scope-override", out _header))
 1650                        {
 1651                            _value.DenyEncryptionScopeOverride = bool.Parse(_header);
 1652                        }
 1653
 1654                        // Create the response
 1655                        return Response.FromValue(_value, response);
 1656                    }
 1657                    case 304:
 1658                    {
 1659                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.FlattenedContainerItem>(response);
 1660                    }
 1661                    default:
 1662                    {
 1663                        // Create the result
 1664                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 1665                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 1666
 1667                        throw _value.CreateException(clientDiagnostics, response);
 1668                    }
 1669                }
 1670            }
 1671            #endregion Container.GetPropertiesAsync
 1672
 1673            #region Container.DeleteAsync
 1674            /// <summary>
 1675            /// operation marks the specified container for deletion. The container and any blobs contained within it ar
 1676            /// </summary>
 1677            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 1678            /// <param name="pipeline">The pipeline used for sending requests.</param>
 1679            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 1680            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 1681            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 1682            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 1683            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 1684            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 1685            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 1686            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 1687            /// <param name="operationName">Operation name.</param>
 1688            /// <param name="cancellationToken">Cancellation token.</param>
 1689            /// <returns>Azure.Response</returns>
 1690            public static async System.Threading.Tasks.ValueTask<Azure.Response> DeleteAsync(
 1691                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 1692                Azure.Core.Pipeline.HttpPipeline pipeline,
 1693                System.Uri resourceUri,
 1694                string version,
 1695                int? timeout = default,
 1696                string leaseId = default,
 1697                System.DateTimeOffset? ifModifiedSince = default,
 1698                System.DateTimeOffset? ifUnmodifiedSince = default,
 1699                string requestId = default,
 1700                bool async = true,
 1701                string operationName = "ContainerClient.Delete",
 1702                System.Threading.CancellationToken cancellationToken = default)
 1703            {
 1704                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 1705                try
 1706                {
 1707                    _scope.AddAttribute("url", resourceUri);
 1708                    _scope.Start();
 1709                    using (Azure.Core.HttpMessage _message = DeleteAsync_CreateMessage(
 1710                        pipeline,
 1711                        resourceUri,
 1712                        version,
 1713                        timeout,
 1714                        leaseId,
 1715                        ifModifiedSince,
 1716                        ifUnmodifiedSince,
 1717                        requestId))
 1718                    {
 1719                        if (async)
 1720                        {
 1721                            // Send the request asynchronously if we're being called via an async path
 1722                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 1723                        }
 1724                        else
 1725                        {
 1726                            // Send the request synchronously through the API that blocks if we're being called via a sy
 1727                            // (this is safe because the Task will complete before the user can call Wait)
 1728                            pipeline.Send(_message, cancellationToken);
 1729                        }
 1730                        Azure.Response _response = _message.Response;
 1731                        cancellationToken.ThrowIfCancellationRequested();
 1732                        return DeleteAsync_CreateResponse(clientDiagnostics, _response);
 1733                    }
 1734                }
 1735                catch (System.Exception ex)
 1736                {
 1737                    _scope.Failed(ex);
 1738                    throw;
 1739                }
 1740                finally
 1741                {
 1742                    _scope.Dispose();
 1743                }
 1744            }
 1745
 1746            /// <summary>
 1747            /// Create the Container.DeleteAsync request.
 1748            /// </summary>
 1749            /// <param name="pipeline">The pipeline used for sending requests.</param>
 1750            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 1751            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 1752            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 1753            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 1754            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 1755            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 1756            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 1757            /// <returns>The Container.DeleteAsync Message.</returns>
 1758            internal static Azure.Core.HttpMessage DeleteAsync_CreateMessage(
 1759                Azure.Core.Pipeline.HttpPipeline pipeline,
 1760                System.Uri resourceUri,
 1761                string version,
 1762                int? timeout = default,
 1763                string leaseId = default,
 1764                System.DateTimeOffset? ifModifiedSince = default,
 1765                System.DateTimeOffset? ifUnmodifiedSince = default,
 1766                string requestId = default)
 1767            {
 1768                // Validation
 1769                if (resourceUri == null)
 1770                {
 1771                    throw new System.ArgumentNullException(nameof(resourceUri));
 1772                }
 1773                if (version == null)
 1774                {
 1775                    throw new System.ArgumentNullException(nameof(version));
 1776                }
 1777
 1778                // Create the request
 1779                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 1780                Azure.Core.Request _request = _message.Request;
 1781
 1782                // Set the endpoint
 1783                _request.Method = Azure.Core.RequestMethod.Delete;
 1784                _request.Uri.Reset(resourceUri);
 1785                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 1786                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 1787
 1788                // Add request headers
 1789                _request.Headers.SetValue("x-ms-version", version);
 1790                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 1791                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 1792                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 1793                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 1794
 1795                return _message;
 1796            }
 1797
 1798            /// <summary>
 1799            /// Create the Container.DeleteAsync response or throw a failure exception.
 1800            /// </summary>
 1801            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 1802            /// <param name="response">The raw Response.</param>
 1803            /// <returns>The Container.DeleteAsync Azure.Response.</returns>
 1804            internal static Azure.Response DeleteAsync_CreateResponse(
 1805                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 1806                Azure.Response response)
 1807            {
 1808                // Process the response
 1809                switch (response.Status)
 1810                {
 1811                    case 202:
 1812                    {
 1813                        return response;
 1814                    }
 1815                    default:
 1816                    {
 1817                        // Create the result
 1818                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 1819                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 1820
 1821                        throw _value.CreateException(clientDiagnostics, response);
 1822                    }
 1823                }
 1824            }
 1825            #endregion Container.DeleteAsync
 1826
 1827            #region Container.SetMetadataAsync
 1828            /// <summary>
 1829            /// operation sets one or more user-defined name-value pairs for the specified container.
 1830            /// </summary>
 1831            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 1832            /// <param name="pipeline">The pipeline used for sending requests.</param>
 1833            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 1834            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 1835            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 1836            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 1837            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 1838            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 1839            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 1840            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 1841            /// <param name="operationName">Operation name.</param>
 1842            /// <param name="cancellationToken">Cancellation token.</param>
 1843            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobContainerInfo}</returns>
 1844            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobContainer
 1845                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 1846                Azure.Core.Pipeline.HttpPipeline pipeline,
 1847                System.Uri resourceUri,
 1848                string version,
 1849                int? timeout = default,
 1850                string leaseId = default,
 1851                System.Collections.Generic.IDictionary<string, string> metadata = default,
 1852                System.DateTimeOffset? ifModifiedSince = default,
 1853                string requestId = default,
 1854                bool async = true,
 1855                string operationName = "ContainerClient.SetMetadata",
 1856                System.Threading.CancellationToken cancellationToken = default)
 1857            {
 1858                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 1859                try
 1860                {
 1861                    _scope.AddAttribute("url", resourceUri);
 1862                    _scope.Start();
 1863                    using (Azure.Core.HttpMessage _message = SetMetadataAsync_CreateMessage(
 1864                        pipeline,
 1865                        resourceUri,
 1866                        version,
 1867                        timeout,
 1868                        leaseId,
 1869                        metadata,
 1870                        ifModifiedSince,
 1871                        requestId))
 1872                    {
 1873                        if (async)
 1874                        {
 1875                            // Send the request asynchronously if we're being called via an async path
 1876                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 1877                        }
 1878                        else
 1879                        {
 1880                            // Send the request synchronously through the API that blocks if we're being called via a sy
 1881                            // (this is safe because the Task will complete before the user can call Wait)
 1882                            pipeline.Send(_message, cancellationToken);
 1883                        }
 1884                        Azure.Response _response = _message.Response;
 1885                        cancellationToken.ThrowIfCancellationRequested();
 1886                        return SetMetadataAsync_CreateResponse(clientDiagnostics, _response);
 1887                    }
 1888                }
 1889                catch (System.Exception ex)
 1890                {
 1891                    _scope.Failed(ex);
 1892                    throw;
 1893                }
 1894                finally
 1895                {
 1896                    _scope.Dispose();
 1897                }
 1898            }
 1899
 1900            /// <summary>
 1901            /// Create the Container.SetMetadataAsync request.
 1902            /// </summary>
 1903            /// <param name="pipeline">The pipeline used for sending requests.</param>
 1904            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 1905            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 1906            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 1907            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 1908            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 1909            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 1910            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 1911            /// <returns>The Container.SetMetadataAsync Message.</returns>
 1912            internal static Azure.Core.HttpMessage SetMetadataAsync_CreateMessage(
 1913                Azure.Core.Pipeline.HttpPipeline pipeline,
 1914                System.Uri resourceUri,
 1915                string version,
 1916                int? timeout = default,
 1917                string leaseId = default,
 1918                System.Collections.Generic.IDictionary<string, string> metadata = default,
 1919                System.DateTimeOffset? ifModifiedSince = default,
 1920                string requestId = default)
 1921            {
 1922                // Validation
 1923                if (resourceUri == null)
 1924                {
 1925                    throw new System.ArgumentNullException(nameof(resourceUri));
 1926                }
 1927                if (version == null)
 1928                {
 1929                    throw new System.ArgumentNullException(nameof(version));
 1930                }
 1931
 1932                // Create the request
 1933                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 1934                Azure.Core.Request _request = _message.Request;
 1935
 1936                // Set the endpoint
 1937                _request.Method = Azure.Core.RequestMethod.Put;
 1938                _request.Uri.Reset(resourceUri);
 1939                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 1940                _request.Uri.AppendQuery("comp", "metadata", escapeValue: false);
 1941                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 1942
 1943                // Add request headers
 1944                _request.Headers.SetValue("x-ms-version", version);
 1945                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 1946                if (metadata != null) {
 1947                    foreach (System.Collections.Generic.KeyValuePair<string, string> _pair in metadata)
 1948                    {
 1949                        _request.Headers.SetValue("x-ms-meta-" + _pair.Key, _pair.Value);
 1950                    }
 1951                }
 1952                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 1953                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 1954
 1955                return _message;
 1956            }
 1957
 1958            /// <summary>
 1959            /// Create the Container.SetMetadataAsync response or throw a failure exception.
 1960            /// </summary>
 1961            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 1962            /// <param name="response">The raw Response.</param>
 1963            /// <returns>The Container.SetMetadataAsync Azure.Response{Azure.Storage.Blobs.Models.BlobContainerInfo}.</r
 1964            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobContainerInfo> SetMetadataAsync_CreateResponse
 1965                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 1966                Azure.Response response)
 1967            {
 1968                // Process the response
 1969                switch (response.Status)
 1970                {
 1971                    case 200:
 1972                    {
 1973                        // Create the result
 1974                        Azure.Storage.Blobs.Models.BlobContainerInfo _value = new Azure.Storage.Blobs.Models.BlobContain
 1975
 1976                        // Get response headers
 1977                        string _header;
 1978                        if (response.Headers.TryGetValue("ETag", out _header))
 1979                        {
 1980                            _value.ETag = new Azure.ETag(_header);
 1981                        }
 1982                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 1983                        {
 1984                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 1985                        }
 1986
 1987                        // Create the response
 1988                        return Response.FromValue(_value, response);
 1989                    }
 1990                    default:
 1991                    {
 1992                        // Create the result
 1993                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 1994                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 1995
 1996                        throw _value.CreateException(clientDiagnostics, response);
 1997                    }
 1998                }
 1999            }
 2000            #endregion Container.SetMetadataAsync
 2001
 2002            #region Container.GetAccessPolicyAsync
 2003            /// <summary>
 2004            /// gets the permissions for the specified container. The permissions indicate whether container data may be
 2005            /// </summary>
 2006            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 2007            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2008            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2009            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2010            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2011            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 2012            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2013            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 2014            /// <param name="operationName">Operation name.</param>
 2015            /// <param name="cancellationToken">Cancellation token.</param>
 2016            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobContainerAccessPolicy}</returns>
 2017            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobContainer
 2018                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 2019                Azure.Core.Pipeline.HttpPipeline pipeline,
 2020                System.Uri resourceUri,
 2021                string version,
 2022                int? timeout = default,
 2023                string leaseId = default,
 2024                string requestId = default,
 2025                bool async = true,
 2026                string operationName = "ContainerClient.GetAccessPolicy",
 2027                System.Threading.CancellationToken cancellationToken = default)
 2028            {
 2029                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 2030                try
 2031                {
 2032                    _scope.AddAttribute("url", resourceUri);
 2033                    _scope.Start();
 2034                    using (Azure.Core.HttpMessage _message = GetAccessPolicyAsync_CreateMessage(
 2035                        pipeline,
 2036                        resourceUri,
 2037                        version,
 2038                        timeout,
 2039                        leaseId,
 2040                        requestId))
 2041                    {
 2042                        if (async)
 2043                        {
 2044                            // Send the request asynchronously if we're being called via an async path
 2045                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 2046                        }
 2047                        else
 2048                        {
 2049                            // Send the request synchronously through the API that blocks if we're being called via a sy
 2050                            // (this is safe because the Task will complete before the user can call Wait)
 2051                            pipeline.Send(_message, cancellationToken);
 2052                        }
 2053                        Azure.Response _response = _message.Response;
 2054                        cancellationToken.ThrowIfCancellationRequested();
 2055                        return GetAccessPolicyAsync_CreateResponse(clientDiagnostics, _response);
 2056                    }
 2057                }
 2058                catch (System.Exception ex)
 2059                {
 2060                    _scope.Failed(ex);
 2061                    throw;
 2062                }
 2063                finally
 2064                {
 2065                    _scope.Dispose();
 2066                }
 2067            }
 2068
 2069            /// <summary>
 2070            /// Create the Container.GetAccessPolicyAsync request.
 2071            /// </summary>
 2072            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2073            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2074            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2075            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2076            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 2077            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2078            /// <returns>The Container.GetAccessPolicyAsync Message.</returns>
 2079            internal static Azure.Core.HttpMessage GetAccessPolicyAsync_CreateMessage(
 2080                Azure.Core.Pipeline.HttpPipeline pipeline,
 2081                System.Uri resourceUri,
 2082                string version,
 2083                int? timeout = default,
 2084                string leaseId = default,
 2085                string requestId = default)
 2086            {
 2087                // Validation
 2088                if (resourceUri == null)
 2089                {
 2090                    throw new System.ArgumentNullException(nameof(resourceUri));
 2091                }
 2092                if (version == null)
 2093                {
 2094                    throw new System.ArgumentNullException(nameof(version));
 2095                }
 2096
 2097                // Create the request
 2098                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 2099                Azure.Core.Request _request = _message.Request;
 2100
 2101                // Set the endpoint
 2102                _request.Method = Azure.Core.RequestMethod.Get;
 2103                _request.Uri.Reset(resourceUri);
 2104                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 2105                _request.Uri.AppendQuery("comp", "acl", escapeValue: false);
 2106                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 2107
 2108                // Add request headers
 2109                _request.Headers.SetValue("x-ms-version", version);
 2110                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 2111                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 2112
 2113                return _message;
 2114            }
 2115
 2116            /// <summary>
 2117            /// Create the Container.GetAccessPolicyAsync response or throw a failure exception.
 2118            /// </summary>
 2119            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 2120            /// <param name="response">The raw Response.</param>
 2121            /// <returns>The Container.GetAccessPolicyAsync Azure.Response{Azure.Storage.Blobs.Models.BlobContainerAcces
 2122            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobContainerAccessPolicy> GetAccessPolicyAsync_Cr
 2123                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 2124                Azure.Response response)
 2125            {
 2126                // Process the response
 2127                switch (response.Status)
 2128                {
 2129                    case 200:
 2130                    {
 2131                        // Create the result
 2132                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 2133                        Azure.Storage.Blobs.Models.BlobContainerAccessPolicy _value = new Azure.Storage.Blobs.Models.Blo
 2134                        _value.SignedIdentifiers =
 2135                            System.Linq.Enumerable.ToList(
 2136                                System.Linq.Enumerable.Select(
 2137                                    _xml.Element(System.Xml.Linq.XName.Get("SignedIdentifiers", "")).Elements(System.Xml
 2138                                    Azure.Storage.Blobs.Models.BlobSignedIdentifier.FromXml));
 2139
 2140                        // Get response headers
 2141                        string _header;
 2142                        if (response.Headers.TryGetValue("x-ms-blob-public-access", out _header))
 2143                        {
 2144                            _value.BlobPublicAccess = Azure.Storage.Blobs.BlobRestClient.Serialization.ParsePublicAccess
 2145                        }
 2146                        if (response.Headers.TryGetValue("ETag", out _header))
 2147                        {
 2148                            _value.ETag = new Azure.ETag(_header);
 2149                        }
 2150                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 2151                        {
 2152                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 2153                        }
 2154
 2155                        // Create the response
 2156                        return Response.FromValue(_value, response);
 2157                    }
 2158                    case 304:
 2159                    {
 2160                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.BlobContainerAccessPolicy>(response);
 2161                    }
 2162                    default:
 2163                    {
 2164                        // Create the result
 2165                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 2166                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 2167
 2168                        throw _value.CreateException(clientDiagnostics, response);
 2169                    }
 2170                }
 2171            }
 2172            #endregion Container.GetAccessPolicyAsync
 2173
 2174            #region Container.SetAccessPolicyAsync
 2175            /// <summary>
 2176            /// sets the permissions for the specified container. The permissions indicate whether blobs in a container 
 2177            /// </summary>
 2178            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 2179            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2180            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2181            /// <param name="access">Specifies whether data in the container may be accessed publicly and the level of a
 2182            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2183            /// <param name="permissions">the acls for the container</param>
 2184            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2185            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 2186            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 2187            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 2188            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2189            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 2190            /// <param name="operationName">Operation name.</param>
 2191            /// <param name="cancellationToken">Cancellation token.</param>
 2192            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobContainerInfo}</returns>
 2193            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobContainer
 2194                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 2195                Azure.Core.Pipeline.HttpPipeline pipeline,
 2196                System.Uri resourceUri,
 2197                Azure.Storage.Blobs.Models.PublicAccessType access,
 2198                string version,
 2199                System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobSignedIdentifier> permissions = de
 2200                int? timeout = default,
 2201                string leaseId = default,
 2202                System.DateTimeOffset? ifModifiedSince = default,
 2203                System.DateTimeOffset? ifUnmodifiedSince = default,
 2204                string requestId = default,
 2205                bool async = true,
 2206                string operationName = "ContainerClient.SetAccessPolicy",
 2207                System.Threading.CancellationToken cancellationToken = default)
 2208            {
 2209                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 2210                try
 2211                {
 2212                    _scope.AddAttribute("url", resourceUri);
 2213                    _scope.Start();
 2214                    using (Azure.Core.HttpMessage _message = SetAccessPolicyAsync_CreateMessage(
 2215                        pipeline,
 2216                        resourceUri,
 2217                        access,
 2218                        version,
 2219                        permissions,
 2220                        timeout,
 2221                        leaseId,
 2222                        ifModifiedSince,
 2223                        ifUnmodifiedSince,
 2224                        requestId))
 2225                    {
 2226                        if (async)
 2227                        {
 2228                            // Send the request asynchronously if we're being called via an async path
 2229                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 2230                        }
 2231                        else
 2232                        {
 2233                            // Send the request synchronously through the API that blocks if we're being called via a sy
 2234                            // (this is safe because the Task will complete before the user can call Wait)
 2235                            pipeline.Send(_message, cancellationToken);
 2236                        }
 2237                        Azure.Response _response = _message.Response;
 2238                        cancellationToken.ThrowIfCancellationRequested();
 2239                        return SetAccessPolicyAsync_CreateResponse(clientDiagnostics, _response);
 2240                    }
 2241                }
 2242                catch (System.Exception ex)
 2243                {
 2244                    _scope.Failed(ex);
 2245                    throw;
 2246                }
 2247                finally
 2248                {
 2249                    _scope.Dispose();
 2250                }
 2251            }
 2252
 2253            /// <summary>
 2254            /// Create the Container.SetAccessPolicyAsync request.
 2255            /// </summary>
 2256            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2257            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2258            /// <param name="access">Specifies whether data in the container may be accessed publicly and the level of a
 2259            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2260            /// <param name="permissions">the acls for the container</param>
 2261            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2262            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 2263            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 2264            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 2265            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2266            /// <returns>The Container.SetAccessPolicyAsync Message.</returns>
 2267            internal static Azure.Core.HttpMessage SetAccessPolicyAsync_CreateMessage(
 2268                Azure.Core.Pipeline.HttpPipeline pipeline,
 2269                System.Uri resourceUri,
 2270                Azure.Storage.Blobs.Models.PublicAccessType access,
 2271                string version,
 2272                System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobSignedIdentifier> permissions = de
 2273                int? timeout = default,
 2274                string leaseId = default,
 2275                System.DateTimeOffset? ifModifiedSince = default,
 2276                System.DateTimeOffset? ifUnmodifiedSince = default,
 2277                string requestId = default)
 2278            {
 2279                // Validation
 2280                if (resourceUri == null)
 2281                {
 2282                    throw new System.ArgumentNullException(nameof(resourceUri));
 2283                }
 2284                if (version == null)
 2285                {
 2286                    throw new System.ArgumentNullException(nameof(version));
 2287                }
 2288
 2289                // Create the request
 2290                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 2291                Azure.Core.Request _request = _message.Request;
 2292
 2293                // Set the endpoint
 2294                _request.Method = Azure.Core.RequestMethod.Put;
 2295                _request.Uri.Reset(resourceUri);
 2296                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 2297                _request.Uri.AppendQuery("comp", "acl", escapeValue: false);
 2298                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 2299
 2300                // Add request headers
 2301                if (access != Azure.Storage.Blobs.Models.PublicAccessType.None) { _request.Headers.SetValue("x-ms-blob-p
 2302                _request.Headers.SetValue("x-ms-version", version);
 2303                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 2304                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 2305                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 2306                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 2307
 2308                // Create the body
 2309                System.Xml.Linq.XElement _body = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get("SignedIdentifie
 2310                if (permissions != null)
 2311                {
 2312                    foreach (Azure.Storage.Blobs.Models.BlobSignedIdentifier _child in permissions)
 2313                    {
 2314                        _body.Add(Azure.Storage.Blobs.Models.BlobSignedIdentifier.ToXml(_child));
 2315                    }
 2316                }
 2317                string _text = _body.ToString(System.Xml.Linq.SaveOptions.DisableFormatting);
 2318                _request.Headers.SetValue("Content-Type", "application/xml");
 2319                _request.Headers.SetValue("Content-Length", _text.Length.ToString(System.Globalization.CultureInfo.Invar
 2320                _request.Content = Azure.Core.RequestContent.Create(System.Text.Encoding.UTF8.GetBytes(_text));
 2321
 2322                return _message;
 2323            }
 2324
 2325            /// <summary>
 2326            /// Create the Container.SetAccessPolicyAsync response or throw a failure exception.
 2327            /// </summary>
 2328            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 2329            /// <param name="response">The raw Response.</param>
 2330            /// <returns>The Container.SetAccessPolicyAsync Azure.Response{Azure.Storage.Blobs.Models.BlobContainerInfo}
 2331            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobContainerInfo> SetAccessPolicyAsync_CreateResp
 2332                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 2333                Azure.Response response)
 2334            {
 2335                // Process the response
 2336                switch (response.Status)
 2337                {
 2338                    case 200:
 2339                    {
 2340                        // Create the result
 2341                        Azure.Storage.Blobs.Models.BlobContainerInfo _value = new Azure.Storage.Blobs.Models.BlobContain
 2342
 2343                        // Get response headers
 2344                        string _header;
 2345                        if (response.Headers.TryGetValue("ETag", out _header))
 2346                        {
 2347                            _value.ETag = new Azure.ETag(_header);
 2348                        }
 2349                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 2350                        {
 2351                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 2352                        }
 2353
 2354                        // Create the response
 2355                        return Response.FromValue(_value, response);
 2356                    }
 2357                    default:
 2358                    {
 2359                        // Create the result
 2360                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 2361                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 2362
 2363                        throw _value.CreateException(clientDiagnostics, response);
 2364                    }
 2365                }
 2366            }
 2367            #endregion Container.SetAccessPolicyAsync
 2368
 2369            #region Container.RestoreAsync
 2370            /// <summary>
 2371            /// Restores a previously-deleted container.
 2372            /// </summary>
 2373            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 2374            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2375            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2376            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2377            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2378            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2379            /// <param name="deletedContainerName">Optional.  Version 2019-12-12 and laster.  Specifies the name of the 
 2380            /// <param name="deletedContainerVersion">Optional.  Version 2019-12-12 and laster.  Specifies the version o
 2381            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 2382            /// <param name="operationName">Operation name.</param>
 2383            /// <param name="cancellationToken">Cancellation token.</param>
 2384            /// <returns>Azure.Response</returns>
 2385            public static async System.Threading.Tasks.ValueTask<Azure.Response> RestoreAsync(
 2386                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 2387                Azure.Core.Pipeline.HttpPipeline pipeline,
 2388                System.Uri resourceUri,
 2389                string version,
 2390                int? timeout = default,
 2391                string requestId = default,
 2392                string deletedContainerName = default,
 2393                string deletedContainerVersion = default,
 2394                bool async = true,
 2395                string operationName = "ContainerClient.Restore",
 2396                System.Threading.CancellationToken cancellationToken = default)
 2397            {
 2398                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 2399                try
 2400                {
 2401                    _scope.AddAttribute("url", resourceUri);
 2402                    _scope.Start();
 2403                    using (Azure.Core.HttpMessage _message = RestoreAsync_CreateMessage(
 2404                        pipeline,
 2405                        resourceUri,
 2406                        version,
 2407                        timeout,
 2408                        requestId,
 2409                        deletedContainerName,
 2410                        deletedContainerVersion))
 2411                    {
 2412                        if (async)
 2413                        {
 2414                            // Send the request asynchronously if we're being called via an async path
 2415                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 2416                        }
 2417                        else
 2418                        {
 2419                            // Send the request synchronously through the API that blocks if we're being called via a sy
 2420                            // (this is safe because the Task will complete before the user can call Wait)
 2421                            pipeline.Send(_message, cancellationToken);
 2422                        }
 2423                        Azure.Response _response = _message.Response;
 2424                        cancellationToken.ThrowIfCancellationRequested();
 2425                        return RestoreAsync_CreateResponse(clientDiagnostics, _response);
 2426                    }
 2427                }
 2428                catch (System.Exception ex)
 2429                {
 2430                    _scope.Failed(ex);
 2431                    throw;
 2432                }
 2433                finally
 2434                {
 2435                    _scope.Dispose();
 2436                }
 2437            }
 2438
 2439            /// <summary>
 2440            /// Create the Container.RestoreAsync request.
 2441            /// </summary>
 2442            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2443            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2444            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2445            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2446            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2447            /// <param name="deletedContainerName">Optional.  Version 2019-12-12 and laster.  Specifies the name of the 
 2448            /// <param name="deletedContainerVersion">Optional.  Version 2019-12-12 and laster.  Specifies the version o
 2449            /// <returns>The Container.RestoreAsync Message.</returns>
 2450            internal static Azure.Core.HttpMessage RestoreAsync_CreateMessage(
 2451                Azure.Core.Pipeline.HttpPipeline pipeline,
 2452                System.Uri resourceUri,
 2453                string version,
 2454                int? timeout = default,
 2455                string requestId = default,
 2456                string deletedContainerName = default,
 2457                string deletedContainerVersion = default)
 2458            {
 2459                // Validation
 2460                if (resourceUri == null)
 2461                {
 2462                    throw new System.ArgumentNullException(nameof(resourceUri));
 2463                }
 2464                if (version == null)
 2465                {
 2466                    throw new System.ArgumentNullException(nameof(version));
 2467                }
 2468
 2469                // Create the request
 2470                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 2471                Azure.Core.Request _request = _message.Request;
 2472
 2473                // Set the endpoint
 2474                _request.Method = Azure.Core.RequestMethod.Put;
 2475                _request.Uri.Reset(resourceUri);
 2476                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 2477                _request.Uri.AppendQuery("comp", "undelete", escapeValue: false);
 2478                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 2479
 2480                // Add request headers
 2481                _request.Headers.SetValue("x-ms-version", version);
 2482                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 2483                if (deletedContainerName != null) { _request.Headers.SetValue("x-ms-deleted-container-name", deletedCont
 2484                if (deletedContainerVersion != null) { _request.Headers.SetValue("x-ms-deleted-container-version", delet
 2485
 2486                return _message;
 2487            }
 2488
 2489            /// <summary>
 2490            /// Create the Container.RestoreAsync response or throw a failure exception.
 2491            /// </summary>
 2492            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 2493            /// <param name="response">The raw Response.</param>
 2494            /// <returns>The Container.RestoreAsync Azure.Response.</returns>
 2495            internal static Azure.Response RestoreAsync_CreateResponse(
 2496                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 2497                Azure.Response response)
 2498            {
 2499                // Process the response
 2500                switch (response.Status)
 2501                {
 2502                    case 201:
 2503                    {
 2504                        return response;
 2505                    }
 2506                    default:
 2507                    {
 2508                        // Create the result
 2509                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 2510                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 2511
 2512                        throw _value.CreateException(clientDiagnostics, response);
 2513                    }
 2514                }
 2515            }
 2516            #endregion Container.RestoreAsync
 2517
 2518            #region Container.AcquireLeaseAsync
 2519            /// <summary>
 2520            /// [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 1
 2521            /// </summary>
 2522            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 2523            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2524            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2525            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2526            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2527            /// <param name="duration">Specifies the duration of the lease, in seconds, or negative one (-1) for a lease
 2528            /// <param name="proposedLeaseId">Proposed lease ID, in a GUID string format. The Blob service returns 400 (
 2529            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 2530            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 2531            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2532            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 2533            /// <param name="operationName">Operation name.</param>
 2534            /// <param name="cancellationToken">Cancellation token.</param>
 2535            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobLease}</returns>
 2536            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobLease>> A
 2537                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 2538                Azure.Core.Pipeline.HttpPipeline pipeline,
 2539                System.Uri resourceUri,
 2540                string version,
 2541                int? timeout = default,
 2542                long? duration = default,
 2543                string proposedLeaseId = default,
 2544                System.DateTimeOffset? ifModifiedSince = default,
 2545                System.DateTimeOffset? ifUnmodifiedSince = default,
 2546                string requestId = default,
 2547                bool async = true,
 2548                string operationName = "ContainerClient.AcquireLease",
 2549                System.Threading.CancellationToken cancellationToken = default)
 2550            {
 2551                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 2552                try
 2553                {
 2554                    _scope.AddAttribute("url", resourceUri);
 2555                    _scope.Start();
 2556                    using (Azure.Core.HttpMessage _message = AcquireLeaseAsync_CreateMessage(
 2557                        pipeline,
 2558                        resourceUri,
 2559                        version,
 2560                        timeout,
 2561                        duration,
 2562                        proposedLeaseId,
 2563                        ifModifiedSince,
 2564                        ifUnmodifiedSince,
 2565                        requestId))
 2566                    {
 2567                        if (async)
 2568                        {
 2569                            // Send the request asynchronously if we're being called via an async path
 2570                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 2571                        }
 2572                        else
 2573                        {
 2574                            // Send the request synchronously through the API that blocks if we're being called via a sy
 2575                            // (this is safe because the Task will complete before the user can call Wait)
 2576                            pipeline.Send(_message, cancellationToken);
 2577                        }
 2578                        Azure.Response _response = _message.Response;
 2579                        cancellationToken.ThrowIfCancellationRequested();
 2580                        return AcquireLeaseAsync_CreateResponse(clientDiagnostics, _response);
 2581                    }
 2582                }
 2583                catch (System.Exception ex)
 2584                {
 2585                    _scope.Failed(ex);
 2586                    throw;
 2587                }
 2588                finally
 2589                {
 2590                    _scope.Dispose();
 2591                }
 2592            }
 2593
 2594            /// <summary>
 2595            /// Create the Container.AcquireLeaseAsync request.
 2596            /// </summary>
 2597            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2598            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2599            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2600            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2601            /// <param name="duration">Specifies the duration of the lease, in seconds, or negative one (-1) for a lease
 2602            /// <param name="proposedLeaseId">Proposed lease ID, in a GUID string format. The Blob service returns 400 (
 2603            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 2604            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 2605            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2606            /// <returns>The Container.AcquireLeaseAsync Message.</returns>
 2607            internal static Azure.Core.HttpMessage AcquireLeaseAsync_CreateMessage(
 2608                Azure.Core.Pipeline.HttpPipeline pipeline,
 2609                System.Uri resourceUri,
 2610                string version,
 2611                int? timeout = default,
 2612                long? duration = default,
 2613                string proposedLeaseId = default,
 2614                System.DateTimeOffset? ifModifiedSince = default,
 2615                System.DateTimeOffset? ifUnmodifiedSince = default,
 2616                string requestId = default)
 2617            {
 2618                // Validation
 2619                if (resourceUri == null)
 2620                {
 2621                    throw new System.ArgumentNullException(nameof(resourceUri));
 2622                }
 2623                if (version == null)
 2624                {
 2625                    throw new System.ArgumentNullException(nameof(version));
 2626                }
 2627
 2628                // Create the request
 2629                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 2630                Azure.Core.Request _request = _message.Request;
 2631
 2632                // Set the endpoint
 2633                _request.Method = Azure.Core.RequestMethod.Put;
 2634                _request.Uri.Reset(resourceUri);
 2635                _request.Uri.AppendQuery("comp", "lease", escapeValue: false);
 2636                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 2637                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 2638
 2639                // Add request headers
 2640                _request.Headers.SetValue("x-ms-lease-action", "acquire");
 2641                _request.Headers.SetValue("x-ms-version", version);
 2642                if (duration != null) { _request.Headers.SetValue("x-ms-lease-duration", duration.Value.ToString(System.
 2643                if (proposedLeaseId != null) { _request.Headers.SetValue("x-ms-proposed-lease-id", proposedLeaseId); }
 2644                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 2645                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 2646                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 2647
 2648                return _message;
 2649            }
 2650
 2651            /// <summary>
 2652            /// Create the Container.AcquireLeaseAsync response or throw a failure exception.
 2653            /// </summary>
 2654            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 2655            /// <param name="response">The raw Response.</param>
 2656            /// <returns>The Container.AcquireLeaseAsync Azure.Response{Azure.Storage.Blobs.Models.BlobLease}.</returns>
 2657            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobLease> AcquireLeaseAsync_CreateResponse(
 2658                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 2659                Azure.Response response)
 2660            {
 2661                // Process the response
 2662                switch (response.Status)
 2663                {
 2664                    case 201:
 2665                    {
 2666                        // Create the result
 2667                        Azure.Storage.Blobs.Models.BlobLease _value = new Azure.Storage.Blobs.Models.BlobLease();
 2668
 2669                        // Get response headers
 2670                        string _header;
 2671                        if (response.Headers.TryGetValue("ETag", out _header))
 2672                        {
 2673                            _value.ETag = new Azure.ETag(_header);
 2674                        }
 2675                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 2676                        {
 2677                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 2678                        }
 2679                        if (response.Headers.TryGetValue("x-ms-lease-id", out _header))
 2680                        {
 2681                            _value.LeaseId = _header;
 2682                        }
 2683
 2684                        // Create the response
 2685                        return Response.FromValue(_value, response);
 2686                    }
 2687                    default:
 2688                    {
 2689                        // Create the result
 2690                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 2691                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 2692
 2693                        throw _value.CreateException(clientDiagnostics, response);
 2694                    }
 2695                }
 2696            }
 2697            #endregion Container.AcquireLeaseAsync
 2698
 2699            #region Container.ReleaseLeaseAsync
 2700            /// <summary>
 2701            /// [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 1
 2702            /// </summary>
 2703            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 2704            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2705            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2706            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 2707            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2708            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2709            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 2710            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 2711            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2712            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 2713            /// <param name="operationName">Operation name.</param>
 2714            /// <param name="cancellationToken">Cancellation token.</param>
 2715            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobContainerInfo}</returns>
 2716            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobContainer
 2717                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 2718                Azure.Core.Pipeline.HttpPipeline pipeline,
 2719                System.Uri resourceUri,
 2720                string leaseId,
 2721                string version,
 2722                int? timeout = default,
 2723                System.DateTimeOffset? ifModifiedSince = default,
 2724                System.DateTimeOffset? ifUnmodifiedSince = default,
 2725                string requestId = default,
 2726                bool async = true,
 2727                string operationName = "ContainerClient.ReleaseLease",
 2728                System.Threading.CancellationToken cancellationToken = default)
 2729            {
 2730                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 2731                try
 2732                {
 2733                    _scope.AddAttribute("url", resourceUri);
 2734                    _scope.Start();
 2735                    using (Azure.Core.HttpMessage _message = ReleaseLeaseAsync_CreateMessage(
 2736                        pipeline,
 2737                        resourceUri,
 2738                        leaseId,
 2739                        version,
 2740                        timeout,
 2741                        ifModifiedSince,
 2742                        ifUnmodifiedSince,
 2743                        requestId))
 2744                    {
 2745                        if (async)
 2746                        {
 2747                            // Send the request asynchronously if we're being called via an async path
 2748                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 2749                        }
 2750                        else
 2751                        {
 2752                            // Send the request synchronously through the API that blocks if we're being called via a sy
 2753                            // (this is safe because the Task will complete before the user can call Wait)
 2754                            pipeline.Send(_message, cancellationToken);
 2755                        }
 2756                        Azure.Response _response = _message.Response;
 2757                        cancellationToken.ThrowIfCancellationRequested();
 2758                        return ReleaseLeaseAsync_CreateResponse(clientDiagnostics, _response);
 2759                    }
 2760                }
 2761                catch (System.Exception ex)
 2762                {
 2763                    _scope.Failed(ex);
 2764                    throw;
 2765                }
 2766                finally
 2767                {
 2768                    _scope.Dispose();
 2769                }
 2770            }
 2771
 2772            /// <summary>
 2773            /// Create the Container.ReleaseLeaseAsync request.
 2774            /// </summary>
 2775            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2776            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2777            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 2778            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2779            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2780            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 2781            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 2782            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2783            /// <returns>The Container.ReleaseLeaseAsync Message.</returns>
 2784            internal static Azure.Core.HttpMessage ReleaseLeaseAsync_CreateMessage(
 2785                Azure.Core.Pipeline.HttpPipeline pipeline,
 2786                System.Uri resourceUri,
 2787                string leaseId,
 2788                string version,
 2789                int? timeout = default,
 2790                System.DateTimeOffset? ifModifiedSince = default,
 2791                System.DateTimeOffset? ifUnmodifiedSince = default,
 2792                string requestId = default)
 2793            {
 2794                // Validation
 2795                if (resourceUri == null)
 2796                {
 2797                    throw new System.ArgumentNullException(nameof(resourceUri));
 2798                }
 2799                if (leaseId == null)
 2800                {
 2801                    throw new System.ArgumentNullException(nameof(leaseId));
 2802                }
 2803                if (version == null)
 2804                {
 2805                    throw new System.ArgumentNullException(nameof(version));
 2806                }
 2807
 2808                // Create the request
 2809                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 2810                Azure.Core.Request _request = _message.Request;
 2811
 2812                // Set the endpoint
 2813                _request.Method = Azure.Core.RequestMethod.Put;
 2814                _request.Uri.Reset(resourceUri);
 2815                _request.Uri.AppendQuery("comp", "lease", escapeValue: false);
 2816                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 2817                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 2818
 2819                // Add request headers
 2820                _request.Headers.SetValue("x-ms-lease-action", "release");
 2821                _request.Headers.SetValue("x-ms-lease-id", leaseId);
 2822                _request.Headers.SetValue("x-ms-version", version);
 2823                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 2824                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 2825                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 2826
 2827                return _message;
 2828            }
 2829
 2830            /// <summary>
 2831            /// Create the Container.ReleaseLeaseAsync response or throw a failure exception.
 2832            /// </summary>
 2833            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 2834            /// <param name="response">The raw Response.</param>
 2835            /// <returns>The Container.ReleaseLeaseAsync Azure.Response{Azure.Storage.Blobs.Models.BlobContainerInfo}.</
 2836            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobContainerInfo> ReleaseLeaseAsync_CreateRespons
 2837                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 2838                Azure.Response response)
 2839            {
 2840                // Process the response
 2841                switch (response.Status)
 2842                {
 2843                    case 200:
 2844                    {
 2845                        // Create the result
 2846                        Azure.Storage.Blobs.Models.BlobContainerInfo _value = new Azure.Storage.Blobs.Models.BlobContain
 2847
 2848                        // Get response headers
 2849                        string _header;
 2850                        if (response.Headers.TryGetValue("ETag", out _header))
 2851                        {
 2852                            _value.ETag = new Azure.ETag(_header);
 2853                        }
 2854                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 2855                        {
 2856                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 2857                        }
 2858
 2859                        // Create the response
 2860                        return Response.FromValue(_value, response);
 2861                    }
 2862                    default:
 2863                    {
 2864                        // Create the result
 2865                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 2866                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 2867
 2868                        throw _value.CreateException(clientDiagnostics, response);
 2869                    }
 2870                }
 2871            }
 2872            #endregion Container.ReleaseLeaseAsync
 2873
 2874            #region Container.RenewLeaseAsync
 2875            /// <summary>
 2876            /// [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 1
 2877            /// </summary>
 2878            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 2879            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2880            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2881            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 2882            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2883            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2884            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 2885            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 2886            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2887            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 2888            /// <param name="operationName">Operation name.</param>
 2889            /// <param name="cancellationToken">Cancellation token.</param>
 2890            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobLease}</returns>
 2891            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobLease>> R
 2892                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 2893                Azure.Core.Pipeline.HttpPipeline pipeline,
 2894                System.Uri resourceUri,
 2895                string leaseId,
 2896                string version,
 2897                int? timeout = default,
 2898                System.DateTimeOffset? ifModifiedSince = default,
 2899                System.DateTimeOffset? ifUnmodifiedSince = default,
 2900                string requestId = default,
 2901                bool async = true,
 2902                string operationName = "ContainerClient.RenewLease",
 2903                System.Threading.CancellationToken cancellationToken = default)
 2904            {
 2905                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 2906                try
 2907                {
 2908                    _scope.AddAttribute("url", resourceUri);
 2909                    _scope.Start();
 2910                    using (Azure.Core.HttpMessage _message = RenewLeaseAsync_CreateMessage(
 2911                        pipeline,
 2912                        resourceUri,
 2913                        leaseId,
 2914                        version,
 2915                        timeout,
 2916                        ifModifiedSince,
 2917                        ifUnmodifiedSince,
 2918                        requestId))
 2919                    {
 2920                        if (async)
 2921                        {
 2922                            // Send the request asynchronously if we're being called via an async path
 2923                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 2924                        }
 2925                        else
 2926                        {
 2927                            // Send the request synchronously through the API that blocks if we're being called via a sy
 2928                            // (this is safe because the Task will complete before the user can call Wait)
 2929                            pipeline.Send(_message, cancellationToken);
 2930                        }
 2931                        Azure.Response _response = _message.Response;
 2932                        cancellationToken.ThrowIfCancellationRequested();
 2933                        return RenewLeaseAsync_CreateResponse(clientDiagnostics, _response);
 2934                    }
 2935                }
 2936                catch (System.Exception ex)
 2937                {
 2938                    _scope.Failed(ex);
 2939                    throw;
 2940                }
 2941                finally
 2942                {
 2943                    _scope.Dispose();
 2944                }
 2945            }
 2946
 2947            /// <summary>
 2948            /// Create the Container.RenewLeaseAsync request.
 2949            /// </summary>
 2950            /// <param name="pipeline">The pipeline used for sending requests.</param>
 2951            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 2952            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 2953            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 2954            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 2955            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 2956            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 2957            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 2958            /// <returns>The Container.RenewLeaseAsync Message.</returns>
 2959            internal static Azure.Core.HttpMessage RenewLeaseAsync_CreateMessage(
 2960                Azure.Core.Pipeline.HttpPipeline pipeline,
 2961                System.Uri resourceUri,
 2962                string leaseId,
 2963                string version,
 2964                int? timeout = default,
 2965                System.DateTimeOffset? ifModifiedSince = default,
 2966                System.DateTimeOffset? ifUnmodifiedSince = default,
 2967                string requestId = default)
 2968            {
 2969                // Validation
 2970                if (resourceUri == null)
 2971                {
 2972                    throw new System.ArgumentNullException(nameof(resourceUri));
 2973                }
 2974                if (leaseId == null)
 2975                {
 2976                    throw new System.ArgumentNullException(nameof(leaseId));
 2977                }
 2978                if (version == null)
 2979                {
 2980                    throw new System.ArgumentNullException(nameof(version));
 2981                }
 2982
 2983                // Create the request
 2984                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 2985                Azure.Core.Request _request = _message.Request;
 2986
 2987                // Set the endpoint
 2988                _request.Method = Azure.Core.RequestMethod.Put;
 2989                _request.Uri.Reset(resourceUri);
 2990                _request.Uri.AppendQuery("comp", "lease", escapeValue: false);
 2991                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 2992                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 2993
 2994                // Add request headers
 2995                _request.Headers.SetValue("x-ms-lease-action", "renew");
 2996                _request.Headers.SetValue("x-ms-lease-id", leaseId);
 2997                _request.Headers.SetValue("x-ms-version", version);
 2998                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 2999                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 3000                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 3001
 3002                return _message;
 3003            }
 3004
 3005            /// <summary>
 3006            /// Create the Container.RenewLeaseAsync response or throw a failure exception.
 3007            /// </summary>
 3008            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 3009            /// <param name="response">The raw Response.</param>
 3010            /// <returns>The Container.RenewLeaseAsync Azure.Response{Azure.Storage.Blobs.Models.BlobLease}.</returns>
 3011            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobLease> RenewLeaseAsync_CreateResponse(
 3012                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 3013                Azure.Response response)
 3014            {
 3015                // Process the response
 3016                switch (response.Status)
 3017                {
 3018                    case 200:
 3019                    {
 3020                        // Create the result
 3021                        Azure.Storage.Blobs.Models.BlobLease _value = new Azure.Storage.Blobs.Models.BlobLease();
 3022
 3023                        // Get response headers
 3024                        string _header;
 3025                        if (response.Headers.TryGetValue("ETag", out _header))
 3026                        {
 3027                            _value.ETag = new Azure.ETag(_header);
 3028                        }
 3029                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 3030                        {
 3031                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 3032                        }
 3033                        if (response.Headers.TryGetValue("x-ms-lease-id", out _header))
 3034                        {
 3035                            _value.LeaseId = _header;
 3036                        }
 3037
 3038                        // Create the response
 3039                        return Response.FromValue(_value, response);
 3040                    }
 3041                    default:
 3042                    {
 3043                        // Create the result
 3044                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 3045                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 3046
 3047                        throw _value.CreateException(clientDiagnostics, response);
 3048                    }
 3049                }
 3050            }
 3051            #endregion Container.RenewLeaseAsync
 3052
 3053            #region Container.BreakLeaseAsync
 3054            /// <summary>
 3055            /// [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 1
 3056            /// </summary>
 3057            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 3058            /// <param name="pipeline">The pipeline used for sending requests.</param>
 3059            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 3060            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 3061            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 3062            /// <param name="breakPeriod">For a break operation, proposed duration the lease should continue before it i
 3063            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 3064            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 3065            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 3066            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 3067            /// <param name="operationName">Operation name.</param>
 3068            /// <param name="cancellationToken">Cancellation token.</param>
 3069            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BrokenLease}</returns>
 3070            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BrokenLease>>
 3071                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 3072                Azure.Core.Pipeline.HttpPipeline pipeline,
 3073                System.Uri resourceUri,
 3074                string version,
 3075                int? timeout = default,
 3076                long? breakPeriod = default,
 3077                System.DateTimeOffset? ifModifiedSince = default,
 3078                System.DateTimeOffset? ifUnmodifiedSince = default,
 3079                string requestId = default,
 3080                bool async = true,
 3081                string operationName = "ContainerClient.BreakLease",
 3082                System.Threading.CancellationToken cancellationToken = default)
 3083            {
 3084                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 3085                try
 3086                {
 3087                    _scope.AddAttribute("url", resourceUri);
 3088                    _scope.Start();
 3089                    using (Azure.Core.HttpMessage _message = BreakLeaseAsync_CreateMessage(
 3090                        pipeline,
 3091                        resourceUri,
 3092                        version,
 3093                        timeout,
 3094                        breakPeriod,
 3095                        ifModifiedSince,
 3096                        ifUnmodifiedSince,
 3097                        requestId))
 3098                    {
 3099                        if (async)
 3100                        {
 3101                            // Send the request asynchronously if we're being called via an async path
 3102                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 3103                        }
 3104                        else
 3105                        {
 3106                            // Send the request synchronously through the API that blocks if we're being called via a sy
 3107                            // (this is safe because the Task will complete before the user can call Wait)
 3108                            pipeline.Send(_message, cancellationToken);
 3109                        }
 3110                        Azure.Response _response = _message.Response;
 3111                        cancellationToken.ThrowIfCancellationRequested();
 3112                        return BreakLeaseAsync_CreateResponse(clientDiagnostics, _response);
 3113                    }
 3114                }
 3115                catch (System.Exception ex)
 3116                {
 3117                    _scope.Failed(ex);
 3118                    throw;
 3119                }
 3120                finally
 3121                {
 3122                    _scope.Dispose();
 3123                }
 3124            }
 3125
 3126            /// <summary>
 3127            /// Create the Container.BreakLeaseAsync request.
 3128            /// </summary>
 3129            /// <param name="pipeline">The pipeline used for sending requests.</param>
 3130            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 3131            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 3132            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 3133            /// <param name="breakPeriod">For a break operation, proposed duration the lease should continue before it i
 3134            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 3135            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 3136            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 3137            /// <returns>The Container.BreakLeaseAsync Message.</returns>
 3138            internal static Azure.Core.HttpMessage BreakLeaseAsync_CreateMessage(
 3139                Azure.Core.Pipeline.HttpPipeline pipeline,
 3140                System.Uri resourceUri,
 3141                string version,
 3142                int? timeout = default,
 3143                long? breakPeriod = default,
 3144                System.DateTimeOffset? ifModifiedSince = default,
 3145                System.DateTimeOffset? ifUnmodifiedSince = default,
 3146                string requestId = default)
 3147            {
 3148                // Validation
 3149                if (resourceUri == null)
 3150                {
 3151                    throw new System.ArgumentNullException(nameof(resourceUri));
 3152                }
 3153                if (version == null)
 3154                {
 3155                    throw new System.ArgumentNullException(nameof(version));
 3156                }
 3157
 3158                // Create the request
 3159                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 3160                Azure.Core.Request _request = _message.Request;
 3161
 3162                // Set the endpoint
 3163                _request.Method = Azure.Core.RequestMethod.Put;
 3164                _request.Uri.Reset(resourceUri);
 3165                _request.Uri.AppendQuery("comp", "lease", escapeValue: false);
 3166                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 3167                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 3168
 3169                // Add request headers
 3170                _request.Headers.SetValue("x-ms-lease-action", "break");
 3171                _request.Headers.SetValue("x-ms-version", version);
 3172                if (breakPeriod != null) { _request.Headers.SetValue("x-ms-lease-break-period", breakPeriod.Value.ToStri
 3173                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 3174                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 3175                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 3176
 3177                return _message;
 3178            }
 3179
 3180            /// <summary>
 3181            /// Create the Container.BreakLeaseAsync response or throw a failure exception.
 3182            /// </summary>
 3183            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 3184            /// <param name="response">The raw Response.</param>
 3185            /// <returns>The Container.BreakLeaseAsync Azure.Response{Azure.Storage.Blobs.Models.BrokenLease}.</returns>
 3186            internal static Azure.Response<Azure.Storage.Blobs.Models.BrokenLease> BreakLeaseAsync_CreateResponse(
 3187                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 3188                Azure.Response response)
 3189            {
 3190                // Process the response
 3191                switch (response.Status)
 3192                {
 3193                    case 202:
 3194                    {
 3195                        // Create the result
 3196                        Azure.Storage.Blobs.Models.BrokenLease _value = new Azure.Storage.Blobs.Models.BrokenLease();
 3197
 3198                        // Get response headers
 3199                        string _header;
 3200                        if (response.Headers.TryGetValue("ETag", out _header))
 3201                        {
 3202                            _value.ETag = new Azure.ETag(_header);
 3203                        }
 3204                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 3205                        {
 3206                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 3207                        }
 3208                        if (response.Headers.TryGetValue("x-ms-lease-time", out _header))
 3209                        {
 3210                            _value.LeaseTime = int.Parse(_header, System.Globalization.CultureInfo.InvariantCulture);
 3211                        }
 3212
 3213                        // Create the response
 3214                        return Response.FromValue(_value, response);
 3215                    }
 3216                    default:
 3217                    {
 3218                        // Create the result
 3219                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 3220                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 3221
 3222                        throw _value.CreateException(clientDiagnostics, response);
 3223                    }
 3224                }
 3225            }
 3226            #endregion Container.BreakLeaseAsync
 3227
 3228            #region Container.ChangeLeaseAsync
 3229            /// <summary>
 3230            /// [Update] establishes and manages a lock on a container for delete operations. The lock duration can be 1
 3231            /// </summary>
 3232            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 3233            /// <param name="pipeline">The pipeline used for sending requests.</param>
 3234            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 3235            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 3236            /// <param name="proposedLeaseId">Proposed lease ID, in a GUID string format. The Blob service returns 400 (
 3237            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 3238            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 3239            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 3240            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 3241            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 3242            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 3243            /// <param name="operationName">Operation name.</param>
 3244            /// <param name="cancellationToken">Cancellation token.</param>
 3245            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobLease}</returns>
 3246            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobLease>> C
 3247                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 3248                Azure.Core.Pipeline.HttpPipeline pipeline,
 3249                System.Uri resourceUri,
 3250                string leaseId,
 3251                string proposedLeaseId,
 3252                string version,
 3253                int? timeout = default,
 3254                System.DateTimeOffset? ifModifiedSince = default,
 3255                System.DateTimeOffset? ifUnmodifiedSince = default,
 3256                string requestId = default,
 3257                bool async = true,
 3258                string operationName = "ContainerClient.ChangeLease",
 3259                System.Threading.CancellationToken cancellationToken = default)
 3260            {
 3261                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 3262                try
 3263                {
 3264                    _scope.AddAttribute("url", resourceUri);
 3265                    _scope.Start();
 3266                    using (Azure.Core.HttpMessage _message = ChangeLeaseAsync_CreateMessage(
 3267                        pipeline,
 3268                        resourceUri,
 3269                        leaseId,
 3270                        proposedLeaseId,
 3271                        version,
 3272                        timeout,
 3273                        ifModifiedSince,
 3274                        ifUnmodifiedSince,
 3275                        requestId))
 3276                    {
 3277                        if (async)
 3278                        {
 3279                            // Send the request asynchronously if we're being called via an async path
 3280                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 3281                        }
 3282                        else
 3283                        {
 3284                            // Send the request synchronously through the API that blocks if we're being called via a sy
 3285                            // (this is safe because the Task will complete before the user can call Wait)
 3286                            pipeline.Send(_message, cancellationToken);
 3287                        }
 3288                        Azure.Response _response = _message.Response;
 3289                        cancellationToken.ThrowIfCancellationRequested();
 3290                        return ChangeLeaseAsync_CreateResponse(clientDiagnostics, _response);
 3291                    }
 3292                }
 3293                catch (System.Exception ex)
 3294                {
 3295                    _scope.Failed(ex);
 3296                    throw;
 3297                }
 3298                finally
 3299                {
 3300                    _scope.Dispose();
 3301                }
 3302            }
 3303
 3304            /// <summary>
 3305            /// Create the Container.ChangeLeaseAsync request.
 3306            /// </summary>
 3307            /// <param name="pipeline">The pipeline used for sending requests.</param>
 3308            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 3309            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 3310            /// <param name="proposedLeaseId">Proposed lease ID, in a GUID string format. The Blob service returns 400 (
 3311            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 3312            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 3313            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 3314            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 3315            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 3316            /// <returns>The Container.ChangeLeaseAsync Message.</returns>
 3317            internal static Azure.Core.HttpMessage ChangeLeaseAsync_CreateMessage(
 3318                Azure.Core.Pipeline.HttpPipeline pipeline,
 3319                System.Uri resourceUri,
 3320                string leaseId,
 3321                string proposedLeaseId,
 3322                string version,
 3323                int? timeout = default,
 3324                System.DateTimeOffset? ifModifiedSince = default,
 3325                System.DateTimeOffset? ifUnmodifiedSince = default,
 3326                string requestId = default)
 3327            {
 3328                // Validation
 3329                if (resourceUri == null)
 3330                {
 3331                    throw new System.ArgumentNullException(nameof(resourceUri));
 3332                }
 3333                if (leaseId == null)
 3334                {
 3335                    throw new System.ArgumentNullException(nameof(leaseId));
 3336                }
 3337                if (proposedLeaseId == null)
 3338                {
 3339                    throw new System.ArgumentNullException(nameof(proposedLeaseId));
 3340                }
 3341                if (version == null)
 3342                {
 3343                    throw new System.ArgumentNullException(nameof(version));
 3344                }
 3345
 3346                // Create the request
 3347                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 3348                Azure.Core.Request _request = _message.Request;
 3349
 3350                // Set the endpoint
 3351                _request.Method = Azure.Core.RequestMethod.Put;
 3352                _request.Uri.Reset(resourceUri);
 3353                _request.Uri.AppendQuery("comp", "lease", escapeValue: false);
 3354                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 3355                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 3356
 3357                // Add request headers
 3358                _request.Headers.SetValue("x-ms-lease-action", "change");
 3359                _request.Headers.SetValue("x-ms-lease-id", leaseId);
 3360                _request.Headers.SetValue("x-ms-proposed-lease-id", proposedLeaseId);
 3361                _request.Headers.SetValue("x-ms-version", version);
 3362                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 3363                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 3364                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 3365
 3366                return _message;
 3367            }
 3368
 3369            /// <summary>
 3370            /// Create the Container.ChangeLeaseAsync response or throw a failure exception.
 3371            /// </summary>
 3372            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 3373            /// <param name="response">The raw Response.</param>
 3374            /// <returns>The Container.ChangeLeaseAsync Azure.Response{Azure.Storage.Blobs.Models.BlobLease}.</returns>
 3375            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobLease> ChangeLeaseAsync_CreateResponse(
 3376                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 3377                Azure.Response response)
 3378            {
 3379                // Process the response
 3380                switch (response.Status)
 3381                {
 3382                    case 200:
 3383                    {
 3384                        // Create the result
 3385                        Azure.Storage.Blobs.Models.BlobLease _value = new Azure.Storage.Blobs.Models.BlobLease();
 3386
 3387                        // Get response headers
 3388                        string _header;
 3389                        if (response.Headers.TryGetValue("ETag", out _header))
 3390                        {
 3391                            _value.ETag = new Azure.ETag(_header);
 3392                        }
 3393                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 3394                        {
 3395                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 3396                        }
 3397                        if (response.Headers.TryGetValue("x-ms-lease-id", out _header))
 3398                        {
 3399                            _value.LeaseId = _header;
 3400                        }
 3401
 3402                        // Create the response
 3403                        return Response.FromValue(_value, response);
 3404                    }
 3405                    default:
 3406                    {
 3407                        // Create the result
 3408                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 3409                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 3410
 3411                        throw _value.CreateException(clientDiagnostics, response);
 3412                    }
 3413                }
 3414            }
 3415            #endregion Container.ChangeLeaseAsync
 3416
 3417            #region Container.ListBlobsFlatSegmentAsync
 3418            /// <summary>
 3419            /// [Update] The List Blobs operation returns a list of the blobs under the specified container
 3420            /// </summary>
 3421            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 3422            /// <param name="pipeline">The pipeline used for sending requests.</param>
 3423            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 3424            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 3425            /// <param name="prefix">Filters the results to return only containers whose name begins with the specified 
 3426            /// <param name="marker">A string value that identifies the portion of the list of containers to be returned
 3427            /// <param name="maxresults">Specifies the maximum number of containers to return. If the request does not s
 3428            /// <param name="include">Include this parameter to specify one or more datasets to include in the response.
 3429            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 3430            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 3431            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 3432            /// <param name="operationName">Operation name.</param>
 3433            /// <param name="cancellationToken">Cancellation token.</param>
 3434            /// <returns>An enumeration of blobs</returns>
 3435            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobsFlatSegm
 3436                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 3437                Azure.Core.Pipeline.HttpPipeline pipeline,
 3438                System.Uri resourceUri,
 3439                string version,
 3440                string prefix = default,
 3441                string marker = default,
 3442                int? maxresults = default,
 3443                System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.ListBlobsIncludeItem> include = defaul
 3444                int? timeout = default,
 3445                string requestId = default,
 3446                bool async = true,
 3447                string operationName = "ContainerClient.ListBlobsFlatSegment",
 3448                System.Threading.CancellationToken cancellationToken = default)
 3449            {
 3450                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 3451                try
 3452                {
 3453                    _scope.AddAttribute("url", resourceUri);
 3454                    _scope.Start();
 3455                    using (Azure.Core.HttpMessage _message = ListBlobsFlatSegmentAsync_CreateMessage(
 3456                        pipeline,
 3457                        resourceUri,
 3458                        version,
 3459                        prefix,
 3460                        marker,
 3461                        maxresults,
 3462                        include,
 3463                        timeout,
 3464                        requestId))
 3465                    {
 3466                        if (async)
 3467                        {
 3468                            // Send the request asynchronously if we're being called via an async path
 3469                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 3470                        }
 3471                        else
 3472                        {
 3473                            // Send the request synchronously through the API that blocks if we're being called via a sy
 3474                            // (this is safe because the Task will complete before the user can call Wait)
 3475                            pipeline.Send(_message, cancellationToken);
 3476                        }
 3477                        Azure.Response _response = _message.Response;
 3478                        cancellationToken.ThrowIfCancellationRequested();
 3479                        return ListBlobsFlatSegmentAsync_CreateResponse(clientDiagnostics, _response);
 3480                    }
 3481                }
 3482                catch (System.Exception ex)
 3483                {
 3484                    _scope.Failed(ex);
 3485                    throw;
 3486                }
 3487                finally
 3488                {
 3489                    _scope.Dispose();
 3490                }
 3491            }
 3492
 3493            /// <summary>
 3494            /// Create the Container.ListBlobsFlatSegmentAsync request.
 3495            /// </summary>
 3496            /// <param name="pipeline">The pipeline used for sending requests.</param>
 3497            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 3498            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 3499            /// <param name="prefix">Filters the results to return only containers whose name begins with the specified 
 3500            /// <param name="marker">A string value that identifies the portion of the list of containers to be returned
 3501            /// <param name="maxresults">Specifies the maximum number of containers to return. If the request does not s
 3502            /// <param name="include">Include this parameter to specify one or more datasets to include in the response.
 3503            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 3504            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 3505            /// <returns>The Container.ListBlobsFlatSegmentAsync Message.</returns>
 3506            internal static Azure.Core.HttpMessage ListBlobsFlatSegmentAsync_CreateMessage(
 3507                Azure.Core.Pipeline.HttpPipeline pipeline,
 3508                System.Uri resourceUri,
 3509                string version,
 3510                string prefix = default,
 3511                string marker = default,
 3512                int? maxresults = default,
 3513                System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.ListBlobsIncludeItem> include = defaul
 3514                int? timeout = default,
 3515                string requestId = default)
 3516            {
 3517                // Validation
 3518                if (resourceUri == null)
 3519                {
 3520                    throw new System.ArgumentNullException(nameof(resourceUri));
 3521                }
 3522                if (version == null)
 3523                {
 3524                    throw new System.ArgumentNullException(nameof(version));
 3525                }
 3526
 3527                // Create the request
 3528                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 3529                Azure.Core.Request _request = _message.Request;
 3530
 3531                // Set the endpoint
 3532                _request.Method = Azure.Core.RequestMethod.Get;
 3533                _request.Uri.Reset(resourceUri);
 3534                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 3535                _request.Uri.AppendQuery("comp", "list", escapeValue: false);
 3536                if (prefix != null) { _request.Uri.AppendQuery("prefix", prefix); }
 3537                if (marker != null) { _request.Uri.AppendQuery("marker", marker); }
 3538                if (maxresults != null) { _request.Uri.AppendQuery("maxresults", maxresults.Value.ToString(System.Global
 3539                if (include != null) { _request.Uri.AppendQuery("include", string.Join(",", System.Linq.Enumerable.Selec
 3540                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 3541
 3542                // Add request headers
 3543                _request.Headers.SetValue("x-ms-version", version);
 3544                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 3545
 3546                return _message;
 3547            }
 3548
 3549            /// <summary>
 3550            /// Create the Container.ListBlobsFlatSegmentAsync response or throw a failure exception.
 3551            /// </summary>
 3552            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 3553            /// <param name="response">The raw Response.</param>
 3554            /// <returns>The Container.ListBlobsFlatSegmentAsync Azure.Response{Azure.Storage.Blobs.Models.BlobsFlatSegm
 3555            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobsFlatSegment> ListBlobsFlatSegmentAsync_Create
 3556                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 3557                Azure.Response response)
 3558            {
 3559                // Process the response
 3560                switch (response.Status)
 3561                {
 3562                    case 200:
 3563                    {
 3564                        // Create the result
 3565                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 3566                        Azure.Storage.Blobs.Models.BlobsFlatSegment _value = Azure.Storage.Blobs.Models.BlobsFlatSegment
 3567
 3568                        // Create the response
 3569                        return Response.FromValue(_value, response);
 3570                    }
 3571                    case 304:
 3572                    {
 3573                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.BlobsFlatSegment>(response);
 3574                    }
 3575                    default:
 3576                    {
 3577                        // Create the result
 3578                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 3579                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 3580
 3581                        throw _value.CreateException(clientDiagnostics, response);
 3582                    }
 3583                }
 3584            }
 3585            #endregion Container.ListBlobsFlatSegmentAsync
 3586
 3587            #region Container.ListBlobsHierarchySegmentAsync
 3588            /// <summary>
 3589            /// [Update] The List Blobs operation returns a list of the blobs under the specified container
 3590            /// </summary>
 3591            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 3592            /// <param name="pipeline">The pipeline used for sending requests.</param>
 3593            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 3594            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 3595            /// <param name="prefix">Filters the results to return only containers whose name begins with the specified 
 3596            /// <param name="delimiter">When the request includes this parameter, the operation returns a BlobPrefix ele
 3597            /// <param name="marker">A string value that identifies the portion of the list of containers to be returned
 3598            /// <param name="maxresults">Specifies the maximum number of containers to return. If the request does not s
 3599            /// <param name="include">Include this parameter to specify one or more datasets to include in the response.
 3600            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 3601            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 3602            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 3603            /// <param name="operationName">Operation name.</param>
 3604            /// <param name="cancellationToken">Cancellation token.</param>
 3605            /// <returns>An enumeration of blobs</returns>
 3606            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobsHierarch
 3607                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 3608                Azure.Core.Pipeline.HttpPipeline pipeline,
 3609                System.Uri resourceUri,
 3610                string version,
 3611                string prefix = default,
 3612                string delimiter = default,
 3613                string marker = default,
 3614                int? maxresults = default,
 3615                System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.ListBlobsIncludeItem> include = defaul
 3616                int? timeout = default,
 3617                string requestId = default,
 3618                bool async = true,
 3619                string operationName = "ContainerClient.ListBlobsHierarchySegment",
 3620                System.Threading.CancellationToken cancellationToken = default)
 3621            {
 3622                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 3623                try
 3624                {
 3625                    _scope.AddAttribute("url", resourceUri);
 3626                    _scope.Start();
 3627                    using (Azure.Core.HttpMessage _message = ListBlobsHierarchySegmentAsync_CreateMessage(
 3628                        pipeline,
 3629                        resourceUri,
 3630                        version,
 3631                        prefix,
 3632                        delimiter,
 3633                        marker,
 3634                        maxresults,
 3635                        include,
 3636                        timeout,
 3637                        requestId))
 3638                    {
 3639                        if (async)
 3640                        {
 3641                            // Send the request asynchronously if we're being called via an async path
 3642                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 3643                        }
 3644                        else
 3645                        {
 3646                            // Send the request synchronously through the API that blocks if we're being called via a sy
 3647                            // (this is safe because the Task will complete before the user can call Wait)
 3648                            pipeline.Send(_message, cancellationToken);
 3649                        }
 3650                        Azure.Response _response = _message.Response;
 3651                        cancellationToken.ThrowIfCancellationRequested();
 3652                        return ListBlobsHierarchySegmentAsync_CreateResponse(clientDiagnostics, _response);
 3653                    }
 3654                }
 3655                catch (System.Exception ex)
 3656                {
 3657                    _scope.Failed(ex);
 3658                    throw;
 3659                }
 3660                finally
 3661                {
 3662                    _scope.Dispose();
 3663                }
 3664            }
 3665
 3666            /// <summary>
 3667            /// Create the Container.ListBlobsHierarchySegmentAsync request.
 3668            /// </summary>
 3669            /// <param name="pipeline">The pipeline used for sending requests.</param>
 3670            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 3671            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 3672            /// <param name="prefix">Filters the results to return only containers whose name begins with the specified 
 3673            /// <param name="delimiter">When the request includes this parameter, the operation returns a BlobPrefix ele
 3674            /// <param name="marker">A string value that identifies the portion of the list of containers to be returned
 3675            /// <param name="maxresults">Specifies the maximum number of containers to return. If the request does not s
 3676            /// <param name="include">Include this parameter to specify one or more datasets to include in the response.
 3677            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 3678            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 3679            /// <returns>The Container.ListBlobsHierarchySegmentAsync Message.</returns>
 3680            internal static Azure.Core.HttpMessage ListBlobsHierarchySegmentAsync_CreateMessage(
 3681                Azure.Core.Pipeline.HttpPipeline pipeline,
 3682                System.Uri resourceUri,
 3683                string version,
 3684                string prefix = default,
 3685                string delimiter = default,
 3686                string marker = default,
 3687                int? maxresults = default,
 3688                System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.ListBlobsIncludeItem> include = defaul
 3689                int? timeout = default,
 3690                string requestId = default)
 3691            {
 3692                // Validation
 3693                if (resourceUri == null)
 3694                {
 3695                    throw new System.ArgumentNullException(nameof(resourceUri));
 3696                }
 3697                if (version == null)
 3698                {
 3699                    throw new System.ArgumentNullException(nameof(version));
 3700                }
 3701
 3702                // Create the request
 3703                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 3704                Azure.Core.Request _request = _message.Request;
 3705
 3706                // Set the endpoint
 3707                _request.Method = Azure.Core.RequestMethod.Get;
 3708                _request.Uri.Reset(resourceUri);
 3709                _request.Uri.AppendQuery("restype", "container", escapeValue: false);
 3710                _request.Uri.AppendQuery("comp", "list", escapeValue: false);
 3711                if (prefix != null) { _request.Uri.AppendQuery("prefix", prefix); }
 3712                if (delimiter != null) { _request.Uri.AppendQuery("delimiter", delimiter); }
 3713                if (marker != null) { _request.Uri.AppendQuery("marker", marker); }
 3714                if (maxresults != null) { _request.Uri.AppendQuery("maxresults", maxresults.Value.ToString(System.Global
 3715                if (include != null) { _request.Uri.AppendQuery("include", string.Join(",", System.Linq.Enumerable.Selec
 3716                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 3717
 3718                // Add request headers
 3719                _request.Headers.SetValue("x-ms-version", version);
 3720                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 3721
 3722                return _message;
 3723            }
 3724
 3725            /// <summary>
 3726            /// Create the Container.ListBlobsHierarchySegmentAsync response or throw a failure exception.
 3727            /// </summary>
 3728            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 3729            /// <param name="response">The raw Response.</param>
 3730            /// <returns>The Container.ListBlobsHierarchySegmentAsync Azure.Response{Azure.Storage.Blobs.Models.BlobsHie
 3731            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobsHierarchySegment> ListBlobsHierarchySegmentAs
 3732                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 3733                Azure.Response response)
 3734            {
 3735                // Process the response
 3736                switch (response.Status)
 3737                {
 3738                    case 200:
 3739                    {
 3740                        // Create the result
 3741                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 3742                        Azure.Storage.Blobs.Models.BlobsHierarchySegment _value = Azure.Storage.Blobs.Models.BlobsHierar
 3743
 3744                        // Create the response
 3745                        return Response.FromValue(_value, response);
 3746                    }
 3747                    case 304:
 3748                    {
 3749                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.BlobsHierarchySegment>(response);
 3750                    }
 3751                    default:
 3752                    {
 3753                        // Create the result
 3754                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 3755                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 3756
 3757                        throw _value.CreateException(clientDiagnostics, response);
 3758                    }
 3759                }
 3760            }
 3761            #endregion Container.ListBlobsHierarchySegmentAsync
 3762        }
 3763        #endregion Container operations
 3764
 3765        #region Blob operations
 3766        /// <summary>
 3767        /// Blob operations for Azure Blob Storage
 3768        /// </summary>
 3769        public static partial class Blob
 3770        {
 3771            #region Blob.DownloadAsync
 3772            /// <summary>
 3773            /// The Download operation reads or downloads a blob from the system, including its metadata and properties.
 3774            /// </summary>
 3775            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 3776            /// <param name="pipeline">The pipeline used for sending requests.</param>
 3777            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 3778            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 3779            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 3780            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 3781            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 3782            /// <param name="range">Return only the bytes of the blob in the specified range.</param>
 3783            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 3784            /// <param name="rangeGetContentHash">When set to true and specified together with the Range, the service re
 3785            /// <param name="rangeGetContentCRC64">When set to true and specified together with the Range, the service r
 3786            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 3787            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 3788            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 3789            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 3790            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 3791            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 3792            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 3793            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 3794            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 3795            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 3796            /// <param name="operationName">Operation name.</param>
 3797            /// <param name="cancellationToken">Cancellation token.</param>
 3798            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.FlattenedDownloadProperties}</returns>
 3799            public static async System.Threading.Tasks.ValueTask<(Azure.Response<Azure.Storage.Blobs.Models.FlattenedDow
 3800                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 3801                Azure.Core.Pipeline.HttpPipeline pipeline,
 3802                System.Uri resourceUri,
 3803                string version,
 3804                string snapshot = default,
 3805                string versionId = default,
 3806                int? timeout = default,
 3807                string range = default,
 3808                string leaseId = default,
 3809                bool? rangeGetContentHash = default,
 3810                bool? rangeGetContentCRC64 = default,
 3811                string encryptionKey = default,
 3812                string encryptionKeySha256 = default,
 3813                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 3814                System.DateTimeOffset? ifModifiedSince = default,
 3815                System.DateTimeOffset? ifUnmodifiedSince = default,
 3816                Azure.ETag? ifMatch = default,
 3817                Azure.ETag? ifNoneMatch = default,
 3818                string ifTags = default,
 3819                string requestId = default,
 3820                bool async = true,
 3821                string operationName = "BlobClient.Download",
 3822                System.Threading.CancellationToken cancellationToken = default)
 3823            {
 3824                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 3825                try
 3826                {
 3827                    _scope.AddAttribute("url", resourceUri);
 3828                    _scope.Start();
 3829                    using (Azure.Core.HttpMessage _message = DownloadAsync_CreateMessage(
 3830                        pipeline,
 3831                        resourceUri,
 3832                        version,
 3833                        snapshot,
 3834                        versionId,
 3835                        timeout,
 3836                        range,
 3837                        leaseId,
 3838                        rangeGetContentHash,
 3839                        rangeGetContentCRC64,
 3840                        encryptionKey,
 3841                        encryptionKeySha256,
 3842                        encryptionAlgorithm,
 3843                        ifModifiedSince,
 3844                        ifUnmodifiedSince,
 3845                        ifMatch,
 3846                        ifNoneMatch,
 3847                        ifTags,
 3848                        requestId))
 3849                    {
 3850                        // Avoid buffering if stream is going to be returned to the caller
 3851                        _message.BufferResponse = false;
 3852                        if (async)
 3853                        {
 3854                            // Send the request asynchronously if we're being called via an async path
 3855                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 3856                        }
 3857                        else
 3858                        {
 3859                            // Send the request synchronously through the API that blocks if we're being called via a sy
 3860                            // (this is safe because the Task will complete before the user can call Wait)
 3861                            pipeline.Send(_message, cancellationToken);
 3862                        }
 3863                        Azure.Response _response = _message.Response;
 3864                        cancellationToken.ThrowIfCancellationRequested();
 3865                        return (DownloadAsync_CreateResponse(clientDiagnostics, _response), _message.ExtractResponseCont
 3866                    }
 3867                }
 3868                catch (System.Exception ex)
 3869                {
 3870                    _scope.Failed(ex);
 3871                    throw;
 3872                }
 3873                finally
 3874                {
 3875                    _scope.Dispose();
 3876                }
 3877            }
 3878
 3879            /// <summary>
 3880            /// Create the Blob.DownloadAsync request.
 3881            /// </summary>
 3882            /// <param name="pipeline">The pipeline used for sending requests.</param>
 3883            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 3884            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 3885            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 3886            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 3887            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 3888            /// <param name="range">Return only the bytes of the blob in the specified range.</param>
 3889            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 3890            /// <param name="rangeGetContentHash">When set to true and specified together with the Range, the service re
 3891            /// <param name="rangeGetContentCRC64">When set to true and specified together with the Range, the service r
 3892            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 3893            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 3894            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 3895            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 3896            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 3897            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 3898            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 3899            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 3900            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 3901            /// <returns>The Blob.DownloadAsync Message.</returns>
 3902            internal static Azure.Core.HttpMessage DownloadAsync_CreateMessage(
 3903                Azure.Core.Pipeline.HttpPipeline pipeline,
 3904                System.Uri resourceUri,
 3905                string version,
 3906                string snapshot = default,
 3907                string versionId = default,
 3908                int? timeout = default,
 3909                string range = default,
 3910                string leaseId = default,
 3911                bool? rangeGetContentHash = default,
 3912                bool? rangeGetContentCRC64 = default,
 3913                string encryptionKey = default,
 3914                string encryptionKeySha256 = default,
 3915                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 3916                System.DateTimeOffset? ifModifiedSince = default,
 3917                System.DateTimeOffset? ifUnmodifiedSince = default,
 3918                Azure.ETag? ifMatch = default,
 3919                Azure.ETag? ifNoneMatch = default,
 3920                string ifTags = default,
 3921                string requestId = default)
 3922            {
 3923                // Validation
 3924                if (resourceUri == null)
 3925                {
 3926                    throw new System.ArgumentNullException(nameof(resourceUri));
 3927                }
 3928                if (version == null)
 3929                {
 3930                    throw new System.ArgumentNullException(nameof(version));
 3931                }
 3932
 3933                // Create the request
 3934                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 3935                Azure.Core.Request _request = _message.Request;
 3936
 3937                // Set the endpoint
 3938                _request.Method = Azure.Core.RequestMethod.Get;
 3939                _request.Uri.Reset(resourceUri);
 3940                if (snapshot != null) { _request.Uri.AppendQuery("snapshot", snapshot); }
 3941                if (versionId != null) { _request.Uri.AppendQuery("versionid", versionId); }
 3942                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 3943
 3944                // Add request headers
 3945                _request.Headers.SetValue("x-ms-version", version);
 3946                if (range != null) { _request.Headers.SetValue("x-ms-range", range); }
 3947                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 3948                if (rangeGetContentHash != null) {
 3949                #pragma warning disable CA1308 // Normalize strings to uppercase
 3950                _request.Headers.SetValue("x-ms-range-get-content-md5", rangeGetContentHash.Value.ToString(System.Global
 3951                #pragma warning restore CA1308 // Normalize strings to uppercase
 3952                }
 3953                if (rangeGetContentCRC64 != null) {
 3954                #pragma warning disable CA1308 // Normalize strings to uppercase
 3955                _request.Headers.SetValue("x-ms-range-get-content-crc64", rangeGetContentCRC64.Value.ToString(System.Glo
 3956                #pragma warning restore CA1308 // Normalize strings to uppercase
 3957                }
 3958                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 3959                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 3960                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 3961                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 3962                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 3963                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 3964                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 3965                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 3966                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 3967
 3968                return _message;
 3969            }
 3970
 3971            /// <summary>
 3972            /// Create the Blob.DownloadAsync response or throw a failure exception.
 3973            /// </summary>
 3974            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 3975            /// <param name="response">The raw Response.</param>
 3976            /// <returns>The Blob.DownloadAsync Azure.Response{Azure.Storage.Blobs.Models.FlattenedDownloadProperties}.<
 3977            internal static Azure.Response<Azure.Storage.Blobs.Models.FlattenedDownloadProperties> DownloadAsync_CreateR
 3978                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 3979                Azure.Response response)
 3980            {
 3981                // Process the response
 3982                switch (response.Status)
 3983                {
 3984                    case 200:
 3985                    {
 3986                        // Create the result
 3987                        Azure.Storage.Blobs.Models.FlattenedDownloadProperties _value = new Azure.Storage.Blobs.Models.F
 3988                        _value.Content = response.ContentStream; // You should manually wrap with RetriableStream!
 3989
 3990                        // Get response headers
 3991                        string _header;
 3992                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 3993                        {
 3994                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 3995                        }
 3996                        _value.Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringCompare
 3997                        foreach (Azure.Core.HttpHeader _headerPair in response.Headers)
 3998                        {
 3999                            if (_headerPair.Name.StartsWith("x-ms-meta-", System.StringComparison.InvariantCulture))
 4000                            {
 4001                                _value.Metadata[_headerPair.Name.Substring(10)] = _headerPair.Value;
 4002                            }
 4003                        }
 4004                        if (response.Headers.TryGetValue("x-ms-or-policy-id", out _header))
 4005                        {
 4006                            _value.ObjectReplicationPolicyId = _header;
 4007                        }
 4008                        _value.ObjectReplicationRules = new System.Collections.Generic.Dictionary<string, string>(System
 4009                        foreach (Azure.Core.HttpHeader _headerPair in response.Headers)
 4010                        {
 4011                            if (_headerPair.Name.StartsWith("x-ms-or-", System.StringComparison.InvariantCulture))
 4012                            {
 4013                                _value.ObjectReplicationRules[_headerPair.Name.Substring(8)] = _headerPair.Value;
 4014                            }
 4015                        }
 4016                        if (response.Headers.TryGetValue("Content-Length", out _header))
 4017                        {
 4018                            _value.ContentLength = long.Parse(_header, System.Globalization.CultureInfo.InvariantCulture
 4019                        }
 4020                        if (response.Headers.TryGetValue("Content-Type", out _header))
 4021                        {
 4022                            _value.ContentType = _header;
 4023                        }
 4024                        if (response.Headers.TryGetValue("Content-Range", out _header))
 4025                        {
 4026                            _value.ContentRange = _header;
 4027                        }
 4028                        if (response.Headers.TryGetValue("ETag", out _header))
 4029                        {
 4030                            _value.ETag = new Azure.ETag(_header);
 4031                        }
 4032                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 4033                        {
 4034                            _value.ContentHash = System.Convert.FromBase64String(_header);
 4035                        }
 4036                        if (response.Headers.TryGetValue("Content-Encoding", out _header))
 4037                        {
 4038                            _value.ContentEncoding = _header;
 4039                        }
 4040                        if (response.Headers.TryGetValue("Cache-Control", out _header))
 4041                        {
 4042                            _value.CacheControl = _header;
 4043                        }
 4044                        if (response.Headers.TryGetValue("Content-Disposition", out _header))
 4045                        {
 4046                            _value.ContentDisposition = _header;
 4047                        }
 4048                        if (response.Headers.TryGetValue("Content-Language", out _header))
 4049                        {
 4050                            _value.ContentLanguage = _header;
 4051                        }
 4052                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 4053                        {
 4054                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 4055                        }
 4056                        if (response.Headers.TryGetValue("x-ms-blob-type", out _header))
 4057                        {
 4058                            _value.BlobType = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseBlobType(_header);
 4059                        }
 4060                        if (response.Headers.TryGetValue("x-ms-copy-completion-time", out _header))
 4061                        {
 4062                            _value.CopyCompletionTime = System.DateTimeOffset.Parse(_header, System.Globalization.Cultur
 4063                        }
 4064                        if (response.Headers.TryGetValue("x-ms-copy-status-description", out _header))
 4065                        {
 4066                            _value.CopyStatusDescription = _header;
 4067                        }
 4068                        if (response.Headers.TryGetValue("x-ms-copy-id", out _header))
 4069                        {
 4070                            _value.CopyId = _header;
 4071                        }
 4072                        if (response.Headers.TryGetValue("x-ms-copy-progress", out _header))
 4073                        {
 4074                            _value.CopyProgress = _header;
 4075                        }
 4076                        if (response.Headers.TryGetValue("x-ms-copy-source", out _header))
 4077                        {
 4078                            _value.CopySource = new System.Uri(_header);
 4079                        }
 4080                        if (response.Headers.TryGetValue("x-ms-copy-status", out _header))
 4081                        {
 4082                            _value.CopyStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseCopyStatus(_header
 4083                        }
 4084                        if (response.Headers.TryGetValue("x-ms-lease-duration", out _header))
 4085                        {
 4086                            _value.LeaseDuration = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseDurationTy
 4087                        }
 4088                        if (response.Headers.TryGetValue("x-ms-lease-state", out _header))
 4089                        {
 4090                            _value.LeaseState = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseState(_header
 4091                        }
 4092                        if (response.Headers.TryGetValue("x-ms-lease-status", out _header))
 4093                        {
 4094                            _value.LeaseStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseStatus(_head
 4095                        }
 4096                        if (response.Headers.TryGetValue("x-ms-version-id", out _header))
 4097                        {
 4098                            _value.VersionId = _header;
 4099                        }
 4100                        if (response.Headers.TryGetValue("Accept-Ranges", out _header))
 4101                        {
 4102                            _value.AcceptRanges = _header;
 4103                        }
 4104                        if (response.Headers.TryGetValue("x-ms-blob-committed-block-count", out _header))
 4105                        {
 4106                            _value.BlobCommittedBlockCount = int.Parse(_header, System.Globalization.CultureInfo.Invaria
 4107                        }
 4108                        if (response.Headers.TryGetValue("x-ms-server-encrypted", out _header))
 4109                        {
 4110                            _value.IsServerEncrypted = bool.Parse(_header);
 4111                        }
 4112                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 4113                        {
 4114                            _value.EncryptionKeySha256 = _header;
 4115                        }
 4116                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 4117                        {
 4118                            _value.EncryptionScope = _header;
 4119                        }
 4120                        if (response.Headers.TryGetValue("x-ms-blob-content-md5", out _header))
 4121                        {
 4122                            _value.BlobContentHash = System.Convert.FromBase64String(_header);
 4123                        }
 4124                        if (response.Headers.TryGetValue("x-ms-tag-count", out _header))
 4125                        {
 4126                            _value.TagCount = long.Parse(_header, System.Globalization.CultureInfo.InvariantCulture);
 4127                        }
 4128                        if (response.Headers.TryGetValue("x-ms-blob-sealed", out _header))
 4129                        {
 4130                            _value.IsSealed = bool.Parse(_header);
 4131                        }
 4132
 4133                        // Create the response
 4134                        return Response.FromValue(_value, response);
 4135                    }
 4136                    case 206:
 4137                    {
 4138                        // Create the result
 4139                        Azure.Storage.Blobs.Models.FlattenedDownloadProperties _value = new Azure.Storage.Blobs.Models.F
 4140                        _value.Content = response.ContentStream; // You should manually wrap with RetriableStream!
 4141
 4142                        // Get response headers
 4143                        string _header;
 4144                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 4145                        {
 4146                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 4147                        }
 4148                        _value.Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringCompare
 4149                        foreach (Azure.Core.HttpHeader _headerPair in response.Headers)
 4150                        {
 4151                            if (_headerPair.Name.StartsWith("x-ms-meta-", System.StringComparison.InvariantCulture))
 4152                            {
 4153                                _value.Metadata[_headerPair.Name.Substring(10)] = _headerPair.Value;
 4154                            }
 4155                        }
 4156                        if (response.Headers.TryGetValue("x-ms-or-policy-id", out _header))
 4157                        {
 4158                            _value.ObjectReplicationPolicyId = _header;
 4159                        }
 4160                        _value.ObjectReplicationRules = new System.Collections.Generic.Dictionary<string, string>(System
 4161                        foreach (Azure.Core.HttpHeader _headerPair in response.Headers)
 4162                        {
 4163                            if (_headerPair.Name.StartsWith("x-ms-or-", System.StringComparison.InvariantCulture))
 4164                            {
 4165                                _value.ObjectReplicationRules[_headerPair.Name.Substring(8)] = _headerPair.Value;
 4166                            }
 4167                        }
 4168                        if (response.Headers.TryGetValue("Content-Length", out _header))
 4169                        {
 4170                            _value.ContentLength = long.Parse(_header, System.Globalization.CultureInfo.InvariantCulture
 4171                        }
 4172                        if (response.Headers.TryGetValue("Content-Type", out _header))
 4173                        {
 4174                            _value.ContentType = _header;
 4175                        }
 4176                        if (response.Headers.TryGetValue("Content-Range", out _header))
 4177                        {
 4178                            _value.ContentRange = _header;
 4179                        }
 4180                        if (response.Headers.TryGetValue("ETag", out _header))
 4181                        {
 4182                            _value.ETag = new Azure.ETag(_header);
 4183                        }
 4184                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 4185                        {
 4186                            _value.ContentHash = System.Convert.FromBase64String(_header);
 4187                        }
 4188                        if (response.Headers.TryGetValue("Content-Encoding", out _header))
 4189                        {
 4190                            _value.ContentEncoding = _header;
 4191                        }
 4192                        if (response.Headers.TryGetValue("Cache-Control", out _header))
 4193                        {
 4194                            _value.CacheControl = _header;
 4195                        }
 4196                        if (response.Headers.TryGetValue("Content-Disposition", out _header))
 4197                        {
 4198                            _value.ContentDisposition = _header;
 4199                        }
 4200                        if (response.Headers.TryGetValue("Content-Language", out _header))
 4201                        {
 4202                            _value.ContentLanguage = _header;
 4203                        }
 4204                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 4205                        {
 4206                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 4207                        }
 4208                        if (response.Headers.TryGetValue("x-ms-blob-type", out _header))
 4209                        {
 4210                            _value.BlobType = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseBlobType(_header);
 4211                        }
 4212                        if (response.Headers.TryGetValue("x-ms-content-crc64", out _header))
 4213                        {
 4214                            _value.ContentCrc64 = System.Convert.FromBase64String(_header);
 4215                        }
 4216                        if (response.Headers.TryGetValue("x-ms-copy-completion-time", out _header))
 4217                        {
 4218                            _value.CopyCompletionTime = System.DateTimeOffset.Parse(_header, System.Globalization.Cultur
 4219                        }
 4220                        if (response.Headers.TryGetValue("x-ms-copy-status-description", out _header))
 4221                        {
 4222                            _value.CopyStatusDescription = _header;
 4223                        }
 4224                        if (response.Headers.TryGetValue("x-ms-copy-id", out _header))
 4225                        {
 4226                            _value.CopyId = _header;
 4227                        }
 4228                        if (response.Headers.TryGetValue("x-ms-copy-progress", out _header))
 4229                        {
 4230                            _value.CopyProgress = _header;
 4231                        }
 4232                        if (response.Headers.TryGetValue("x-ms-copy-source", out _header))
 4233                        {
 4234                            _value.CopySource = new System.Uri(_header);
 4235                        }
 4236                        if (response.Headers.TryGetValue("x-ms-copy-status", out _header))
 4237                        {
 4238                            _value.CopyStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseCopyStatus(_header
 4239                        }
 4240                        if (response.Headers.TryGetValue("x-ms-lease-duration", out _header))
 4241                        {
 4242                            _value.LeaseDuration = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseDurationTy
 4243                        }
 4244                        if (response.Headers.TryGetValue("x-ms-lease-state", out _header))
 4245                        {
 4246                            _value.LeaseState = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseState(_header
 4247                        }
 4248                        if (response.Headers.TryGetValue("x-ms-lease-status", out _header))
 4249                        {
 4250                            _value.LeaseStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseStatus(_head
 4251                        }
 4252                        if (response.Headers.TryGetValue("Accept-Ranges", out _header))
 4253                        {
 4254                            _value.AcceptRanges = _header;
 4255                        }
 4256                        if (response.Headers.TryGetValue("x-ms-blob-committed-block-count", out _header))
 4257                        {
 4258                            _value.BlobCommittedBlockCount = int.Parse(_header, System.Globalization.CultureInfo.Invaria
 4259                        }
 4260                        if (response.Headers.TryGetValue("x-ms-server-encrypted", out _header))
 4261                        {
 4262                            _value.IsServerEncrypted = bool.Parse(_header);
 4263                        }
 4264                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 4265                        {
 4266                            _value.EncryptionKeySha256 = _header;
 4267                        }
 4268                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 4269                        {
 4270                            _value.EncryptionScope = _header;
 4271                        }
 4272                        if (response.Headers.TryGetValue("x-ms-blob-content-md5", out _header))
 4273                        {
 4274                            _value.BlobContentHash = System.Convert.FromBase64String(_header);
 4275                        }
 4276                        if (response.Headers.TryGetValue("x-ms-tag-count", out _header))
 4277                        {
 4278                            _value.TagCount = long.Parse(_header, System.Globalization.CultureInfo.InvariantCulture);
 4279                        }
 4280                        if (response.Headers.TryGetValue("x-ms-blob-sealed", out _header))
 4281                        {
 4282                            _value.IsSealed = bool.Parse(_header);
 4283                        }
 4284
 4285                        // Create the response
 4286                        return Response.FromValue(_value, response);
 4287                    }
 4288                    case 304:
 4289                    {
 4290                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.FlattenedDownloadProperties>(response
 4291                    }
 4292                    default:
 4293                    {
 4294                        // Create the result
 4295                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 4296                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 4297
 4298                        throw _value.CreateException(clientDiagnostics, response);
 4299                    }
 4300                }
 4301            }
 4302            #endregion Blob.DownloadAsync
 4303
 4304            #region Blob.GetPropertiesAsync
 4305            /// <summary>
 4306            /// The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system pro
 4307            /// </summary>
 4308            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 4309            /// <param name="pipeline">The pipeline used for sending requests.</param>
 4310            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 4311            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 4312            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 4313            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 4314            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 4315            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 4316            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 4317            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 4318            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 4319            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 4320            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 4321            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 4322            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 4323            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 4324            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 4325            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 4326            /// <param name="operationName">Operation name.</param>
 4327            /// <param name="cancellationToken">Cancellation token.</param>
 4328            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobPropertiesInternal}</returns>
 4329            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobPropertie
 4330                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 4331                Azure.Core.Pipeline.HttpPipeline pipeline,
 4332                System.Uri resourceUri,
 4333                string version,
 4334                string snapshot = default,
 4335                string versionId = default,
 4336                int? timeout = default,
 4337                string leaseId = default,
 4338                string encryptionKey = default,
 4339                string encryptionKeySha256 = default,
 4340                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 4341                System.DateTimeOffset? ifModifiedSince = default,
 4342                System.DateTimeOffset? ifUnmodifiedSince = default,
 4343                Azure.ETag? ifMatch = default,
 4344                Azure.ETag? ifNoneMatch = default,
 4345                string ifTags = default,
 4346                string requestId = default,
 4347                bool async = true,
 4348                string operationName = "BlobClient.GetProperties",
 4349                System.Threading.CancellationToken cancellationToken = default)
 4350            {
 4351                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 4352                try
 4353                {
 4354                    _scope.AddAttribute("url", resourceUri);
 4355                    _scope.Start();
 4356                    using (Azure.Core.HttpMessage _message = GetPropertiesAsync_CreateMessage(
 4357                        pipeline,
 4358                        resourceUri,
 4359                        version,
 4360                        snapshot,
 4361                        versionId,
 4362                        timeout,
 4363                        leaseId,
 4364                        encryptionKey,
 4365                        encryptionKeySha256,
 4366                        encryptionAlgorithm,
 4367                        ifModifiedSince,
 4368                        ifUnmodifiedSince,
 4369                        ifMatch,
 4370                        ifNoneMatch,
 4371                        ifTags,
 4372                        requestId))
 4373                    {
 4374                        if (async)
 4375                        {
 4376                            // Send the request asynchronously if we're being called via an async path
 4377                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 4378                        }
 4379                        else
 4380                        {
 4381                            // Send the request synchronously through the API that blocks if we're being called via a sy
 4382                            // (this is safe because the Task will complete before the user can call Wait)
 4383                            pipeline.Send(_message, cancellationToken);
 4384                        }
 4385                        Azure.Response _response = _message.Response;
 4386                        cancellationToken.ThrowIfCancellationRequested();
 4387                        return GetPropertiesAsync_CreateResponse(clientDiagnostics, _response);
 4388                    }
 4389                }
 4390                catch (System.Exception ex)
 4391                {
 4392                    _scope.Failed(ex);
 4393                    throw;
 4394                }
 4395                finally
 4396                {
 4397                    _scope.Dispose();
 4398                }
 4399            }
 4400
 4401            /// <summary>
 4402            /// Create the Blob.GetPropertiesAsync request.
 4403            /// </summary>
 4404            /// <param name="pipeline">The pipeline used for sending requests.</param>
 4405            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 4406            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 4407            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 4408            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 4409            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 4410            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 4411            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 4412            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 4413            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 4414            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 4415            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 4416            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 4417            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 4418            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 4419            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 4420            /// <returns>The Blob.GetPropertiesAsync Message.</returns>
 4421            internal static Azure.Core.HttpMessage GetPropertiesAsync_CreateMessage(
 4422                Azure.Core.Pipeline.HttpPipeline pipeline,
 4423                System.Uri resourceUri,
 4424                string version,
 4425                string snapshot = default,
 4426                string versionId = default,
 4427                int? timeout = default,
 4428                string leaseId = default,
 4429                string encryptionKey = default,
 4430                string encryptionKeySha256 = default,
 4431                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 4432                System.DateTimeOffset? ifModifiedSince = default,
 4433                System.DateTimeOffset? ifUnmodifiedSince = default,
 4434                Azure.ETag? ifMatch = default,
 4435                Azure.ETag? ifNoneMatch = default,
 4436                string ifTags = default,
 4437                string requestId = default)
 4438            {
 4439                // Validation
 4440                if (resourceUri == null)
 4441                {
 4442                    throw new System.ArgumentNullException(nameof(resourceUri));
 4443                }
 4444                if (version == null)
 4445                {
 4446                    throw new System.ArgumentNullException(nameof(version));
 4447                }
 4448
 4449                // Create the request
 4450                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 4451                Azure.Core.Request _request = _message.Request;
 4452
 4453                // Set the endpoint
 4454                _request.Method = Azure.Core.RequestMethod.Head;
 4455                _request.Uri.Reset(resourceUri);
 4456                if (snapshot != null) { _request.Uri.AppendQuery("snapshot", snapshot); }
 4457                if (versionId != null) { _request.Uri.AppendQuery("versionid", versionId); }
 4458                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 4459
 4460                // Add request headers
 4461                _request.Headers.SetValue("x-ms-version", version);
 4462                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 4463                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 4464                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 4465                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 4466                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 4467                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 4468                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 4469                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 4470                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 4471                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 4472
 4473                return _message;
 4474            }
 4475
 4476            /// <summary>
 4477            /// Create the Blob.GetPropertiesAsync response or throw a failure exception.
 4478            /// </summary>
 4479            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 4480            /// <param name="response">The raw Response.</param>
 4481            /// <returns>The Blob.GetPropertiesAsync Azure.Response{Azure.Storage.Blobs.Models.BlobPropertiesInternal}.<
 4482            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobPropertiesInternal> GetPropertiesAsync_CreateR
 4483                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 4484                Azure.Response response)
 4485            {
 4486                // Process the response
 4487                switch (response.Status)
 4488                {
 4489                    case 200:
 4490                    {
 4491                        // Create the result
 4492                        Azure.Storage.Blobs.Models.BlobPropertiesInternal _value = new Azure.Storage.Blobs.Models.BlobPr
 4493
 4494                        // Get response headers
 4495                        string _header;
 4496                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 4497                        {
 4498                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 4499                        }
 4500                        if (response.Headers.TryGetValue("x-ms-creation-time", out _header))
 4501                        {
 4502                            _value.CreatedOn = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.Inv
 4503                        }
 4504                        _value.Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringCompare
 4505                        foreach (Azure.Core.HttpHeader _headerPair in response.Headers)
 4506                        {
 4507                            if (_headerPair.Name.StartsWith("x-ms-meta-", System.StringComparison.InvariantCulture))
 4508                            {
 4509                                _value.Metadata[_headerPair.Name.Substring(10)] = _headerPair.Value;
 4510                            }
 4511                        }
 4512                        if (response.Headers.TryGetValue("x-ms-or-policy-id", out _header))
 4513                        {
 4514                            _value.ObjectReplicationPolicyId = _header;
 4515                        }
 4516                        _value.ObjectReplicationRules = new System.Collections.Generic.Dictionary<string, string>(System
 4517                        foreach (Azure.Core.HttpHeader _headerPair in response.Headers)
 4518                        {
 4519                            if (_headerPair.Name.StartsWith("x-ms-or-", System.StringComparison.InvariantCulture))
 4520                            {
 4521                                _value.ObjectReplicationRules[_headerPair.Name.Substring(8)] = _headerPair.Value;
 4522                            }
 4523                        }
 4524                        if (response.Headers.TryGetValue("x-ms-blob-type", out _header))
 4525                        {
 4526                            _value.BlobType = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseBlobType(_header);
 4527                        }
 4528                        if (response.Headers.TryGetValue("x-ms-copy-completion-time", out _header))
 4529                        {
 4530                            _value.CopyCompletedOn = System.DateTimeOffset.Parse(_header, System.Globalization.CultureIn
 4531                        }
 4532                        if (response.Headers.TryGetValue("x-ms-copy-status-description", out _header))
 4533                        {
 4534                            _value.CopyStatusDescription = _header;
 4535                        }
 4536                        if (response.Headers.TryGetValue("x-ms-copy-id", out _header))
 4537                        {
 4538                            _value.CopyId = _header;
 4539                        }
 4540                        if (response.Headers.TryGetValue("x-ms-copy-progress", out _header))
 4541                        {
 4542                            _value.CopyProgress = _header;
 4543                        }
 4544                        if (response.Headers.TryGetValue("x-ms-copy-source", out _header))
 4545                        {
 4546                            _value.CopySource = new System.Uri(_header);
 4547                        }
 4548                        if (response.Headers.TryGetValue("x-ms-copy-status", out _header))
 4549                        {
 4550                            _value.CopyStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseCopyStatus(_header
 4551                        }
 4552                        if (response.Headers.TryGetValue("x-ms-incremental-copy", out _header))
 4553                        {
 4554                            _value.IsIncrementalCopy = bool.Parse(_header);
 4555                        }
 4556                        if (response.Headers.TryGetValue("x-ms-copy-destination-snapshot", out _header))
 4557                        {
 4558                            _value.DestinationSnapshot = _header;
 4559                        }
 4560                        if (response.Headers.TryGetValue("x-ms-lease-duration", out _header))
 4561                        {
 4562                            _value.LeaseDuration = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseDurationTy
 4563                        }
 4564                        if (response.Headers.TryGetValue("x-ms-lease-state", out _header))
 4565                        {
 4566                            _value.LeaseState = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseState(_header
 4567                        }
 4568                        if (response.Headers.TryGetValue("x-ms-lease-status", out _header))
 4569                        {
 4570                            _value.LeaseStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseStatus(_head
 4571                        }
 4572                        if (response.Headers.TryGetValue("Content-Length", out _header))
 4573                        {
 4574                            _value.ContentLength = long.Parse(_header, System.Globalization.CultureInfo.InvariantCulture
 4575                        }
 4576                        if (response.Headers.TryGetValue("Content-Type", out _header))
 4577                        {
 4578                            _value.ContentType = _header;
 4579                        }
 4580                        if (response.Headers.TryGetValue("ETag", out _header))
 4581                        {
 4582                            _value.ETag = new Azure.ETag(_header);
 4583                        }
 4584                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 4585                        {
 4586                            _value.ContentHash = System.Convert.FromBase64String(_header);
 4587                        }
 4588                        if (response.Headers.TryGetValue("Content-Encoding", out _header))
 4589                        {
 4590                            _value.ContentEncoding = _header;
 4591                        }
 4592                        if (response.Headers.TryGetValue("Content-Disposition", out _header))
 4593                        {
 4594                            _value.ContentDisposition = _header;
 4595                        }
 4596                        if (response.Headers.TryGetValue("Content-Language", out _header))
 4597                        {
 4598                            _value.ContentLanguage = _header;
 4599                        }
 4600                        if (response.Headers.TryGetValue("Cache-Control", out _header))
 4601                        {
 4602                            _value.CacheControl = _header;
 4603                        }
 4604                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 4605                        {
 4606                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 4607                        }
 4608                        if (response.Headers.TryGetValue("Accept-Ranges", out _header))
 4609                        {
 4610                            _value.AcceptRanges = _header;
 4611                        }
 4612                        if (response.Headers.TryGetValue("x-ms-blob-committed-block-count", out _header))
 4613                        {
 4614                            _value.BlobCommittedBlockCount = int.Parse(_header, System.Globalization.CultureInfo.Invaria
 4615                        }
 4616                        if (response.Headers.TryGetValue("x-ms-server-encrypted", out _header))
 4617                        {
 4618                            _value.IsServerEncrypted = bool.Parse(_header);
 4619                        }
 4620                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 4621                        {
 4622                            _value.EncryptionKeySha256 = _header;
 4623                        }
 4624                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 4625                        {
 4626                            _value.EncryptionScope = _header;
 4627                        }
 4628                        if (response.Headers.TryGetValue("x-ms-access-tier", out _header))
 4629                        {
 4630                            _value.AccessTier = _header;
 4631                        }
 4632                        if (response.Headers.TryGetValue("x-ms-access-tier-inferred", out _header))
 4633                        {
 4634                            _value.AccessTierInferred = bool.Parse(_header);
 4635                        }
 4636                        if (response.Headers.TryGetValue("x-ms-archive-status", out _header))
 4637                        {
 4638                            _value.ArchiveStatus = _header;
 4639                        }
 4640                        if (response.Headers.TryGetValue("x-ms-access-tier-change-time", out _header))
 4641                        {
 4642                            _value.AccessTierChangedOn = System.DateTimeOffset.Parse(_header, System.Globalization.Cultu
 4643                        }
 4644                        if (response.Headers.TryGetValue("x-ms-version-id", out _header))
 4645                        {
 4646                            _value.VersionId = _header;
 4647                        }
 4648                        if (response.Headers.TryGetValue("x-ms-is-current-version", out _header))
 4649                        {
 4650                            _value.IsCurrentVersion = bool.Parse(_header);
 4651                        }
 4652                        if (response.Headers.TryGetValue("x-ms-tag-count", out _header))
 4653                        {
 4654                            _value.TagCount = long.Parse(_header, System.Globalization.CultureInfo.InvariantCulture);
 4655                        }
 4656                        if (response.Headers.TryGetValue("x-ms-expiry-time", out _header))
 4657                        {
 4658                            _value.ExpiresOn = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.Inv
 4659                        }
 4660                        if (response.Headers.TryGetValue("x-ms-blob-sealed", out _header))
 4661                        {
 4662                            _value.IsSealed = bool.Parse(_header);
 4663                        }
 4664                        if (response.Headers.TryGetValue("x-ms-rehydrate-priority", out _header))
 4665                        {
 4666                            _value.RehydratePriority = _header;
 4667                        }
 4668
 4669                        // Create the response
 4670                        return Response.FromValue(_value, response);
 4671                    }
 4672                    case 304:
 4673                    {
 4674                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.BlobPropertiesInternal>(response);
 4675                    }
 4676                    default:
 4677                    {
 4678                        // Create the result
 4679                        Azure.Storage.Blobs.Models.ConditionNotMetError _value = new Azure.Storage.Blobs.Models.Conditio
 4680
 4681                        // Get response headers
 4682                        string _header;
 4683                        if (response.Headers.TryGetValue("x-ms-error-code", out _header))
 4684                        {
 4685                            _value.ErrorCode = _header;
 4686                        }
 4687
 4688                        throw _value.CreateException(clientDiagnostics, response);
 4689                    }
 4690                }
 4691            }
 4692            #endregion Blob.GetPropertiesAsync
 4693
 4694            #region Blob.DeleteAsync
 4695            /// <summary>
 4696            /// If the storage account's soft delete feature is disabled then, when a blob is deleted, it is permanently
 4697            /// </summary>
 4698            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 4699            /// <param name="pipeline">The pipeline used for sending requests.</param>
 4700            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 4701            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 4702            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 4703            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 4704            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 4705            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 4706            /// <param name="deleteSnapshots">Required if the blob has associated snapshots. Specify one of the followin
 4707            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 4708            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 4709            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 4710            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 4711            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 4712            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 4713            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 4714            /// <param name="operationName">Operation name.</param>
 4715            /// <param name="cancellationToken">Cancellation token.</param>
 4716            /// <returns>Azure.Response</returns>
 4717            public static async System.Threading.Tasks.ValueTask<Azure.Response> DeleteAsync(
 4718                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 4719                Azure.Core.Pipeline.HttpPipeline pipeline,
 4720                System.Uri resourceUri,
 4721                string version,
 4722                string snapshot = default,
 4723                string versionId = default,
 4724                int? timeout = default,
 4725                string leaseId = default,
 4726                Azure.Storage.Blobs.Models.DeleteSnapshotsOption? deleteSnapshots = default,
 4727                System.DateTimeOffset? ifModifiedSince = default,
 4728                System.DateTimeOffset? ifUnmodifiedSince = default,
 4729                Azure.ETag? ifMatch = default,
 4730                Azure.ETag? ifNoneMatch = default,
 4731                string ifTags = default,
 4732                string requestId = default,
 4733                bool async = true,
 4734                string operationName = "BlobClient.Delete",
 4735                System.Threading.CancellationToken cancellationToken = default)
 4736            {
 4737                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 4738                try
 4739                {
 4740                    _scope.AddAttribute("url", resourceUri);
 4741                    _scope.Start();
 4742                    using (Azure.Core.HttpMessage _message = DeleteAsync_CreateMessage(
 4743                        pipeline,
 4744                        resourceUri,
 4745                        version,
 4746                        snapshot,
 4747                        versionId,
 4748                        timeout,
 4749                        leaseId,
 4750                        deleteSnapshots,
 4751                        ifModifiedSince,
 4752                        ifUnmodifiedSince,
 4753                        ifMatch,
 4754                        ifNoneMatch,
 4755                        ifTags,
 4756                        requestId))
 4757                    {
 4758                        if (async)
 4759                        {
 4760                            // Send the request asynchronously if we're being called via an async path
 4761                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 4762                        }
 4763                        else
 4764                        {
 4765                            // Send the request synchronously through the API that blocks if we're being called via a sy
 4766                            // (this is safe because the Task will complete before the user can call Wait)
 4767                            pipeline.Send(_message, cancellationToken);
 4768                        }
 4769                        Azure.Response _response = _message.Response;
 4770                        cancellationToken.ThrowIfCancellationRequested();
 4771                        return DeleteAsync_CreateResponse(clientDiagnostics, _response);
 4772                    }
 4773                }
 4774                catch (System.Exception ex)
 4775                {
 4776                    _scope.Failed(ex);
 4777                    throw;
 4778                }
 4779                finally
 4780                {
 4781                    _scope.Dispose();
 4782                }
 4783            }
 4784
 4785            /// <summary>
 4786            /// Create the Blob.DeleteAsync request.
 4787            /// </summary>
 4788            /// <param name="pipeline">The pipeline used for sending requests.</param>
 4789            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 4790            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 4791            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 4792            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 4793            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 4794            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 4795            /// <param name="deleteSnapshots">Required if the blob has associated snapshots. Specify one of the followin
 4796            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 4797            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 4798            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 4799            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 4800            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 4801            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 4802            /// <returns>The Blob.DeleteAsync Message.</returns>
 4803            internal static Azure.Core.HttpMessage DeleteAsync_CreateMessage(
 4804                Azure.Core.Pipeline.HttpPipeline pipeline,
 4805                System.Uri resourceUri,
 4806                string version,
 4807                string snapshot = default,
 4808                string versionId = default,
 4809                int? timeout = default,
 4810                string leaseId = default,
 4811                Azure.Storage.Blobs.Models.DeleteSnapshotsOption? deleteSnapshots = default,
 4812                System.DateTimeOffset? ifModifiedSince = default,
 4813                System.DateTimeOffset? ifUnmodifiedSince = default,
 4814                Azure.ETag? ifMatch = default,
 4815                Azure.ETag? ifNoneMatch = default,
 4816                string ifTags = default,
 4817                string requestId = default)
 4818            {
 4819                // Validation
 4820                if (resourceUri == null)
 4821                {
 4822                    throw new System.ArgumentNullException(nameof(resourceUri));
 4823                }
 4824                if (version == null)
 4825                {
 4826                    throw new System.ArgumentNullException(nameof(version));
 4827                }
 4828
 4829                // Create the request
 4830                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 4831                Azure.Core.Request _request = _message.Request;
 4832
 4833                // Set the endpoint
 4834                _request.Method = Azure.Core.RequestMethod.Delete;
 4835                _request.Uri.Reset(resourceUri);
 4836                if (snapshot != null) { _request.Uri.AppendQuery("snapshot", snapshot); }
 4837                if (versionId != null) { _request.Uri.AppendQuery("versionid", versionId); }
 4838                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 4839
 4840                // Add request headers
 4841                _request.Headers.SetValue("x-ms-version", version);
 4842                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 4843                if (deleteSnapshots != null) { _request.Headers.SetValue("x-ms-delete-snapshots", Azure.Storage.Blobs.Bl
 4844                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 4845                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 4846                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 4847                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 4848                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 4849                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 4850
 4851                return _message;
 4852            }
 4853
 4854            /// <summary>
 4855            /// Create the Blob.DeleteAsync response or throw a failure exception.
 4856            /// </summary>
 4857            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 4858            /// <param name="response">The raw Response.</param>
 4859            /// <returns>The Blob.DeleteAsync Azure.Response.</returns>
 4860            internal static Azure.Response DeleteAsync_CreateResponse(
 4861                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 4862                Azure.Response response)
 4863            {
 4864                // Process the response
 4865                switch (response.Status)
 4866                {
 4867                    case 202:
 4868                    {
 4869                        return response;
 4870                    }
 4871                    default:
 4872                    {
 4873                        // Create the result
 4874                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 4875                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 4876
 4877                        throw _value.CreateException(clientDiagnostics, response);
 4878                    }
 4879                }
 4880            }
 4881            #endregion Blob.DeleteAsync
 4882
 4883            #region Blob.SetAccessControlAsync
 4884            /// <summary>
 4885            /// Set the owner, group, permissions, or access control list for a blob.
 4886            /// </summary>
 4887            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 4888            /// <param name="pipeline">The pipeline used for sending requests.</param>
 4889            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 4890            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 4891            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 4892            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 4893            /// <param name="owner">Optional. The owner of the blob or directory.</param>
 4894            /// <param name="group">Optional. The owning group of the blob or directory.</param>
 4895            /// <param name="posixPermissions">Optional and only valid if Hierarchical Namespace is enabled for the acco
 4896            /// <param name="posixAcl">Sets POSIX access control rights on files and directories. The value is a comma-s
 4897            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 4898            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 4899            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 4900            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 4901            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 4902            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 4903            /// <param name="operationName">Operation name.</param>
 4904            /// <param name="cancellationToken">Cancellation token.</param>
 4905            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobSetAccessControlResult}</returns>
 4906            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobSetAccess
 4907                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 4908                Azure.Core.Pipeline.HttpPipeline pipeline,
 4909                System.Uri resourceUri,
 4910                string version,
 4911                int? timeout = default,
 4912                string leaseId = default,
 4913                string owner = default,
 4914                string group = default,
 4915                string posixPermissions = default,
 4916                string posixAcl = default,
 4917                Azure.ETag? ifMatch = default,
 4918                Azure.ETag? ifNoneMatch = default,
 4919                System.DateTimeOffset? ifModifiedSince = default,
 4920                System.DateTimeOffset? ifUnmodifiedSince = default,
 4921                string requestId = default,
 4922                bool async = true,
 4923                string operationName = "BlobClient.SetAccessControl",
 4924                System.Threading.CancellationToken cancellationToken = default)
 4925            {
 4926                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 4927                try
 4928                {
 4929                    _scope.AddAttribute("url", resourceUri);
 4930                    _scope.Start();
 4931                    using (Azure.Core.HttpMessage _message = SetAccessControlAsync_CreateMessage(
 4932                        pipeline,
 4933                        resourceUri,
 4934                        version,
 4935                        timeout,
 4936                        leaseId,
 4937                        owner,
 4938                        group,
 4939                        posixPermissions,
 4940                        posixAcl,
 4941                        ifMatch,
 4942                        ifNoneMatch,
 4943                        ifModifiedSince,
 4944                        ifUnmodifiedSince,
 4945                        requestId))
 4946                    {
 4947                        if (async)
 4948                        {
 4949                            // Send the request asynchronously if we're being called via an async path
 4950                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 4951                        }
 4952                        else
 4953                        {
 4954                            // Send the request synchronously through the API that blocks if we're being called via a sy
 4955                            // (this is safe because the Task will complete before the user can call Wait)
 4956                            pipeline.Send(_message, cancellationToken);
 4957                        }
 4958                        Azure.Response _response = _message.Response;
 4959                        cancellationToken.ThrowIfCancellationRequested();
 4960                        return SetAccessControlAsync_CreateResponse(clientDiagnostics, _response);
 4961                    }
 4962                }
 4963                catch (System.Exception ex)
 4964                {
 4965                    _scope.Failed(ex);
 4966                    throw;
 4967                }
 4968                finally
 4969                {
 4970                    _scope.Dispose();
 4971                }
 4972            }
 4973
 4974            /// <summary>
 4975            /// Create the Blob.SetAccessControlAsync request.
 4976            /// </summary>
 4977            /// <param name="pipeline">The pipeline used for sending requests.</param>
 4978            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 4979            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 4980            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 4981            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 4982            /// <param name="owner">Optional. The owner of the blob or directory.</param>
 4983            /// <param name="group">Optional. The owning group of the blob or directory.</param>
 4984            /// <param name="posixPermissions">Optional and only valid if Hierarchical Namespace is enabled for the acco
 4985            /// <param name="posixAcl">Sets POSIX access control rights on files and directories. The value is a comma-s
 4986            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 4987            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 4988            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 4989            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 4990            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 4991            /// <returns>The Blob.SetAccessControlAsync Message.</returns>
 4992            internal static Azure.Core.HttpMessage SetAccessControlAsync_CreateMessage(
 4993                Azure.Core.Pipeline.HttpPipeline pipeline,
 4994                System.Uri resourceUri,
 4995                string version,
 4996                int? timeout = default,
 4997                string leaseId = default,
 4998                string owner = default,
 4999                string group = default,
 5000                string posixPermissions = default,
 5001                string posixAcl = default,
 5002                Azure.ETag? ifMatch = default,
 5003                Azure.ETag? ifNoneMatch = default,
 5004                System.DateTimeOffset? ifModifiedSince = default,
 5005                System.DateTimeOffset? ifUnmodifiedSince = default,
 5006                string requestId = default)
 5007            {
 5008                // Validation
 5009                if (resourceUri == null)
 5010                {
 5011                    throw new System.ArgumentNullException(nameof(resourceUri));
 5012                }
 5013                if (version == null)
 5014                {
 5015                    throw new System.ArgumentNullException(nameof(version));
 5016                }
 5017
 5018                // Create the request
 5019                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 5020                Azure.Core.Request _request = _message.Request;
 5021
 5022                // Set the endpoint
 5023                _request.Method = Azure.Core.RequestMethod.Patch;
 5024                _request.Uri.Reset(resourceUri);
 5025                _request.Uri.AppendQuery("action", "setAccessControl", escapeValue: false);
 5026                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 5027
 5028                // Add request headers
 5029                _request.Headers.SetValue("x-ms-version", version);
 5030                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 5031                if (owner != null) { _request.Headers.SetValue("x-ms-owner", owner); }
 5032                if (group != null) { _request.Headers.SetValue("x-ms-group", group); }
 5033                if (posixPermissions != null) { _request.Headers.SetValue("x-ms-permissions", posixPermissions); }
 5034                if (posixAcl != null) { _request.Headers.SetValue("x-ms-acl", posixAcl); }
 5035                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 5036                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 5037                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 5038                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 5039                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 5040
 5041                return _message;
 5042            }
 5043
 5044            /// <summary>
 5045            /// Create the Blob.SetAccessControlAsync response or throw a failure exception.
 5046            /// </summary>
 5047            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 5048            /// <param name="response">The raw Response.</param>
 5049            /// <returns>The Blob.SetAccessControlAsync Azure.Response{Azure.Storage.Blobs.Models.BlobSetAccessControlRe
 5050            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobSetAccessControlResult> SetAccessControlAsync_
 5051                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 5052                Azure.Response response)
 5053            {
 5054                // Process the response
 5055                switch (response.Status)
 5056                {
 5057                    case 200:
 5058                    {
 5059                        // Create the result
 5060                        Azure.Storage.Blobs.Models.BlobSetAccessControlResult _value = new Azure.Storage.Blobs.Models.Bl
 5061
 5062                        // Get response headers
 5063                        string _header;
 5064                        if (response.Headers.TryGetValue("ETag", out _header))
 5065                        {
 5066                            _value.ETag = new Azure.ETag(_header);
 5067                        }
 5068                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 5069                        {
 5070                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 5071                        }
 5072
 5073                        // Create the response
 5074                        return Response.FromValue(_value, response);
 5075                    }
 5076                    default:
 5077                    {
 5078                        // Create the result
 5079                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 5080                        Azure.Storage.Blobs.Models.DataLakeStorageError _value = Azure.Storage.Blobs.Models.DataLakeStor
 5081
 5082                        throw _value.CreateException(clientDiagnostics, response);
 5083                    }
 5084                }
 5085            }
 5086            #endregion Blob.SetAccessControlAsync
 5087
 5088            #region Blob.GetAccessControlAsync
 5089            /// <summary>
 5090            /// Get the owner, group, permissions, or access control list for a blob.
 5091            /// </summary>
 5092            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 5093            /// <param name="pipeline">The pipeline used for sending requests.</param>
 5094            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 5095            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 5096            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 5097            /// <param name="upn">Optional. Valid only when Hierarchical Namespace is enabled for the account. If "true"
 5098            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 5099            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 5100            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 5101            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 5102            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 5103            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 5104            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 5105            /// <param name="operationName">Operation name.</param>
 5106            /// <param name="cancellationToken">Cancellation token.</param>
 5107            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobGetAccessControlResult}</returns>
 5108            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobGetAccess
 5109                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 5110                Azure.Core.Pipeline.HttpPipeline pipeline,
 5111                System.Uri resourceUri,
 5112                string version,
 5113                int? timeout = default,
 5114                bool? upn = default,
 5115                string leaseId = default,
 5116                Azure.ETag? ifMatch = default,
 5117                Azure.ETag? ifNoneMatch = default,
 5118                System.DateTimeOffset? ifModifiedSince = default,
 5119                System.DateTimeOffset? ifUnmodifiedSince = default,
 5120                string requestId = default,
 5121                bool async = true,
 5122                string operationName = "BlobClient.GetAccessControl",
 5123                System.Threading.CancellationToken cancellationToken = default)
 5124            {
 5125                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 5126                try
 5127                {
 5128                    _scope.AddAttribute("url", resourceUri);
 5129                    _scope.Start();
 5130                    using (Azure.Core.HttpMessage _message = GetAccessControlAsync_CreateMessage(
 5131                        pipeline,
 5132                        resourceUri,
 5133                        version,
 5134                        timeout,
 5135                        upn,
 5136                        leaseId,
 5137                        ifMatch,
 5138                        ifNoneMatch,
 5139                        ifModifiedSince,
 5140                        ifUnmodifiedSince,
 5141                        requestId))
 5142                    {
 5143                        if (async)
 5144                        {
 5145                            // Send the request asynchronously if we're being called via an async path
 5146                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 5147                        }
 5148                        else
 5149                        {
 5150                            // Send the request synchronously through the API that blocks if we're being called via a sy
 5151                            // (this is safe because the Task will complete before the user can call Wait)
 5152                            pipeline.Send(_message, cancellationToken);
 5153                        }
 5154                        Azure.Response _response = _message.Response;
 5155                        cancellationToken.ThrowIfCancellationRequested();
 5156                        return GetAccessControlAsync_CreateResponse(clientDiagnostics, _response);
 5157                    }
 5158                }
 5159                catch (System.Exception ex)
 5160                {
 5161                    _scope.Failed(ex);
 5162                    throw;
 5163                }
 5164                finally
 5165                {
 5166                    _scope.Dispose();
 5167                }
 5168            }
 5169
 5170            /// <summary>
 5171            /// Create the Blob.GetAccessControlAsync request.
 5172            /// </summary>
 5173            /// <param name="pipeline">The pipeline used for sending requests.</param>
 5174            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 5175            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 5176            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 5177            /// <param name="upn">Optional. Valid only when Hierarchical Namespace is enabled for the account. If "true"
 5178            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 5179            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 5180            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 5181            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 5182            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 5183            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 5184            /// <returns>The Blob.GetAccessControlAsync Message.</returns>
 5185            internal static Azure.Core.HttpMessage GetAccessControlAsync_CreateMessage(
 5186                Azure.Core.Pipeline.HttpPipeline pipeline,
 5187                System.Uri resourceUri,
 5188                string version,
 5189                int? timeout = default,
 5190                bool? upn = default,
 5191                string leaseId = default,
 5192                Azure.ETag? ifMatch = default,
 5193                Azure.ETag? ifNoneMatch = default,
 5194                System.DateTimeOffset? ifModifiedSince = default,
 5195                System.DateTimeOffset? ifUnmodifiedSince = default,
 5196                string requestId = default)
 5197            {
 5198                // Validation
 5199                if (resourceUri == null)
 5200                {
 5201                    throw new System.ArgumentNullException(nameof(resourceUri));
 5202                }
 5203                if (version == null)
 5204                {
 5205                    throw new System.ArgumentNullException(nameof(version));
 5206                }
 5207
 5208                // Create the request
 5209                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 5210                Azure.Core.Request _request = _message.Request;
 5211
 5212                // Set the endpoint
 5213                _request.Method = Azure.Core.RequestMethod.Head;
 5214                _request.Uri.Reset(resourceUri);
 5215                _request.Uri.AppendQuery("action", "getAccessControl", escapeValue: false);
 5216                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 5217                if (upn != null) {
 5218                #pragma warning disable CA1308 // Normalize strings to uppercase
 5219                _request.Uri.AppendQuery("upn", upn.Value.ToString(System.Globalization.CultureInfo.InvariantCulture).To
 5220                #pragma warning restore CA1308 // Normalize strings to uppercase
 5221                }
 5222
 5223                // Add request headers
 5224                _request.Headers.SetValue("x-ms-version", version);
 5225                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 5226                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 5227                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 5228                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 5229                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 5230                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 5231
 5232                return _message;
 5233            }
 5234
 5235            /// <summary>
 5236            /// Create the Blob.GetAccessControlAsync response or throw a failure exception.
 5237            /// </summary>
 5238            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 5239            /// <param name="response">The raw Response.</param>
 5240            /// <returns>The Blob.GetAccessControlAsync Azure.Response{Azure.Storage.Blobs.Models.BlobGetAccessControlRe
 5241            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobGetAccessControlResult> GetAccessControlAsync_
 5242                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 5243                Azure.Response response)
 5244            {
 5245                // Process the response
 5246                switch (response.Status)
 5247                {
 5248                    case 200:
 5249                    {
 5250                        // Create the result
 5251                        Azure.Storage.Blobs.Models.BlobGetAccessControlResult _value = new Azure.Storage.Blobs.Models.Bl
 5252
 5253                        // Get response headers
 5254                        string _header;
 5255                        if (response.Headers.TryGetValue("ETag", out _header))
 5256                        {
 5257                            _value.ETag = new Azure.ETag(_header);
 5258                        }
 5259                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 5260                        {
 5261                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 5262                        }
 5263                        if (response.Headers.TryGetValue("x-ms-owner", out _header))
 5264                        {
 5265                            _value.XMSOwner = _header;
 5266                        }
 5267                        if (response.Headers.TryGetValue("x-ms-group", out _header))
 5268                        {
 5269                            _value.XMSGroup = _header;
 5270                        }
 5271                        if (response.Headers.TryGetValue("x-ms-permissions", out _header))
 5272                        {
 5273                            _value.XMSPermissions = _header;
 5274                        }
 5275                        if (response.Headers.TryGetValue("x-ms-acl", out _header))
 5276                        {
 5277                            _value.XMSAcl = _header;
 5278                        }
 5279
 5280                        // Create the response
 5281                        return Response.FromValue(_value, response);
 5282                    }
 5283                    case 304:
 5284                    {
 5285                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.BlobGetAccessControlResult>(response)
 5286                    }
 5287                    default:
 5288                    {
 5289                        // Create the result
 5290                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 5291                        Azure.Storage.Blobs.Models.DataLakeStorageError _value = Azure.Storage.Blobs.Models.DataLakeStor
 5292
 5293                        throw _value.CreateException(clientDiagnostics, response);
 5294                    }
 5295                }
 5296            }
 5297            #endregion Blob.GetAccessControlAsync
 5298
 5299            #region Blob.RenameAsync
 5300            /// <summary>
 5301            /// Rename a blob/file.  By default, the destination is overwritten and if the destination already exists an
 5302            /// </summary>
 5303            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 5304            /// <param name="pipeline">The pipeline used for sending requests.</param>
 5305            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 5306            /// <param name="renameSource">The file or directory to be renamed. The value must have the following format
 5307            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 5308            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 5309            /// <param name="pathRenameMode">Determines the behavior of the rename operation</param>
 5310            /// <param name="directoryProperties">Optional.  User-defined properties to be stored with the file or direc
 5311            /// <param name="posixPermissions">Optional and only valid if Hierarchical Namespace is enabled for the acco
 5312            /// <param name="posixUmask">Only valid if Hierarchical Namespace is enabled for the account. This umask res
 5313            /// <param name="cacheControl">Cache control for given resource</param>
 5314            /// <param name="contentType">Content type for given resource</param>
 5315            /// <param name="contentEncoding">Content encoding for given resource</param>
 5316            /// <param name="contentLanguage">Content language for given resource</param>
 5317            /// <param name="contentDisposition">Content disposition for given resource</param>
 5318            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 5319            /// <param name="sourceLeaseId">A lease ID for the source path. If specified, the source path must have an a
 5320            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 5321            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 5322            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 5323            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 5324            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 5325            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 5326            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 5327            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 5328            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 5329            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 5330            /// <param name="operationName">Operation name.</param>
 5331            /// <param name="cancellationToken">Cancellation token.</param>
 5332            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobRenameResult}</returns>
 5333            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobRenameRes
 5334                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 5335                Azure.Core.Pipeline.HttpPipeline pipeline,
 5336                System.Uri resourceUri,
 5337                string renameSource,
 5338                string version,
 5339                int? timeout = default,
 5340                Azure.Storage.Blobs.Models.PathRenameMode? pathRenameMode = default,
 5341                string directoryProperties = default,
 5342                string posixPermissions = default,
 5343                string posixUmask = default,
 5344                string cacheControl = default,
 5345                string contentType = default,
 5346                string contentEncoding = default,
 5347                string contentLanguage = default,
 5348                string contentDisposition = default,
 5349                string leaseId = default,
 5350                string sourceLeaseId = default,
 5351                System.DateTimeOffset? ifModifiedSince = default,
 5352                System.DateTimeOffset? ifUnmodifiedSince = default,
 5353                Azure.ETag? ifMatch = default,
 5354                Azure.ETag? ifNoneMatch = default,
 5355                System.DateTimeOffset? sourceIfModifiedSince = default,
 5356                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 5357                Azure.ETag? sourceIfMatch = default,
 5358                Azure.ETag? sourceIfNoneMatch = default,
 5359                string requestId = default,
 5360                bool async = true,
 5361                string operationName = "BlobClient.Rename",
 5362                System.Threading.CancellationToken cancellationToken = default)
 5363            {
 5364                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 5365                try
 5366                {
 5367                    _scope.AddAttribute("url", resourceUri);
 5368                    _scope.Start();
 5369                    using (Azure.Core.HttpMessage _message = RenameAsync_CreateMessage(
 5370                        pipeline,
 5371                        resourceUri,
 5372                        renameSource,
 5373                        version,
 5374                        timeout,
 5375                        pathRenameMode,
 5376                        directoryProperties,
 5377                        posixPermissions,
 5378                        posixUmask,
 5379                        cacheControl,
 5380                        contentType,
 5381                        contentEncoding,
 5382                        contentLanguage,
 5383                        contentDisposition,
 5384                        leaseId,
 5385                        sourceLeaseId,
 5386                        ifModifiedSince,
 5387                        ifUnmodifiedSince,
 5388                        ifMatch,
 5389                        ifNoneMatch,
 5390                        sourceIfModifiedSince,
 5391                        sourceIfUnmodifiedSince,
 5392                        sourceIfMatch,
 5393                        sourceIfNoneMatch,
 5394                        requestId))
 5395                    {
 5396                        if (async)
 5397                        {
 5398                            // Send the request asynchronously if we're being called via an async path
 5399                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 5400                        }
 5401                        else
 5402                        {
 5403                            // Send the request synchronously through the API that blocks if we're being called via a sy
 5404                            // (this is safe because the Task will complete before the user can call Wait)
 5405                            pipeline.Send(_message, cancellationToken);
 5406                        }
 5407                        Azure.Response _response = _message.Response;
 5408                        cancellationToken.ThrowIfCancellationRequested();
 5409                        return RenameAsync_CreateResponse(clientDiagnostics, _response);
 5410                    }
 5411                }
 5412                catch (System.Exception ex)
 5413                {
 5414                    _scope.Failed(ex);
 5415                    throw;
 5416                }
 5417                finally
 5418                {
 5419                    _scope.Dispose();
 5420                }
 5421            }
 5422
 5423            /// <summary>
 5424            /// Create the Blob.RenameAsync request.
 5425            /// </summary>
 5426            /// <param name="pipeline">The pipeline used for sending requests.</param>
 5427            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 5428            /// <param name="renameSource">The file or directory to be renamed. The value must have the following format
 5429            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 5430            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 5431            /// <param name="pathRenameMode">Determines the behavior of the rename operation</param>
 5432            /// <param name="directoryProperties">Optional.  User-defined properties to be stored with the file or direc
 5433            /// <param name="posixPermissions">Optional and only valid if Hierarchical Namespace is enabled for the acco
 5434            /// <param name="posixUmask">Only valid if Hierarchical Namespace is enabled for the account. This umask res
 5435            /// <param name="cacheControl">Cache control for given resource</param>
 5436            /// <param name="contentType">Content type for given resource</param>
 5437            /// <param name="contentEncoding">Content encoding for given resource</param>
 5438            /// <param name="contentLanguage">Content language for given resource</param>
 5439            /// <param name="contentDisposition">Content disposition for given resource</param>
 5440            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 5441            /// <param name="sourceLeaseId">A lease ID for the source path. If specified, the source path must have an a
 5442            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 5443            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 5444            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 5445            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 5446            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 5447            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 5448            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 5449            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 5450            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 5451            /// <returns>The Blob.RenameAsync Message.</returns>
 5452            internal static Azure.Core.HttpMessage RenameAsync_CreateMessage(
 5453                Azure.Core.Pipeline.HttpPipeline pipeline,
 5454                System.Uri resourceUri,
 5455                string renameSource,
 5456                string version,
 5457                int? timeout = default,
 5458                Azure.Storage.Blobs.Models.PathRenameMode? pathRenameMode = default,
 5459                string directoryProperties = default,
 5460                string posixPermissions = default,
 5461                string posixUmask = default,
 5462                string cacheControl = default,
 5463                string contentType = default,
 5464                string contentEncoding = default,
 5465                string contentLanguage = default,
 5466                string contentDisposition = default,
 5467                string leaseId = default,
 5468                string sourceLeaseId = default,
 5469                System.DateTimeOffset? ifModifiedSince = default,
 5470                System.DateTimeOffset? ifUnmodifiedSince = default,
 5471                Azure.ETag? ifMatch = default,
 5472                Azure.ETag? ifNoneMatch = default,
 5473                System.DateTimeOffset? sourceIfModifiedSince = default,
 5474                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 5475                Azure.ETag? sourceIfMatch = default,
 5476                Azure.ETag? sourceIfNoneMatch = default,
 5477                string requestId = default)
 5478            {
 5479                // Validation
 5480                if (resourceUri == null)
 5481                {
 5482                    throw new System.ArgumentNullException(nameof(resourceUri));
 5483                }
 5484                if (renameSource == null)
 5485                {
 5486                    throw new System.ArgumentNullException(nameof(renameSource));
 5487                }
 5488                if (version == null)
 5489                {
 5490                    throw new System.ArgumentNullException(nameof(version));
 5491                }
 5492
 5493                // Create the request
 5494                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 5495                Azure.Core.Request _request = _message.Request;
 5496
 5497                // Set the endpoint
 5498                _request.Method = Azure.Core.RequestMethod.Put;
 5499                _request.Uri.Reset(resourceUri);
 5500                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 5501                if (pathRenameMode != null) { _request.Uri.AppendQuery("mode", Azure.Storage.Blobs.BlobRestClient.Serial
 5502
 5503                // Add request headers
 5504                _request.Headers.SetValue("x-ms-rename-source", renameSource);
 5505                _request.Headers.SetValue("x-ms-version", version);
 5506                if (directoryProperties != null) { _request.Headers.SetValue("x-ms-properties", directoryProperties); }
 5507                if (posixPermissions != null) { _request.Headers.SetValue("x-ms-permissions", posixPermissions); }
 5508                if (posixUmask != null) { _request.Headers.SetValue("x-ms-umask", posixUmask); }
 5509                if (cacheControl != null) { _request.Headers.SetValue("x-ms-cache-control", cacheControl); }
 5510                if (contentType != null) { _request.Headers.SetValue("x-ms-content-type", contentType); }
 5511                if (contentEncoding != null) { _request.Headers.SetValue("x-ms-content-encoding", contentEncoding); }
 5512                if (contentLanguage != null) { _request.Headers.SetValue("x-ms-content-language", contentLanguage); }
 5513                if (contentDisposition != null) { _request.Headers.SetValue("x-ms-content-disposition", contentDispositi
 5514                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 5515                if (sourceLeaseId != null) { _request.Headers.SetValue("x-ms-source-lease-id", sourceLeaseId); }
 5516                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 5517                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 5518                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 5519                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 5520                if (sourceIfModifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-modified-since", sourceIf
 5521                if (sourceIfUnmodifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-unmodified-since", sour
 5522                if (sourceIfMatch != null) { _request.Headers.SetValue("x-ms-source-if-match", sourceIfMatch.Value.ToStr
 5523                if (sourceIfNoneMatch != null) { _request.Headers.SetValue("x-ms-source-if-none-match", sourceIfNoneMatc
 5524                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 5525
 5526                return _message;
 5527            }
 5528
 5529            /// <summary>
 5530            /// Create the Blob.RenameAsync response or throw a failure exception.
 5531            /// </summary>
 5532            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 5533            /// <param name="response">The raw Response.</param>
 5534            /// <returns>The Blob.RenameAsync Azure.Response{Azure.Storage.Blobs.Models.BlobRenameResult}.</returns>
 5535            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobRenameResult> RenameAsync_CreateResponse(
 5536                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 5537                Azure.Response response)
 5538            {
 5539                // Process the response
 5540                switch (response.Status)
 5541                {
 5542                    case 201:
 5543                    {
 5544                        // Create the result
 5545                        Azure.Storage.Blobs.Models.BlobRenameResult _value = new Azure.Storage.Blobs.Models.BlobRenameRe
 5546
 5547                        // Get response headers
 5548                        string _header;
 5549                        if (response.Headers.TryGetValue("ETag", out _header))
 5550                        {
 5551                            _value.ETag = new Azure.ETag(_header);
 5552                        }
 5553                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 5554                        {
 5555                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 5556                        }
 5557                        if (response.Headers.TryGetValue("Content-Length", out _header))
 5558                        {
 5559                            _value.ContentLength = long.Parse(_header, System.Globalization.CultureInfo.InvariantCulture
 5560                        }
 5561
 5562                        // Create the response
 5563                        return Response.FromValue(_value, response);
 5564                    }
 5565                    default:
 5566                    {
 5567                        // Create the result
 5568                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 5569                        Azure.Storage.Blobs.Models.DataLakeStorageError _value = Azure.Storage.Blobs.Models.DataLakeStor
 5570
 5571                        throw _value.CreateException(clientDiagnostics, response);
 5572                    }
 5573                }
 5574            }
 5575            #endregion Blob.RenameAsync
 5576
 5577            #region Blob.UndeleteAsync
 5578            /// <summary>
 5579            /// Undelete a blob that was previously soft deleted
 5580            /// </summary>
 5581            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 5582            /// <param name="pipeline">The pipeline used for sending requests.</param>
 5583            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 5584            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 5585            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 5586            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 5587            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 5588            /// <param name="operationName">Operation name.</param>
 5589            /// <param name="cancellationToken">Cancellation token.</param>
 5590            /// <returns>Azure.Response</returns>
 5591            public static async System.Threading.Tasks.ValueTask<Azure.Response> UndeleteAsync(
 5592                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 5593                Azure.Core.Pipeline.HttpPipeline pipeline,
 5594                System.Uri resourceUri,
 5595                string version,
 5596                int? timeout = default,
 5597                string requestId = default,
 5598                bool async = true,
 5599                string operationName = "BlobClient.Undelete",
 5600                System.Threading.CancellationToken cancellationToken = default)
 5601            {
 5602                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 5603                try
 5604                {
 5605                    _scope.AddAttribute("url", resourceUri);
 5606                    _scope.Start();
 5607                    using (Azure.Core.HttpMessage _message = UndeleteAsync_CreateMessage(
 5608                        pipeline,
 5609                        resourceUri,
 5610                        version,
 5611                        timeout,
 5612                        requestId))
 5613                    {
 5614                        if (async)
 5615                        {
 5616                            // Send the request asynchronously if we're being called via an async path
 5617                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 5618                        }
 5619                        else
 5620                        {
 5621                            // Send the request synchronously through the API that blocks if we're being called via a sy
 5622                            // (this is safe because the Task will complete before the user can call Wait)
 5623                            pipeline.Send(_message, cancellationToken);
 5624                        }
 5625                        Azure.Response _response = _message.Response;
 5626                        cancellationToken.ThrowIfCancellationRequested();
 5627                        return UndeleteAsync_CreateResponse(clientDiagnostics, _response);
 5628                    }
 5629                }
 5630                catch (System.Exception ex)
 5631                {
 5632                    _scope.Failed(ex);
 5633                    throw;
 5634                }
 5635                finally
 5636                {
 5637                    _scope.Dispose();
 5638                }
 5639            }
 5640
 5641            /// <summary>
 5642            /// Create the Blob.UndeleteAsync request.
 5643            /// </summary>
 5644            /// <param name="pipeline">The pipeline used for sending requests.</param>
 5645            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 5646            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 5647            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 5648            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 5649            /// <returns>The Blob.UndeleteAsync Message.</returns>
 5650            internal static Azure.Core.HttpMessage UndeleteAsync_CreateMessage(
 5651                Azure.Core.Pipeline.HttpPipeline pipeline,
 5652                System.Uri resourceUri,
 5653                string version,
 5654                int? timeout = default,
 5655                string requestId = default)
 5656            {
 5657                // Validation
 5658                if (resourceUri == null)
 5659                {
 5660                    throw new System.ArgumentNullException(nameof(resourceUri));
 5661                }
 5662                if (version == null)
 5663                {
 5664                    throw new System.ArgumentNullException(nameof(version));
 5665                }
 5666
 5667                // Create the request
 5668                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 5669                Azure.Core.Request _request = _message.Request;
 5670
 5671                // Set the endpoint
 5672                _request.Method = Azure.Core.RequestMethod.Put;
 5673                _request.Uri.Reset(resourceUri);
 5674                _request.Uri.AppendQuery("comp", "undelete", escapeValue: false);
 5675                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 5676
 5677                // Add request headers
 5678                _request.Headers.SetValue("x-ms-version", version);
 5679                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 5680
 5681                return _message;
 5682            }
 5683
 5684            /// <summary>
 5685            /// Create the Blob.UndeleteAsync response or throw a failure exception.
 5686            /// </summary>
 5687            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 5688            /// <param name="response">The raw Response.</param>
 5689            /// <returns>The Blob.UndeleteAsync Azure.Response.</returns>
 5690            internal static Azure.Response UndeleteAsync_CreateResponse(
 5691                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 5692                Azure.Response response)
 5693            {
 5694                // Process the response
 5695                switch (response.Status)
 5696                {
 5697                    case 200:
 5698                    {
 5699                        return response;
 5700                    }
 5701                    default:
 5702                    {
 5703                        // Create the result
 5704                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 5705                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 5706
 5707                        throw _value.CreateException(clientDiagnostics, response);
 5708                    }
 5709                }
 5710            }
 5711            #endregion Blob.UndeleteAsync
 5712
 5713            #region Blob.SetExpiryAsync
 5714            /// <summary>
 5715            /// Sets the time a blob will expire and be deleted.
 5716            /// </summary>
 5717            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 5718            /// <param name="pipeline">The pipeline used for sending requests.</param>
 5719            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 5720            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 5721            /// <param name="expiryOptions">Required. Indicates mode of the expiry time</param>
 5722            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 5723            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 5724            /// <param name="expiresOn">The time to set the blob to expiry</param>
 5725            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 5726            /// <param name="operationName">Operation name.</param>
 5727            /// <param name="cancellationToken">Cancellation token.</param>
 5728            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobSetExpiryInternal}</returns>
 5729            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobSetExpiry
 5730                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 5731                Azure.Core.Pipeline.HttpPipeline pipeline,
 5732                System.Uri resourceUri,
 5733                string version,
 5734                Azure.Storage.Blobs.Models.BlobExpiryOptions expiryOptions,
 5735                int? timeout = default,
 5736                string requestId = default,
 5737                string expiresOn = default,
 5738                bool async = true,
 5739                string operationName = "BlobClient.SetExpiry",
 5740                System.Threading.CancellationToken cancellationToken = default)
 5741            {
 5742                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 5743                try
 5744                {
 5745                    _scope.AddAttribute("url", resourceUri);
 5746                    _scope.Start();
 5747                    using (Azure.Core.HttpMessage _message = SetExpiryAsync_CreateMessage(
 5748                        pipeline,
 5749                        resourceUri,
 5750                        version,
 5751                        expiryOptions,
 5752                        timeout,
 5753                        requestId,
 5754                        expiresOn))
 5755                    {
 5756                        if (async)
 5757                        {
 5758                            // Send the request asynchronously if we're being called via an async path
 5759                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 5760                        }
 5761                        else
 5762                        {
 5763                            // Send the request synchronously through the API that blocks if we're being called via a sy
 5764                            // (this is safe because the Task will complete before the user can call Wait)
 5765                            pipeline.Send(_message, cancellationToken);
 5766                        }
 5767                        Azure.Response _response = _message.Response;
 5768                        cancellationToken.ThrowIfCancellationRequested();
 5769                        return SetExpiryAsync_CreateResponse(clientDiagnostics, _response);
 5770                    }
 5771                }
 5772                catch (System.Exception ex)
 5773                {
 5774                    _scope.Failed(ex);
 5775                    throw;
 5776                }
 5777                finally
 5778                {
 5779                    _scope.Dispose();
 5780                }
 5781            }
 5782
 5783            /// <summary>
 5784            /// Create the Blob.SetExpiryAsync request.
 5785            /// </summary>
 5786            /// <param name="pipeline">The pipeline used for sending requests.</param>
 5787            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 5788            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 5789            /// <param name="expiryOptions">Required. Indicates mode of the expiry time</param>
 5790            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 5791            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 5792            /// <param name="expiresOn">The time to set the blob to expiry</param>
 5793            /// <returns>The Blob.SetExpiryAsync Message.</returns>
 5794            internal static Azure.Core.HttpMessage SetExpiryAsync_CreateMessage(
 5795                Azure.Core.Pipeline.HttpPipeline pipeline,
 5796                System.Uri resourceUri,
 5797                string version,
 5798                Azure.Storage.Blobs.Models.BlobExpiryOptions expiryOptions,
 5799                int? timeout = default,
 5800                string requestId = default,
 5801                string expiresOn = default)
 5802            {
 5803                // Validation
 5804                if (resourceUri == null)
 5805                {
 5806                    throw new System.ArgumentNullException(nameof(resourceUri));
 5807                }
 5808                if (version == null)
 5809                {
 5810                    throw new System.ArgumentNullException(nameof(version));
 5811                }
 5812
 5813                // Create the request
 5814                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 5815                Azure.Core.Request _request = _message.Request;
 5816
 5817                // Set the endpoint
 5818                _request.Method = Azure.Core.RequestMethod.Put;
 5819                _request.Uri.Reset(resourceUri);
 5820                _request.Uri.AppendQuery("comp", "expiry", escapeValue: false);
 5821                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 5822
 5823                // Add request headers
 5824                _request.Headers.SetValue("x-ms-version", version);
 5825                _request.Headers.SetValue("x-ms-expiry-option", expiryOptions.ToString());
 5826                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 5827                if (expiresOn != null) { _request.Headers.SetValue("x-ms-expiry-time", expiresOn); }
 5828
 5829                return _message;
 5830            }
 5831
 5832            /// <summary>
 5833            /// Create the Blob.SetExpiryAsync response or throw a failure exception.
 5834            /// </summary>
 5835            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 5836            /// <param name="response">The raw Response.</param>
 5837            /// <returns>The Blob.SetExpiryAsync Azure.Response{Azure.Storage.Blobs.Models.BlobSetExpiryInternal}.</retu
 5838            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobSetExpiryInternal> SetExpiryAsync_CreateRespon
 5839                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 5840                Azure.Response response)
 5841            {
 5842                // Process the response
 5843                switch (response.Status)
 5844                {
 5845                    case 200:
 5846                    {
 5847                        // Create the result
 5848                        Azure.Storage.Blobs.Models.BlobSetExpiryInternal _value = new Azure.Storage.Blobs.Models.BlobSet
 5849
 5850                        // Get response headers
 5851                        string _header;
 5852                        if (response.Headers.TryGetValue("ETag", out _header))
 5853                        {
 5854                            _value.ETag = new Azure.ETag(_header);
 5855                        }
 5856                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 5857                        {
 5858                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 5859                        }
 5860
 5861                        // Create the response
 5862                        return Response.FromValue(_value, response);
 5863                    }
 5864                    default:
 5865                    {
 5866                        // Create the result
 5867                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 5868                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 5869
 5870                        throw _value.CreateException(clientDiagnostics, response);
 5871                    }
 5872                }
 5873            }
 5874            #endregion Blob.SetExpiryAsync
 5875
 5876            #region Blob.SetHttpHeadersAsync
 5877            /// <summary>
 5878            /// The Set HTTP Headers operation sets system properties on the blob
 5879            /// </summary>
 5880            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 5881            /// <param name="pipeline">The pipeline used for sending requests.</param>
 5882            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 5883            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 5884            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 5885            /// <param name="blobCacheControl">Optional. Sets the blob's cache control. If specified, this property is s
 5886            /// <param name="blobContentType">Optional. Sets the blob's content type. If specified, this property is sto
 5887            /// <param name="blobContentHash">Optional. An MD5 hash of the blob content. Note that this hash is not vali
 5888            /// <param name="blobContentEncoding">Optional. Sets the blob's content encoding. If specified, this propert
 5889            /// <param name="blobContentLanguage">Optional. Set the blob's content language. If specified, this property
 5890            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 5891            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 5892            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 5893            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 5894            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 5895            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 5896            /// <param name="blobContentDisposition">Optional. Sets the blob's Content-Disposition header.</param>
 5897            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 5898            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 5899            /// <param name="operationName">Operation name.</param>
 5900            /// <param name="cancellationToken">Cancellation token.</param>
 5901            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.SetHttpHeadersOperation}</returns>
 5902            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.SetHttpHeader
 5903                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 5904                Azure.Core.Pipeline.HttpPipeline pipeline,
 5905                System.Uri resourceUri,
 5906                string version,
 5907                int? timeout = default,
 5908                string blobCacheControl = default,
 5909                string blobContentType = default,
 5910                byte[] blobContentHash = default,
 5911                string blobContentEncoding = default,
 5912                string blobContentLanguage = default,
 5913                string leaseId = default,
 5914                System.DateTimeOffset? ifModifiedSince = default,
 5915                System.DateTimeOffset? ifUnmodifiedSince = default,
 5916                Azure.ETag? ifMatch = default,
 5917                Azure.ETag? ifNoneMatch = default,
 5918                string ifTags = default,
 5919                string blobContentDisposition = default,
 5920                string requestId = default,
 5921                bool async = true,
 5922                string operationName = "BlobClient.SetHttpHeaders",
 5923                System.Threading.CancellationToken cancellationToken = default)
 5924            {
 5925                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 5926                try
 5927                {
 5928                    _scope.AddAttribute("url", resourceUri);
 5929                    _scope.Start();
 5930                    using (Azure.Core.HttpMessage _message = SetHttpHeadersAsync_CreateMessage(
 5931                        pipeline,
 5932                        resourceUri,
 5933                        version,
 5934                        timeout,
 5935                        blobCacheControl,
 5936                        blobContentType,
 5937                        blobContentHash,
 5938                        blobContentEncoding,
 5939                        blobContentLanguage,
 5940                        leaseId,
 5941                        ifModifiedSince,
 5942                        ifUnmodifiedSince,
 5943                        ifMatch,
 5944                        ifNoneMatch,
 5945                        ifTags,
 5946                        blobContentDisposition,
 5947                        requestId))
 5948                    {
 5949                        if (async)
 5950                        {
 5951                            // Send the request asynchronously if we're being called via an async path
 5952                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 5953                        }
 5954                        else
 5955                        {
 5956                            // Send the request synchronously through the API that blocks if we're being called via a sy
 5957                            // (this is safe because the Task will complete before the user can call Wait)
 5958                            pipeline.Send(_message, cancellationToken);
 5959                        }
 5960                        Azure.Response _response = _message.Response;
 5961                        cancellationToken.ThrowIfCancellationRequested();
 5962                        return SetHttpHeadersAsync_CreateResponse(clientDiagnostics, _response);
 5963                    }
 5964                }
 5965                catch (System.Exception ex)
 5966                {
 5967                    _scope.Failed(ex);
 5968                    throw;
 5969                }
 5970                finally
 5971                {
 5972                    _scope.Dispose();
 5973                }
 5974            }
 5975
 5976            /// <summary>
 5977            /// Create the Blob.SetHttpHeadersAsync request.
 5978            /// </summary>
 5979            /// <param name="pipeline">The pipeline used for sending requests.</param>
 5980            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 5981            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 5982            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 5983            /// <param name="blobCacheControl">Optional. Sets the blob's cache control. If specified, this property is s
 5984            /// <param name="blobContentType">Optional. Sets the blob's content type. If specified, this property is sto
 5985            /// <param name="blobContentHash">Optional. An MD5 hash of the blob content. Note that this hash is not vali
 5986            /// <param name="blobContentEncoding">Optional. Sets the blob's content encoding. If specified, this propert
 5987            /// <param name="blobContentLanguage">Optional. Set the blob's content language. If specified, this property
 5988            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 5989            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 5990            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 5991            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 5992            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 5993            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 5994            /// <param name="blobContentDisposition">Optional. Sets the blob's Content-Disposition header.</param>
 5995            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 5996            /// <returns>The Blob.SetHttpHeadersAsync Message.</returns>
 5997            internal static Azure.Core.HttpMessage SetHttpHeadersAsync_CreateMessage(
 5998                Azure.Core.Pipeline.HttpPipeline pipeline,
 5999                System.Uri resourceUri,
 6000                string version,
 6001                int? timeout = default,
 6002                string blobCacheControl = default,
 6003                string blobContentType = default,
 6004                byte[] blobContentHash = default,
 6005                string blobContentEncoding = default,
 6006                string blobContentLanguage = default,
 6007                string leaseId = default,
 6008                System.DateTimeOffset? ifModifiedSince = default,
 6009                System.DateTimeOffset? ifUnmodifiedSince = default,
 6010                Azure.ETag? ifMatch = default,
 6011                Azure.ETag? ifNoneMatch = default,
 6012                string ifTags = default,
 6013                string blobContentDisposition = default,
 6014                string requestId = default)
 6015            {
 6016                // Validation
 6017                if (resourceUri == null)
 6018                {
 6019                    throw new System.ArgumentNullException(nameof(resourceUri));
 6020                }
 6021                if (version == null)
 6022                {
 6023                    throw new System.ArgumentNullException(nameof(version));
 6024                }
 6025
 6026                // Create the request
 6027                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 6028                Azure.Core.Request _request = _message.Request;
 6029
 6030                // Set the endpoint
 6031                _request.Method = Azure.Core.RequestMethod.Put;
 6032                _request.Uri.Reset(resourceUri);
 6033                _request.Uri.AppendQuery("comp", "properties", escapeValue: false);
 6034                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 6035
 6036                // Add request headers
 6037                _request.Headers.SetValue("x-ms-version", version);
 6038                if (blobCacheControl != null) { _request.Headers.SetValue("x-ms-blob-cache-control", blobCacheControl); 
 6039                if (blobContentType != null) { _request.Headers.SetValue("x-ms-blob-content-type", blobContentType); }
 6040                if (blobContentHash != null) { _request.Headers.SetValue("x-ms-blob-content-md5", System.Convert.ToBase6
 6041                if (blobContentEncoding != null) { _request.Headers.SetValue("x-ms-blob-content-encoding", blobContentEn
 6042                if (blobContentLanguage != null) { _request.Headers.SetValue("x-ms-blob-content-language", blobContentLa
 6043                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 6044                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 6045                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 6046                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 6047                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 6048                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 6049                if (blobContentDisposition != null) { _request.Headers.SetValue("x-ms-blob-content-disposition", blobCon
 6050                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 6051
 6052                return _message;
 6053            }
 6054
 6055            /// <summary>
 6056            /// Create the Blob.SetHttpHeadersAsync response or throw a failure exception.
 6057            /// </summary>
 6058            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 6059            /// <param name="response">The raw Response.</param>
 6060            /// <returns>The Blob.SetHttpHeadersAsync Azure.Response{Azure.Storage.Blobs.Models.SetHttpHeadersOperation}
 6061            internal static Azure.Response<Azure.Storage.Blobs.Models.SetHttpHeadersOperation> SetHttpHeadersAsync_Creat
 6062                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 6063                Azure.Response response)
 6064            {
 6065                // Process the response
 6066                switch (response.Status)
 6067                {
 6068                    case 200:
 6069                    {
 6070                        // Create the result
 6071                        Azure.Storage.Blobs.Models.SetHttpHeadersOperation _value = new Azure.Storage.Blobs.Models.SetHt
 6072
 6073                        // Get response headers
 6074                        string _header;
 6075                        if (response.Headers.TryGetValue("ETag", out _header))
 6076                        {
 6077                            _value.ETag = new Azure.ETag(_header);
 6078                        }
 6079                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 6080                        {
 6081                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 6082                        }
 6083                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 6084                        {
 6085                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 6086                        }
 6087
 6088                        // Create the response
 6089                        return Response.FromValue(_value, response);
 6090                    }
 6091                    default:
 6092                    {
 6093                        // Create the result
 6094                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 6095                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 6096
 6097                        throw _value.CreateException(clientDiagnostics, response);
 6098                    }
 6099                }
 6100            }
 6101            #endregion Blob.SetHttpHeadersAsync
 6102
 6103            #region Blob.SetMetadataAsync
 6104            /// <summary>
 6105            /// The Set Blob Metadata operation sets user-defined metadata for the specified blob as one or more name-va
 6106            /// </summary>
 6107            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 6108            /// <param name="pipeline">The pipeline used for sending requests.</param>
 6109            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 6110            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 6111            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 6112            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 6113            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 6114            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 6115            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 6116            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 6117            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 6118            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 6119            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 6120            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 6121            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 6122            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 6123            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 6124            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 6125            /// <param name="operationName">Operation name.</param>
 6126            /// <param name="cancellationToken">Cancellation token.</param>
 6127            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.SetMetadataOperation}</returns>
 6128            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.SetMetadataOp
 6129                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 6130                Azure.Core.Pipeline.HttpPipeline pipeline,
 6131                System.Uri resourceUri,
 6132                string version,
 6133                int? timeout = default,
 6134                System.Collections.Generic.IDictionary<string, string> metadata = default,
 6135                string leaseId = default,
 6136                string encryptionKey = default,
 6137                string encryptionKeySha256 = default,
 6138                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 6139                string encryptionScope = default,
 6140                System.DateTimeOffset? ifModifiedSince = default,
 6141                System.DateTimeOffset? ifUnmodifiedSince = default,
 6142                Azure.ETag? ifMatch = default,
 6143                Azure.ETag? ifNoneMatch = default,
 6144                string ifTags = default,
 6145                string requestId = default,
 6146                bool async = true,
 6147                string operationName = "BlobClient.SetMetadata",
 6148                System.Threading.CancellationToken cancellationToken = default)
 6149            {
 6150                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 6151                try
 6152                {
 6153                    _scope.AddAttribute("url", resourceUri);
 6154                    _scope.Start();
 6155                    using (Azure.Core.HttpMessage _message = SetMetadataAsync_CreateMessage(
 6156                        pipeline,
 6157                        resourceUri,
 6158                        version,
 6159                        timeout,
 6160                        metadata,
 6161                        leaseId,
 6162                        encryptionKey,
 6163                        encryptionKeySha256,
 6164                        encryptionAlgorithm,
 6165                        encryptionScope,
 6166                        ifModifiedSince,
 6167                        ifUnmodifiedSince,
 6168                        ifMatch,
 6169                        ifNoneMatch,
 6170                        ifTags,
 6171                        requestId))
 6172                    {
 6173                        if (async)
 6174                        {
 6175                            // Send the request asynchronously if we're being called via an async path
 6176                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 6177                        }
 6178                        else
 6179                        {
 6180                            // Send the request synchronously through the API that blocks if we're being called via a sy
 6181                            // (this is safe because the Task will complete before the user can call Wait)
 6182                            pipeline.Send(_message, cancellationToken);
 6183                        }
 6184                        Azure.Response _response = _message.Response;
 6185                        cancellationToken.ThrowIfCancellationRequested();
 6186                        return SetMetadataAsync_CreateResponse(clientDiagnostics, _response);
 6187                    }
 6188                }
 6189                catch (System.Exception ex)
 6190                {
 6191                    _scope.Failed(ex);
 6192                    throw;
 6193                }
 6194                finally
 6195                {
 6196                    _scope.Dispose();
 6197                }
 6198            }
 6199
 6200            /// <summary>
 6201            /// Create the Blob.SetMetadataAsync request.
 6202            /// </summary>
 6203            /// <param name="pipeline">The pipeline used for sending requests.</param>
 6204            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 6205            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 6206            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 6207            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 6208            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 6209            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 6210            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 6211            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 6212            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 6213            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 6214            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 6215            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 6216            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 6217            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 6218            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 6219            /// <returns>The Blob.SetMetadataAsync Message.</returns>
 6220            internal static Azure.Core.HttpMessage SetMetadataAsync_CreateMessage(
 6221                Azure.Core.Pipeline.HttpPipeline pipeline,
 6222                System.Uri resourceUri,
 6223                string version,
 6224                int? timeout = default,
 6225                System.Collections.Generic.IDictionary<string, string> metadata = default,
 6226                string leaseId = default,
 6227                string encryptionKey = default,
 6228                string encryptionKeySha256 = default,
 6229                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 6230                string encryptionScope = default,
 6231                System.DateTimeOffset? ifModifiedSince = default,
 6232                System.DateTimeOffset? ifUnmodifiedSince = default,
 6233                Azure.ETag? ifMatch = default,
 6234                Azure.ETag? ifNoneMatch = default,
 6235                string ifTags = default,
 6236                string requestId = default)
 6237            {
 6238                // Validation
 6239                if (resourceUri == null)
 6240                {
 6241                    throw new System.ArgumentNullException(nameof(resourceUri));
 6242                }
 6243                if (version == null)
 6244                {
 6245                    throw new System.ArgumentNullException(nameof(version));
 6246                }
 6247
 6248                // Create the request
 6249                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 6250                Azure.Core.Request _request = _message.Request;
 6251
 6252                // Set the endpoint
 6253                _request.Method = Azure.Core.RequestMethod.Put;
 6254                _request.Uri.Reset(resourceUri);
 6255                _request.Uri.AppendQuery("comp", "metadata", escapeValue: false);
 6256                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 6257
 6258                // Add request headers
 6259                _request.Headers.SetValue("x-ms-version", version);
 6260                if (metadata != null) {
 6261                    foreach (System.Collections.Generic.KeyValuePair<string, string> _pair in metadata)
 6262                    {
 6263                        _request.Headers.SetValue("x-ms-meta-" + _pair.Key, _pair.Value);
 6264                    }
 6265                }
 6266                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 6267                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 6268                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 6269                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 6270                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 6271                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 6272                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 6273                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 6274                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 6275                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 6276                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 6277
 6278                return _message;
 6279            }
 6280
 6281            /// <summary>
 6282            /// Create the Blob.SetMetadataAsync response or throw a failure exception.
 6283            /// </summary>
 6284            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 6285            /// <param name="response">The raw Response.</param>
 6286            /// <returns>The Blob.SetMetadataAsync Azure.Response{Azure.Storage.Blobs.Models.SetMetadataOperation}.</ret
 6287            internal static Azure.Response<Azure.Storage.Blobs.Models.SetMetadataOperation> SetMetadataAsync_CreateRespo
 6288                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 6289                Azure.Response response)
 6290            {
 6291                // Process the response
 6292                switch (response.Status)
 6293                {
 6294                    case 200:
 6295                    {
 6296                        // Create the result
 6297                        Azure.Storage.Blobs.Models.SetMetadataOperation _value = new Azure.Storage.Blobs.Models.SetMetad
 6298
 6299                        // Get response headers
 6300                        string _header;
 6301                        if (response.Headers.TryGetValue("ETag", out _header))
 6302                        {
 6303                            _value.ETag = new Azure.ETag(_header);
 6304                        }
 6305                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 6306                        {
 6307                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 6308                        }
 6309                        if (response.Headers.TryGetValue("x-ms-version-id", out _header))
 6310                        {
 6311                            _value.VersionId = _header;
 6312                        }
 6313                        if (response.Headers.TryGetValue("x-ms-request-server-encrypted", out _header))
 6314                        {
 6315                            _value.IsServerEncrypted = bool.Parse(_header);
 6316                        }
 6317                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 6318                        {
 6319                            _value.EncryptionKeySha256 = _header;
 6320                        }
 6321                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 6322                        {
 6323                            _value.EncryptionScope = _header;
 6324                        }
 6325
 6326                        // Create the response
 6327                        return Response.FromValue(_value, response);
 6328                    }
 6329                    default:
 6330                    {
 6331                        // Create the result
 6332                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 6333                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 6334
 6335                        throw _value.CreateException(clientDiagnostics, response);
 6336                    }
 6337                }
 6338            }
 6339            #endregion Blob.SetMetadataAsync
 6340
 6341            #region Blob.AcquireLeaseAsync
 6342            /// <summary>
 6343            /// [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operatio
 6344            /// </summary>
 6345            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 6346            /// <param name="pipeline">The pipeline used for sending requests.</param>
 6347            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 6348            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 6349            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 6350            /// <param name="duration">Specifies the duration of the lease, in seconds, or negative one (-1) for a lease
 6351            /// <param name="proposedLeaseId">Proposed lease ID, in a GUID string format. The Blob service returns 400 (
 6352            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 6353            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 6354            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 6355            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 6356            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 6357            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 6358            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 6359            /// <param name="operationName">Operation name.</param>
 6360            /// <param name="cancellationToken">Cancellation token.</param>
 6361            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobLease}</returns>
 6362            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobLease>> A
 6363                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 6364                Azure.Core.Pipeline.HttpPipeline pipeline,
 6365                System.Uri resourceUri,
 6366                string version,
 6367                int? timeout = default,
 6368                long? duration = default,
 6369                string proposedLeaseId = default,
 6370                System.DateTimeOffset? ifModifiedSince = default,
 6371                System.DateTimeOffset? ifUnmodifiedSince = default,
 6372                Azure.ETag? ifMatch = default,
 6373                Azure.ETag? ifNoneMatch = default,
 6374                string ifTags = default,
 6375                string requestId = default,
 6376                bool async = true,
 6377                string operationName = "BlobClient.AcquireLease",
 6378                System.Threading.CancellationToken cancellationToken = default)
 6379            {
 6380                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 6381                try
 6382                {
 6383                    _scope.AddAttribute("url", resourceUri);
 6384                    _scope.Start();
 6385                    using (Azure.Core.HttpMessage _message = AcquireLeaseAsync_CreateMessage(
 6386                        pipeline,
 6387                        resourceUri,
 6388                        version,
 6389                        timeout,
 6390                        duration,
 6391                        proposedLeaseId,
 6392                        ifModifiedSince,
 6393                        ifUnmodifiedSince,
 6394                        ifMatch,
 6395                        ifNoneMatch,
 6396                        ifTags,
 6397                        requestId))
 6398                    {
 6399                        if (async)
 6400                        {
 6401                            // Send the request asynchronously if we're being called via an async path
 6402                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 6403                        }
 6404                        else
 6405                        {
 6406                            // Send the request synchronously through the API that blocks if we're being called via a sy
 6407                            // (this is safe because the Task will complete before the user can call Wait)
 6408                            pipeline.Send(_message, cancellationToken);
 6409                        }
 6410                        Azure.Response _response = _message.Response;
 6411                        cancellationToken.ThrowIfCancellationRequested();
 6412                        return AcquireLeaseAsync_CreateResponse(clientDiagnostics, _response);
 6413                    }
 6414                }
 6415                catch (System.Exception ex)
 6416                {
 6417                    _scope.Failed(ex);
 6418                    throw;
 6419                }
 6420                finally
 6421                {
 6422                    _scope.Dispose();
 6423                }
 6424            }
 6425
 6426            /// <summary>
 6427            /// Create the Blob.AcquireLeaseAsync request.
 6428            /// </summary>
 6429            /// <param name="pipeline">The pipeline used for sending requests.</param>
 6430            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 6431            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 6432            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 6433            /// <param name="duration">Specifies the duration of the lease, in seconds, or negative one (-1) for a lease
 6434            /// <param name="proposedLeaseId">Proposed lease ID, in a GUID string format. The Blob service returns 400 (
 6435            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 6436            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 6437            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 6438            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 6439            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 6440            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 6441            /// <returns>The Blob.AcquireLeaseAsync Message.</returns>
 6442            internal static Azure.Core.HttpMessage AcquireLeaseAsync_CreateMessage(
 6443                Azure.Core.Pipeline.HttpPipeline pipeline,
 6444                System.Uri resourceUri,
 6445                string version,
 6446                int? timeout = default,
 6447                long? duration = default,
 6448                string proposedLeaseId = default,
 6449                System.DateTimeOffset? ifModifiedSince = default,
 6450                System.DateTimeOffset? ifUnmodifiedSince = default,
 6451                Azure.ETag? ifMatch = default,
 6452                Azure.ETag? ifNoneMatch = default,
 6453                string ifTags = default,
 6454                string requestId = default)
 6455            {
 6456                // Validation
 6457                if (resourceUri == null)
 6458                {
 6459                    throw new System.ArgumentNullException(nameof(resourceUri));
 6460                }
 6461                if (version == null)
 6462                {
 6463                    throw new System.ArgumentNullException(nameof(version));
 6464                }
 6465
 6466                // Create the request
 6467                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 6468                Azure.Core.Request _request = _message.Request;
 6469
 6470                // Set the endpoint
 6471                _request.Method = Azure.Core.RequestMethod.Put;
 6472                _request.Uri.Reset(resourceUri);
 6473                _request.Uri.AppendQuery("comp", "lease", escapeValue: false);
 6474                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 6475
 6476                // Add request headers
 6477                _request.Headers.SetValue("x-ms-lease-action", "acquire");
 6478                _request.Headers.SetValue("x-ms-version", version);
 6479                if (duration != null) { _request.Headers.SetValue("x-ms-lease-duration", duration.Value.ToString(System.
 6480                if (proposedLeaseId != null) { _request.Headers.SetValue("x-ms-proposed-lease-id", proposedLeaseId); }
 6481                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 6482                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 6483                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 6484                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 6485                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 6486                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 6487
 6488                return _message;
 6489            }
 6490
 6491            /// <summary>
 6492            /// Create the Blob.AcquireLeaseAsync response or throw a failure exception.
 6493            /// </summary>
 6494            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 6495            /// <param name="response">The raw Response.</param>
 6496            /// <returns>The Blob.AcquireLeaseAsync Azure.Response{Azure.Storage.Blobs.Models.BlobLease}.</returns>
 6497            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobLease> AcquireLeaseAsync_CreateResponse(
 6498                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 6499                Azure.Response response)
 6500            {
 6501                // Process the response
 6502                switch (response.Status)
 6503                {
 6504                    case 201:
 6505                    {
 6506                        // Create the result
 6507                        Azure.Storage.Blobs.Models.BlobLease _value = new Azure.Storage.Blobs.Models.BlobLease();
 6508
 6509                        // Get response headers
 6510                        string _header;
 6511                        if (response.Headers.TryGetValue("ETag", out _header))
 6512                        {
 6513                            _value.ETag = new Azure.ETag(_header);
 6514                        }
 6515                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 6516                        {
 6517                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 6518                        }
 6519                        if (response.Headers.TryGetValue("x-ms-lease-id", out _header))
 6520                        {
 6521                            _value.LeaseId = _header;
 6522                        }
 6523
 6524                        // Create the response
 6525                        return Response.FromValue(_value, response);
 6526                    }
 6527                    default:
 6528                    {
 6529                        // Create the result
 6530                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 6531                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 6532
 6533                        throw _value.CreateException(clientDiagnostics, response);
 6534                    }
 6535                }
 6536            }
 6537            #endregion Blob.AcquireLeaseAsync
 6538
 6539            #region Blob.ReleaseLeaseAsync
 6540            /// <summary>
 6541            /// [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operatio
 6542            /// </summary>
 6543            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 6544            /// <param name="pipeline">The pipeline used for sending requests.</param>
 6545            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 6546            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 6547            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 6548            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 6549            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 6550            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 6551            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 6552            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 6553            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 6554            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 6555            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 6556            /// <param name="operationName">Operation name.</param>
 6557            /// <param name="cancellationToken">Cancellation token.</param>
 6558            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobInfo}</returns>
 6559            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobInfo>> Re
 6560                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 6561                Azure.Core.Pipeline.HttpPipeline pipeline,
 6562                System.Uri resourceUri,
 6563                string leaseId,
 6564                string version,
 6565                int? timeout = default,
 6566                System.DateTimeOffset? ifModifiedSince = default,
 6567                System.DateTimeOffset? ifUnmodifiedSince = default,
 6568                Azure.ETag? ifMatch = default,
 6569                Azure.ETag? ifNoneMatch = default,
 6570                string ifTags = default,
 6571                string requestId = default,
 6572                bool async = true,
 6573                string operationName = "BlobClient.ReleaseLease",
 6574                System.Threading.CancellationToken cancellationToken = default)
 6575            {
 6576                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 6577                try
 6578                {
 6579                    _scope.AddAttribute("url", resourceUri);
 6580                    _scope.Start();
 6581                    using (Azure.Core.HttpMessage _message = ReleaseLeaseAsync_CreateMessage(
 6582                        pipeline,
 6583                        resourceUri,
 6584                        leaseId,
 6585                        version,
 6586                        timeout,
 6587                        ifModifiedSince,
 6588                        ifUnmodifiedSince,
 6589                        ifMatch,
 6590                        ifNoneMatch,
 6591                        ifTags,
 6592                        requestId))
 6593                    {
 6594                        if (async)
 6595                        {
 6596                            // Send the request asynchronously if we're being called via an async path
 6597                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 6598                        }
 6599                        else
 6600                        {
 6601                            // Send the request synchronously through the API that blocks if we're being called via a sy
 6602                            // (this is safe because the Task will complete before the user can call Wait)
 6603                            pipeline.Send(_message, cancellationToken);
 6604                        }
 6605                        Azure.Response _response = _message.Response;
 6606                        cancellationToken.ThrowIfCancellationRequested();
 6607                        return ReleaseLeaseAsync_CreateResponse(clientDiagnostics, _response);
 6608                    }
 6609                }
 6610                catch (System.Exception ex)
 6611                {
 6612                    _scope.Failed(ex);
 6613                    throw;
 6614                }
 6615                finally
 6616                {
 6617                    _scope.Dispose();
 6618                }
 6619            }
 6620
 6621            /// <summary>
 6622            /// Create the Blob.ReleaseLeaseAsync request.
 6623            /// </summary>
 6624            /// <param name="pipeline">The pipeline used for sending requests.</param>
 6625            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 6626            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 6627            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 6628            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 6629            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 6630            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 6631            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 6632            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 6633            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 6634            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 6635            /// <returns>The Blob.ReleaseLeaseAsync Message.</returns>
 6636            internal static Azure.Core.HttpMessage ReleaseLeaseAsync_CreateMessage(
 6637                Azure.Core.Pipeline.HttpPipeline pipeline,
 6638                System.Uri resourceUri,
 6639                string leaseId,
 6640                string version,
 6641                int? timeout = default,
 6642                System.DateTimeOffset? ifModifiedSince = default,
 6643                System.DateTimeOffset? ifUnmodifiedSince = default,
 6644                Azure.ETag? ifMatch = default,
 6645                Azure.ETag? ifNoneMatch = default,
 6646                string ifTags = default,
 6647                string requestId = default)
 6648            {
 6649                // Validation
 6650                if (resourceUri == null)
 6651                {
 6652                    throw new System.ArgumentNullException(nameof(resourceUri));
 6653                }
 6654                if (leaseId == null)
 6655                {
 6656                    throw new System.ArgumentNullException(nameof(leaseId));
 6657                }
 6658                if (version == null)
 6659                {
 6660                    throw new System.ArgumentNullException(nameof(version));
 6661                }
 6662
 6663                // Create the request
 6664                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 6665                Azure.Core.Request _request = _message.Request;
 6666
 6667                // Set the endpoint
 6668                _request.Method = Azure.Core.RequestMethod.Put;
 6669                _request.Uri.Reset(resourceUri);
 6670                _request.Uri.AppendQuery("comp", "lease", escapeValue: false);
 6671                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 6672
 6673                // Add request headers
 6674                _request.Headers.SetValue("x-ms-lease-action", "release");
 6675                _request.Headers.SetValue("x-ms-lease-id", leaseId);
 6676                _request.Headers.SetValue("x-ms-version", version);
 6677                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 6678                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 6679                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 6680                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 6681                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 6682                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 6683
 6684                return _message;
 6685            }
 6686
 6687            /// <summary>
 6688            /// Create the Blob.ReleaseLeaseAsync response or throw a failure exception.
 6689            /// </summary>
 6690            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 6691            /// <param name="response">The raw Response.</param>
 6692            /// <returns>The Blob.ReleaseLeaseAsync Azure.Response{Azure.Storage.Blobs.Models.BlobInfo}.</returns>
 6693            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobInfo> ReleaseLeaseAsync_CreateResponse(
 6694                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 6695                Azure.Response response)
 6696            {
 6697                // Process the response
 6698                switch (response.Status)
 6699                {
 6700                    case 200:
 6701                    {
 6702                        // Create the result
 6703                        Azure.Storage.Blobs.Models.BlobInfo _value = new Azure.Storage.Blobs.Models.BlobInfo();
 6704
 6705                        // Get response headers
 6706                        string _header;
 6707                        if (response.Headers.TryGetValue("ETag", out _header))
 6708                        {
 6709                            _value.ETag = new Azure.ETag(_header);
 6710                        }
 6711                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 6712                        {
 6713                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 6714                        }
 6715
 6716                        // Create the response
 6717                        return Response.FromValue(_value, response);
 6718                    }
 6719                    default:
 6720                    {
 6721                        // Create the result
 6722                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 6723                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 6724
 6725                        throw _value.CreateException(clientDiagnostics, response);
 6726                    }
 6727                }
 6728            }
 6729            #endregion Blob.ReleaseLeaseAsync
 6730
 6731            #region Blob.RenewLeaseAsync
 6732            /// <summary>
 6733            /// [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operatio
 6734            /// </summary>
 6735            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 6736            /// <param name="pipeline">The pipeline used for sending requests.</param>
 6737            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 6738            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 6739            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 6740            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 6741            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 6742            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 6743            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 6744            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 6745            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 6746            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 6747            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 6748            /// <param name="operationName">Operation name.</param>
 6749            /// <param name="cancellationToken">Cancellation token.</param>
 6750            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobLease}</returns>
 6751            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobLease>> R
 6752                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 6753                Azure.Core.Pipeline.HttpPipeline pipeline,
 6754                System.Uri resourceUri,
 6755                string leaseId,
 6756                string version,
 6757                int? timeout = default,
 6758                System.DateTimeOffset? ifModifiedSince = default,
 6759                System.DateTimeOffset? ifUnmodifiedSince = default,
 6760                Azure.ETag? ifMatch = default,
 6761                Azure.ETag? ifNoneMatch = default,
 6762                string ifTags = default,
 6763                string requestId = default,
 6764                bool async = true,
 6765                string operationName = "BlobClient.RenewLease",
 6766                System.Threading.CancellationToken cancellationToken = default)
 6767            {
 6768                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 6769                try
 6770                {
 6771                    _scope.AddAttribute("url", resourceUri);
 6772                    _scope.Start();
 6773                    using (Azure.Core.HttpMessage _message = RenewLeaseAsync_CreateMessage(
 6774                        pipeline,
 6775                        resourceUri,
 6776                        leaseId,
 6777                        version,
 6778                        timeout,
 6779                        ifModifiedSince,
 6780                        ifUnmodifiedSince,
 6781                        ifMatch,
 6782                        ifNoneMatch,
 6783                        ifTags,
 6784                        requestId))
 6785                    {
 6786                        if (async)
 6787                        {
 6788                            // Send the request asynchronously if we're being called via an async path
 6789                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 6790                        }
 6791                        else
 6792                        {
 6793                            // Send the request synchronously through the API that blocks if we're being called via a sy
 6794                            // (this is safe because the Task will complete before the user can call Wait)
 6795                            pipeline.Send(_message, cancellationToken);
 6796                        }
 6797                        Azure.Response _response = _message.Response;
 6798                        cancellationToken.ThrowIfCancellationRequested();
 6799                        return RenewLeaseAsync_CreateResponse(clientDiagnostics, _response);
 6800                    }
 6801                }
 6802                catch (System.Exception ex)
 6803                {
 6804                    _scope.Failed(ex);
 6805                    throw;
 6806                }
 6807                finally
 6808                {
 6809                    _scope.Dispose();
 6810                }
 6811            }
 6812
 6813            /// <summary>
 6814            /// Create the Blob.RenewLeaseAsync request.
 6815            /// </summary>
 6816            /// <param name="pipeline">The pipeline used for sending requests.</param>
 6817            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 6818            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 6819            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 6820            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 6821            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 6822            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 6823            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 6824            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 6825            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 6826            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 6827            /// <returns>The Blob.RenewLeaseAsync Message.</returns>
 6828            internal static Azure.Core.HttpMessage RenewLeaseAsync_CreateMessage(
 6829                Azure.Core.Pipeline.HttpPipeline pipeline,
 6830                System.Uri resourceUri,
 6831                string leaseId,
 6832                string version,
 6833                int? timeout = default,
 6834                System.DateTimeOffset? ifModifiedSince = default,
 6835                System.DateTimeOffset? ifUnmodifiedSince = default,
 6836                Azure.ETag? ifMatch = default,
 6837                Azure.ETag? ifNoneMatch = default,
 6838                string ifTags = default,
 6839                string requestId = default)
 6840            {
 6841                // Validation
 6842                if (resourceUri == null)
 6843                {
 6844                    throw new System.ArgumentNullException(nameof(resourceUri));
 6845                }
 6846                if (leaseId == null)
 6847                {
 6848                    throw new System.ArgumentNullException(nameof(leaseId));
 6849                }
 6850                if (version == null)
 6851                {
 6852                    throw new System.ArgumentNullException(nameof(version));
 6853                }
 6854
 6855                // Create the request
 6856                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 6857                Azure.Core.Request _request = _message.Request;
 6858
 6859                // Set the endpoint
 6860                _request.Method = Azure.Core.RequestMethod.Put;
 6861                _request.Uri.Reset(resourceUri);
 6862                _request.Uri.AppendQuery("comp", "lease", escapeValue: false);
 6863                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 6864
 6865                // Add request headers
 6866                _request.Headers.SetValue("x-ms-lease-action", "renew");
 6867                _request.Headers.SetValue("x-ms-lease-id", leaseId);
 6868                _request.Headers.SetValue("x-ms-version", version);
 6869                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 6870                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 6871                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 6872                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 6873                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 6874                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 6875
 6876                return _message;
 6877            }
 6878
 6879            /// <summary>
 6880            /// Create the Blob.RenewLeaseAsync response or throw a failure exception.
 6881            /// </summary>
 6882            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 6883            /// <param name="response">The raw Response.</param>
 6884            /// <returns>The Blob.RenewLeaseAsync Azure.Response{Azure.Storage.Blobs.Models.BlobLease}.</returns>
 6885            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobLease> RenewLeaseAsync_CreateResponse(
 6886                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 6887                Azure.Response response)
 6888            {
 6889                // Process the response
 6890                switch (response.Status)
 6891                {
 6892                    case 200:
 6893                    {
 6894                        // Create the result
 6895                        Azure.Storage.Blobs.Models.BlobLease _value = new Azure.Storage.Blobs.Models.BlobLease();
 6896
 6897                        // Get response headers
 6898                        string _header;
 6899                        if (response.Headers.TryGetValue("ETag", out _header))
 6900                        {
 6901                            _value.ETag = new Azure.ETag(_header);
 6902                        }
 6903                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 6904                        {
 6905                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 6906                        }
 6907                        if (response.Headers.TryGetValue("x-ms-lease-id", out _header))
 6908                        {
 6909                            _value.LeaseId = _header;
 6910                        }
 6911
 6912                        // Create the response
 6913                        return Response.FromValue(_value, response);
 6914                    }
 6915                    default:
 6916                    {
 6917                        // Create the result
 6918                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 6919                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 6920
 6921                        throw _value.CreateException(clientDiagnostics, response);
 6922                    }
 6923                }
 6924            }
 6925            #endregion Blob.RenewLeaseAsync
 6926
 6927            #region Blob.ChangeLeaseAsync
 6928            /// <summary>
 6929            /// [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operatio
 6930            /// </summary>
 6931            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 6932            /// <param name="pipeline">The pipeline used for sending requests.</param>
 6933            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 6934            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 6935            /// <param name="proposedLeaseId">Proposed lease ID, in a GUID string format. The Blob service returns 400 (
 6936            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 6937            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 6938            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 6939            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 6940            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 6941            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 6942            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 6943            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 6944            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 6945            /// <param name="operationName">Operation name.</param>
 6946            /// <param name="cancellationToken">Cancellation token.</param>
 6947            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobLease}</returns>
 6948            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobLease>> C
 6949                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 6950                Azure.Core.Pipeline.HttpPipeline pipeline,
 6951                System.Uri resourceUri,
 6952                string leaseId,
 6953                string proposedLeaseId,
 6954                string version,
 6955                int? timeout = default,
 6956                System.DateTimeOffset? ifModifiedSince = default,
 6957                System.DateTimeOffset? ifUnmodifiedSince = default,
 6958                Azure.ETag? ifMatch = default,
 6959                Azure.ETag? ifNoneMatch = default,
 6960                string ifTags = default,
 6961                string requestId = default,
 6962                bool async = true,
 6963                string operationName = "BlobClient.ChangeLease",
 6964                System.Threading.CancellationToken cancellationToken = default)
 6965            {
 6966                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 6967                try
 6968                {
 6969                    _scope.AddAttribute("url", resourceUri);
 6970                    _scope.Start();
 6971                    using (Azure.Core.HttpMessage _message = ChangeLeaseAsync_CreateMessage(
 6972                        pipeline,
 6973                        resourceUri,
 6974                        leaseId,
 6975                        proposedLeaseId,
 6976                        version,
 6977                        timeout,
 6978                        ifModifiedSince,
 6979                        ifUnmodifiedSince,
 6980                        ifMatch,
 6981                        ifNoneMatch,
 6982                        ifTags,
 6983                        requestId))
 6984                    {
 6985                        if (async)
 6986                        {
 6987                            // Send the request asynchronously if we're being called via an async path
 6988                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 6989                        }
 6990                        else
 6991                        {
 6992                            // Send the request synchronously through the API that blocks if we're being called via a sy
 6993                            // (this is safe because the Task will complete before the user can call Wait)
 6994                            pipeline.Send(_message, cancellationToken);
 6995                        }
 6996                        Azure.Response _response = _message.Response;
 6997                        cancellationToken.ThrowIfCancellationRequested();
 6998                        return ChangeLeaseAsync_CreateResponse(clientDiagnostics, _response);
 6999                    }
 7000                }
 7001                catch (System.Exception ex)
 7002                {
 7003                    _scope.Failed(ex);
 7004                    throw;
 7005                }
 7006                finally
 7007                {
 7008                    _scope.Dispose();
 7009                }
 7010            }
 7011
 7012            /// <summary>
 7013            /// Create the Blob.ChangeLeaseAsync request.
 7014            /// </summary>
 7015            /// <param name="pipeline">The pipeline used for sending requests.</param>
 7016            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 7017            /// <param name="leaseId">Specifies the current lease ID on the resource.</param>
 7018            /// <param name="proposedLeaseId">Proposed lease ID, in a GUID string format. The Blob service returns 400 (
 7019            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 7020            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 7021            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 7022            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 7023            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 7024            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 7025            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 7026            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 7027            /// <returns>The Blob.ChangeLeaseAsync Message.</returns>
 7028            internal static Azure.Core.HttpMessage ChangeLeaseAsync_CreateMessage(
 7029                Azure.Core.Pipeline.HttpPipeline pipeline,
 7030                System.Uri resourceUri,
 7031                string leaseId,
 7032                string proposedLeaseId,
 7033                string version,
 7034                int? timeout = default,
 7035                System.DateTimeOffset? ifModifiedSince = default,
 7036                System.DateTimeOffset? ifUnmodifiedSince = default,
 7037                Azure.ETag? ifMatch = default,
 7038                Azure.ETag? ifNoneMatch = default,
 7039                string ifTags = default,
 7040                string requestId = default)
 7041            {
 7042                // Validation
 7043                if (resourceUri == null)
 7044                {
 7045                    throw new System.ArgumentNullException(nameof(resourceUri));
 7046                }
 7047                if (leaseId == null)
 7048                {
 7049                    throw new System.ArgumentNullException(nameof(leaseId));
 7050                }
 7051                if (proposedLeaseId == null)
 7052                {
 7053                    throw new System.ArgumentNullException(nameof(proposedLeaseId));
 7054                }
 7055                if (version == null)
 7056                {
 7057                    throw new System.ArgumentNullException(nameof(version));
 7058                }
 7059
 7060                // Create the request
 7061                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 7062                Azure.Core.Request _request = _message.Request;
 7063
 7064                // Set the endpoint
 7065                _request.Method = Azure.Core.RequestMethod.Put;
 7066                _request.Uri.Reset(resourceUri);
 7067                _request.Uri.AppendQuery("comp", "lease", escapeValue: false);
 7068                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 7069
 7070                // Add request headers
 7071                _request.Headers.SetValue("x-ms-lease-action", "change");
 7072                _request.Headers.SetValue("x-ms-lease-id", leaseId);
 7073                _request.Headers.SetValue("x-ms-proposed-lease-id", proposedLeaseId);
 7074                _request.Headers.SetValue("x-ms-version", version);
 7075                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 7076                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 7077                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 7078                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 7079                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 7080                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 7081
 7082                return _message;
 7083            }
 7084
 7085            /// <summary>
 7086            /// Create the Blob.ChangeLeaseAsync response or throw a failure exception.
 7087            /// </summary>
 7088            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 7089            /// <param name="response">The raw Response.</param>
 7090            /// <returns>The Blob.ChangeLeaseAsync Azure.Response{Azure.Storage.Blobs.Models.BlobLease}.</returns>
 7091            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobLease> ChangeLeaseAsync_CreateResponse(
 7092                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 7093                Azure.Response response)
 7094            {
 7095                // Process the response
 7096                switch (response.Status)
 7097                {
 7098                    case 200:
 7099                    {
 7100                        // Create the result
 7101                        Azure.Storage.Blobs.Models.BlobLease _value = new Azure.Storage.Blobs.Models.BlobLease();
 7102
 7103                        // Get response headers
 7104                        string _header;
 7105                        if (response.Headers.TryGetValue("ETag", out _header))
 7106                        {
 7107                            _value.ETag = new Azure.ETag(_header);
 7108                        }
 7109                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 7110                        {
 7111                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 7112                        }
 7113                        if (response.Headers.TryGetValue("x-ms-lease-id", out _header))
 7114                        {
 7115                            _value.LeaseId = _header;
 7116                        }
 7117
 7118                        // Create the response
 7119                        return Response.FromValue(_value, response);
 7120                    }
 7121                    default:
 7122                    {
 7123                        // Create the result
 7124                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 7125                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 7126
 7127                        throw _value.CreateException(clientDiagnostics, response);
 7128                    }
 7129                }
 7130            }
 7131            #endregion Blob.ChangeLeaseAsync
 7132
 7133            #region Blob.BreakLeaseAsync
 7134            /// <summary>
 7135            /// [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operatio
 7136            /// </summary>
 7137            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 7138            /// <param name="pipeline">The pipeline used for sending requests.</param>
 7139            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 7140            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 7141            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 7142            /// <param name="breakPeriod">For a break operation, proposed duration the lease should continue before it i
 7143            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 7144            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 7145            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 7146            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 7147            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 7148            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 7149            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 7150            /// <param name="operationName">Operation name.</param>
 7151            /// <param name="cancellationToken">Cancellation token.</param>
 7152            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BrokenLease}</returns>
 7153            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BrokenLease>>
 7154                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 7155                Azure.Core.Pipeline.HttpPipeline pipeline,
 7156                System.Uri resourceUri,
 7157                string version,
 7158                int? timeout = default,
 7159                long? breakPeriod = default,
 7160                System.DateTimeOffset? ifModifiedSince = default,
 7161                System.DateTimeOffset? ifUnmodifiedSince = default,
 7162                Azure.ETag? ifMatch = default,
 7163                Azure.ETag? ifNoneMatch = default,
 7164                string ifTags = default,
 7165                string requestId = default,
 7166                bool async = true,
 7167                string operationName = "BlobClient.BreakLease",
 7168                System.Threading.CancellationToken cancellationToken = default)
 7169            {
 7170                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 7171                try
 7172                {
 7173                    _scope.AddAttribute("url", resourceUri);
 7174                    _scope.Start();
 7175                    using (Azure.Core.HttpMessage _message = BreakLeaseAsync_CreateMessage(
 7176                        pipeline,
 7177                        resourceUri,
 7178                        version,
 7179                        timeout,
 7180                        breakPeriod,
 7181                        ifModifiedSince,
 7182                        ifUnmodifiedSince,
 7183                        ifMatch,
 7184                        ifNoneMatch,
 7185                        ifTags,
 7186                        requestId))
 7187                    {
 7188                        if (async)
 7189                        {
 7190                            // Send the request asynchronously if we're being called via an async path
 7191                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 7192                        }
 7193                        else
 7194                        {
 7195                            // Send the request synchronously through the API that blocks if we're being called via a sy
 7196                            // (this is safe because the Task will complete before the user can call Wait)
 7197                            pipeline.Send(_message, cancellationToken);
 7198                        }
 7199                        Azure.Response _response = _message.Response;
 7200                        cancellationToken.ThrowIfCancellationRequested();
 7201                        return BreakLeaseAsync_CreateResponse(clientDiagnostics, _response);
 7202                    }
 7203                }
 7204                catch (System.Exception ex)
 7205                {
 7206                    _scope.Failed(ex);
 7207                    throw;
 7208                }
 7209                finally
 7210                {
 7211                    _scope.Dispose();
 7212                }
 7213            }
 7214
 7215            /// <summary>
 7216            /// Create the Blob.BreakLeaseAsync request.
 7217            /// </summary>
 7218            /// <param name="pipeline">The pipeline used for sending requests.</param>
 7219            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 7220            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 7221            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 7222            /// <param name="breakPeriod">For a break operation, proposed duration the lease should continue before it i
 7223            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 7224            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 7225            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 7226            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 7227            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 7228            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 7229            /// <returns>The Blob.BreakLeaseAsync Message.</returns>
 7230            internal static Azure.Core.HttpMessage BreakLeaseAsync_CreateMessage(
 7231                Azure.Core.Pipeline.HttpPipeline pipeline,
 7232                System.Uri resourceUri,
 7233                string version,
 7234                int? timeout = default,
 7235                long? breakPeriod = default,
 7236                System.DateTimeOffset? ifModifiedSince = default,
 7237                System.DateTimeOffset? ifUnmodifiedSince = default,
 7238                Azure.ETag? ifMatch = default,
 7239                Azure.ETag? ifNoneMatch = default,
 7240                string ifTags = default,
 7241                string requestId = default)
 7242            {
 7243                // Validation
 7244                if (resourceUri == null)
 7245                {
 7246                    throw new System.ArgumentNullException(nameof(resourceUri));
 7247                }
 7248                if (version == null)
 7249                {
 7250                    throw new System.ArgumentNullException(nameof(version));
 7251                }
 7252
 7253                // Create the request
 7254                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 7255                Azure.Core.Request _request = _message.Request;
 7256
 7257                // Set the endpoint
 7258                _request.Method = Azure.Core.RequestMethod.Put;
 7259                _request.Uri.Reset(resourceUri);
 7260                _request.Uri.AppendQuery("comp", "lease", escapeValue: false);
 7261                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 7262
 7263                // Add request headers
 7264                _request.Headers.SetValue("x-ms-lease-action", "break");
 7265                _request.Headers.SetValue("x-ms-version", version);
 7266                if (breakPeriod != null) { _request.Headers.SetValue("x-ms-lease-break-period", breakPeriod.Value.ToStri
 7267                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 7268                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 7269                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 7270                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 7271                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 7272                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 7273
 7274                return _message;
 7275            }
 7276
 7277            /// <summary>
 7278            /// Create the Blob.BreakLeaseAsync response or throw a failure exception.
 7279            /// </summary>
 7280            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 7281            /// <param name="response">The raw Response.</param>
 7282            /// <returns>The Blob.BreakLeaseAsync Azure.Response{Azure.Storage.Blobs.Models.BrokenLease}.</returns>
 7283            internal static Azure.Response<Azure.Storage.Blobs.Models.BrokenLease> BreakLeaseAsync_CreateResponse(
 7284                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 7285                Azure.Response response)
 7286            {
 7287                // Process the response
 7288                switch (response.Status)
 7289                {
 7290                    case 202:
 7291                    {
 7292                        // Create the result
 7293                        Azure.Storage.Blobs.Models.BrokenLease _value = new Azure.Storage.Blobs.Models.BrokenLease();
 7294
 7295                        // Get response headers
 7296                        string _header;
 7297                        if (response.Headers.TryGetValue("ETag", out _header))
 7298                        {
 7299                            _value.ETag = new Azure.ETag(_header);
 7300                        }
 7301                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 7302                        {
 7303                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 7304                        }
 7305                        if (response.Headers.TryGetValue("x-ms-lease-time", out _header))
 7306                        {
 7307                            _value.LeaseTime = int.Parse(_header, System.Globalization.CultureInfo.InvariantCulture);
 7308                        }
 7309
 7310                        // Create the response
 7311                        return Response.FromValue(_value, response);
 7312                    }
 7313                    default:
 7314                    {
 7315                        // Create the result
 7316                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 7317                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 7318
 7319                        throw _value.CreateException(clientDiagnostics, response);
 7320                    }
 7321                }
 7322            }
 7323            #endregion Blob.BreakLeaseAsync
 7324
 7325            #region Blob.CreateSnapshotAsync
 7326            /// <summary>
 7327            /// The Create Snapshot operation creates a read-only snapshot of a blob
 7328            /// </summary>
 7329            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 7330            /// <param name="pipeline">The pipeline used for sending requests.</param>
 7331            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 7332            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 7333            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 7334            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 7335            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 7336            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 7337            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 7338            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 7339            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 7340            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 7341            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 7342            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 7343            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 7344            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 7345            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 7346            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 7347            /// <param name="operationName">Operation name.</param>
 7348            /// <param name="cancellationToken">Cancellation token.</param>
 7349            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobSnapshotInfo}</returns>
 7350            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobSnapshotI
 7351                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 7352                Azure.Core.Pipeline.HttpPipeline pipeline,
 7353                System.Uri resourceUri,
 7354                string version,
 7355                int? timeout = default,
 7356                System.Collections.Generic.IDictionary<string, string> metadata = default,
 7357                string encryptionKey = default,
 7358                string encryptionKeySha256 = default,
 7359                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 7360                string encryptionScope = default,
 7361                System.DateTimeOffset? ifModifiedSince = default,
 7362                System.DateTimeOffset? ifUnmodifiedSince = default,
 7363                Azure.ETag? ifMatch = default,
 7364                Azure.ETag? ifNoneMatch = default,
 7365                string ifTags = default,
 7366                string leaseId = default,
 7367                string requestId = default,
 7368                bool async = true,
 7369                string operationName = "BlobClient.CreateSnapshot",
 7370                System.Threading.CancellationToken cancellationToken = default)
 7371            {
 7372                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 7373                try
 7374                {
 7375                    _scope.AddAttribute("url", resourceUri);
 7376                    _scope.Start();
 7377                    using (Azure.Core.HttpMessage _message = CreateSnapshotAsync_CreateMessage(
 7378                        pipeline,
 7379                        resourceUri,
 7380                        version,
 7381                        timeout,
 7382                        metadata,
 7383                        encryptionKey,
 7384                        encryptionKeySha256,
 7385                        encryptionAlgorithm,
 7386                        encryptionScope,
 7387                        ifModifiedSince,
 7388                        ifUnmodifiedSince,
 7389                        ifMatch,
 7390                        ifNoneMatch,
 7391                        ifTags,
 7392                        leaseId,
 7393                        requestId))
 7394                    {
 7395                        if (async)
 7396                        {
 7397                            // Send the request asynchronously if we're being called via an async path
 7398                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 7399                        }
 7400                        else
 7401                        {
 7402                            // Send the request synchronously through the API that blocks if we're being called via a sy
 7403                            // (this is safe because the Task will complete before the user can call Wait)
 7404                            pipeline.Send(_message, cancellationToken);
 7405                        }
 7406                        Azure.Response _response = _message.Response;
 7407                        cancellationToken.ThrowIfCancellationRequested();
 7408                        return CreateSnapshotAsync_CreateResponse(clientDiagnostics, _response);
 7409                    }
 7410                }
 7411                catch (System.Exception ex)
 7412                {
 7413                    _scope.Failed(ex);
 7414                    throw;
 7415                }
 7416                finally
 7417                {
 7418                    _scope.Dispose();
 7419                }
 7420            }
 7421
 7422            /// <summary>
 7423            /// Create the Blob.CreateSnapshotAsync request.
 7424            /// </summary>
 7425            /// <param name="pipeline">The pipeline used for sending requests.</param>
 7426            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 7427            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 7428            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 7429            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 7430            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 7431            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 7432            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 7433            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 7434            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 7435            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 7436            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 7437            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 7438            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 7439            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 7440            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 7441            /// <returns>The Blob.CreateSnapshotAsync Message.</returns>
 7442            internal static Azure.Core.HttpMessage CreateSnapshotAsync_CreateMessage(
 7443                Azure.Core.Pipeline.HttpPipeline pipeline,
 7444                System.Uri resourceUri,
 7445                string version,
 7446                int? timeout = default,
 7447                System.Collections.Generic.IDictionary<string, string> metadata = default,
 7448                string encryptionKey = default,
 7449                string encryptionKeySha256 = default,
 7450                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 7451                string encryptionScope = default,
 7452                System.DateTimeOffset? ifModifiedSince = default,
 7453                System.DateTimeOffset? ifUnmodifiedSince = default,
 7454                Azure.ETag? ifMatch = default,
 7455                Azure.ETag? ifNoneMatch = default,
 7456                string ifTags = default,
 7457                string leaseId = default,
 7458                string requestId = default)
 7459            {
 7460                // Validation
 7461                if (resourceUri == null)
 7462                {
 7463                    throw new System.ArgumentNullException(nameof(resourceUri));
 7464                }
 7465                if (version == null)
 7466                {
 7467                    throw new System.ArgumentNullException(nameof(version));
 7468                }
 7469
 7470                // Create the request
 7471                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 7472                Azure.Core.Request _request = _message.Request;
 7473
 7474                // Set the endpoint
 7475                _request.Method = Azure.Core.RequestMethod.Put;
 7476                _request.Uri.Reset(resourceUri);
 7477                _request.Uri.AppendQuery("comp", "snapshot", escapeValue: false);
 7478                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 7479
 7480                // Add request headers
 7481                _request.Headers.SetValue("x-ms-version", version);
 7482                if (metadata != null) {
 7483                    foreach (System.Collections.Generic.KeyValuePair<string, string> _pair in metadata)
 7484                    {
 7485                        _request.Headers.SetValue("x-ms-meta-" + _pair.Key, _pair.Value);
 7486                    }
 7487                }
 7488                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 7489                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 7490                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 7491                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 7492                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 7493                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 7494                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 7495                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 7496                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 7497                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 7498                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 7499
 7500                return _message;
 7501            }
 7502
 7503            /// <summary>
 7504            /// Create the Blob.CreateSnapshotAsync response or throw a failure exception.
 7505            /// </summary>
 7506            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 7507            /// <param name="response">The raw Response.</param>
 7508            /// <returns>The Blob.CreateSnapshotAsync Azure.Response{Azure.Storage.Blobs.Models.BlobSnapshotInfo}.</retu
 7509            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobSnapshotInfo> CreateSnapshotAsync_CreateRespon
 7510                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 7511                Azure.Response response)
 7512            {
 7513                // Process the response
 7514                switch (response.Status)
 7515                {
 7516                    case 201:
 7517                    {
 7518                        // Create the result
 7519                        Azure.Storage.Blobs.Models.BlobSnapshotInfo _value = new Azure.Storage.Blobs.Models.BlobSnapshot
 7520
 7521                        // Get response headers
 7522                        string _header;
 7523                        if (response.Headers.TryGetValue("x-ms-snapshot", out _header))
 7524                        {
 7525                            _value.Snapshot = _header;
 7526                        }
 7527                        if (response.Headers.TryGetValue("ETag", out _header))
 7528                        {
 7529                            _value.ETag = new Azure.ETag(_header);
 7530                        }
 7531                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 7532                        {
 7533                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 7534                        }
 7535                        if (response.Headers.TryGetValue("x-ms-version-id", out _header))
 7536                        {
 7537                            _value.VersionId = _header;
 7538                        }
 7539                        if (response.Headers.TryGetValue("x-ms-request-server-encrypted", out _header))
 7540                        {
 7541                            _value.IsServerEncrypted = bool.Parse(_header);
 7542                        }
 7543
 7544                        // Create the response
 7545                        return Response.FromValue(_value, response);
 7546                    }
 7547                    default:
 7548                    {
 7549                        // Create the result
 7550                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 7551                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 7552
 7553                        throw _value.CreateException(clientDiagnostics, response);
 7554                    }
 7555                }
 7556            }
 7557            #endregion Blob.CreateSnapshotAsync
 7558
 7559            #region Blob.StartCopyFromUriAsync
 7560            /// <summary>
 7561            /// The Start Copy From URL operation copies a blob or an internet resource to a new blob.
 7562            /// </summary>
 7563            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 7564            /// <param name="pipeline">The pipeline used for sending requests.</param>
 7565            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 7566            /// <param name="copySource">Specifies the name of the source page blob snapshot. This value is a URL of up 
 7567            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 7568            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 7569            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 7570            /// <param name="tier">Optional. Indicates the tier to be set on the blob.</param>
 7571            /// <param name="rehydratePriority">Optional: Indicates the priority with which to rehydrate an archived blo
 7572            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 7573            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 7574            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 7575            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 7576            /// <param name="sourceIfTags">Specify a SQL where clause on blob tags to operate only on blobs with a match
 7577            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 7578            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 7579            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 7580            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 7581            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 7582            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 7583            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 7584            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 7585            /// <param name="sealBlob">Overrides the sealed state of the destination blob.  Service version 2019-12-12 a
 7586            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 7587            /// <param name="operationName">Operation name.</param>
 7588            /// <param name="cancellationToken">Cancellation token.</param>
 7589            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobCopyInfo}</returns>
 7590            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobCopyInfo>
 7591                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 7592                Azure.Core.Pipeline.HttpPipeline pipeline,
 7593                System.Uri resourceUri,
 7594                System.Uri copySource,
 7595                string version,
 7596                int? timeout = default,
 7597                System.Collections.Generic.IDictionary<string, string> metadata = default,
 7598                Azure.Storage.Blobs.Models.AccessTier? tier = default,
 7599                Azure.Storage.Blobs.Models.RehydratePriority? rehydratePriority = default,
 7600                System.DateTimeOffset? sourceIfModifiedSince = default,
 7601                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 7602                Azure.ETag? sourceIfMatch = default,
 7603                Azure.ETag? sourceIfNoneMatch = default,
 7604                string sourceIfTags = default,
 7605                System.DateTimeOffset? ifModifiedSince = default,
 7606                System.DateTimeOffset? ifUnmodifiedSince = default,
 7607                Azure.ETag? ifMatch = default,
 7608                Azure.ETag? ifNoneMatch = default,
 7609                string ifTags = default,
 7610                string leaseId = default,
 7611                string requestId = default,
 7612                string blobTagsString = default,
 7613                bool? sealBlob = default,
 7614                bool async = true,
 7615                string operationName = "BlobClient.StartCopyFromUri",
 7616                System.Threading.CancellationToken cancellationToken = default)
 7617            {
 7618                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 7619                try
 7620                {
 7621                    _scope.AddAttribute("url", resourceUri);
 7622                    _scope.Start();
 7623                    using (Azure.Core.HttpMessage _message = StartCopyFromUriAsync_CreateMessage(
 7624                        pipeline,
 7625                        resourceUri,
 7626                        copySource,
 7627                        version,
 7628                        timeout,
 7629                        metadata,
 7630                        tier,
 7631                        rehydratePriority,
 7632                        sourceIfModifiedSince,
 7633                        sourceIfUnmodifiedSince,
 7634                        sourceIfMatch,
 7635                        sourceIfNoneMatch,
 7636                        sourceIfTags,
 7637                        ifModifiedSince,
 7638                        ifUnmodifiedSince,
 7639                        ifMatch,
 7640                        ifNoneMatch,
 7641                        ifTags,
 7642                        leaseId,
 7643                        requestId,
 7644                        blobTagsString,
 7645                        sealBlob))
 7646                    {
 7647                        if (async)
 7648                        {
 7649                            // Send the request asynchronously if we're being called via an async path
 7650                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 7651                        }
 7652                        else
 7653                        {
 7654                            // Send the request synchronously through the API that blocks if we're being called via a sy
 7655                            // (this is safe because the Task will complete before the user can call Wait)
 7656                            pipeline.Send(_message, cancellationToken);
 7657                        }
 7658                        Azure.Response _response = _message.Response;
 7659                        cancellationToken.ThrowIfCancellationRequested();
 7660                        return StartCopyFromUriAsync_CreateResponse(clientDiagnostics, _response);
 7661                    }
 7662                }
 7663                catch (System.Exception ex)
 7664                {
 7665                    _scope.Failed(ex);
 7666                    throw;
 7667                }
 7668                finally
 7669                {
 7670                    _scope.Dispose();
 7671                }
 7672            }
 7673
 7674            /// <summary>
 7675            /// Create the Blob.StartCopyFromUriAsync request.
 7676            /// </summary>
 7677            /// <param name="pipeline">The pipeline used for sending requests.</param>
 7678            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 7679            /// <param name="copySource">Specifies the name of the source page blob snapshot. This value is a URL of up 
 7680            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 7681            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 7682            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 7683            /// <param name="tier">Optional. Indicates the tier to be set on the blob.</param>
 7684            /// <param name="rehydratePriority">Optional: Indicates the priority with which to rehydrate an archived blo
 7685            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 7686            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 7687            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 7688            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 7689            /// <param name="sourceIfTags">Specify a SQL where clause on blob tags to operate only on blobs with a match
 7690            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 7691            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 7692            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 7693            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 7694            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 7695            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 7696            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 7697            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 7698            /// <param name="sealBlob">Overrides the sealed state of the destination blob.  Service version 2019-12-12 a
 7699            /// <returns>The Blob.StartCopyFromUriAsync Message.</returns>
 7700            internal static Azure.Core.HttpMessage StartCopyFromUriAsync_CreateMessage(
 7701                Azure.Core.Pipeline.HttpPipeline pipeline,
 7702                System.Uri resourceUri,
 7703                System.Uri copySource,
 7704                string version,
 7705                int? timeout = default,
 7706                System.Collections.Generic.IDictionary<string, string> metadata = default,
 7707                Azure.Storage.Blobs.Models.AccessTier? tier = default,
 7708                Azure.Storage.Blobs.Models.RehydratePriority? rehydratePriority = default,
 7709                System.DateTimeOffset? sourceIfModifiedSince = default,
 7710                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 7711                Azure.ETag? sourceIfMatch = default,
 7712                Azure.ETag? sourceIfNoneMatch = default,
 7713                string sourceIfTags = default,
 7714                System.DateTimeOffset? ifModifiedSince = default,
 7715                System.DateTimeOffset? ifUnmodifiedSince = default,
 7716                Azure.ETag? ifMatch = default,
 7717                Azure.ETag? ifNoneMatch = default,
 7718                string ifTags = default,
 7719                string leaseId = default,
 7720                string requestId = default,
 7721                string blobTagsString = default,
 7722                bool? sealBlob = default)
 7723            {
 7724                // Validation
 7725                if (resourceUri == null)
 7726                {
 7727                    throw new System.ArgumentNullException(nameof(resourceUri));
 7728                }
 7729                if (copySource == null)
 7730                {
 7731                    throw new System.ArgumentNullException(nameof(copySource));
 7732                }
 7733                if (version == null)
 7734                {
 7735                    throw new System.ArgumentNullException(nameof(version));
 7736                }
 7737
 7738                // Create the request
 7739                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 7740                Azure.Core.Request _request = _message.Request;
 7741
 7742                // Set the endpoint
 7743                _request.Method = Azure.Core.RequestMethod.Put;
 7744                _request.Uri.Reset(resourceUri);
 7745                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 7746
 7747                // Add request headers
 7748                _request.Headers.SetValue("x-ms-copy-source", copySource.AbsoluteUri);
 7749                _request.Headers.SetValue("x-ms-version", version);
 7750                if (metadata != null) {
 7751                    foreach (System.Collections.Generic.KeyValuePair<string, string> _pair in metadata)
 7752                    {
 7753                        _request.Headers.SetValue("x-ms-meta-" + _pair.Key, _pair.Value);
 7754                    }
 7755                }
 7756                if (tier != null) { _request.Headers.SetValue("x-ms-access-tier", tier.ToString()); }
 7757                if (rehydratePriority != null) { _request.Headers.SetValue("x-ms-rehydrate-priority", rehydratePriority.
 7758                if (sourceIfModifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-modified-since", sourceIf
 7759                if (sourceIfUnmodifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-unmodified-since", sour
 7760                if (sourceIfMatch != null) { _request.Headers.SetValue("x-ms-source-if-match", sourceIfMatch.Value.ToStr
 7761                if (sourceIfNoneMatch != null) { _request.Headers.SetValue("x-ms-source-if-none-match", sourceIfNoneMatc
 7762                if (sourceIfTags != null) { _request.Headers.SetValue("x-ms-source-if-tags", sourceIfTags); }
 7763                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 7764                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 7765                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 7766                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 7767                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 7768                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 7769                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 7770                if (blobTagsString != null) { _request.Headers.SetValue("x-ms-tags", blobTagsString); }
 7771                if (sealBlob != null) {
 7772                #pragma warning disable CA1308 // Normalize strings to uppercase
 7773                _request.Headers.SetValue("x-ms-seal-blob", sealBlob.Value.ToString(System.Globalization.CultureInfo.Inv
 7774                #pragma warning restore CA1308 // Normalize strings to uppercase
 7775                }
 7776
 7777                return _message;
 7778            }
 7779
 7780            /// <summary>
 7781            /// Create the Blob.StartCopyFromUriAsync response or throw a failure exception.
 7782            /// </summary>
 7783            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 7784            /// <param name="response">The raw Response.</param>
 7785            /// <returns>The Blob.StartCopyFromUriAsync Azure.Response{Azure.Storage.Blobs.Models.BlobCopyInfo}.</return
 7786            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobCopyInfo> StartCopyFromUriAsync_CreateResponse
 7787                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 7788                Azure.Response response)
 7789            {
 7790                // Process the response
 7791                switch (response.Status)
 7792                {
 7793                    case 202:
 7794                    {
 7795                        // Create the result
 7796                        Azure.Storage.Blobs.Models.BlobCopyInfo _value = new Azure.Storage.Blobs.Models.BlobCopyInfo();
 7797
 7798                        // Get response headers
 7799                        string _header;
 7800                        if (response.Headers.TryGetValue("ETag", out _header))
 7801                        {
 7802                            _value.ETag = new Azure.ETag(_header);
 7803                        }
 7804                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 7805                        {
 7806                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 7807                        }
 7808                        if (response.Headers.TryGetValue("x-ms-version-id", out _header))
 7809                        {
 7810                            _value.VersionId = _header;
 7811                        }
 7812                        if (response.Headers.TryGetValue("x-ms-copy-id", out _header))
 7813                        {
 7814                            _value.CopyId = _header;
 7815                        }
 7816                        if (response.Headers.TryGetValue("x-ms-copy-status", out _header))
 7817                        {
 7818                            _value.CopyStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseCopyStatus(_header
 7819                        }
 7820
 7821                        // Create the response
 7822                        return Response.FromValue(_value, response);
 7823                    }
 7824                    default:
 7825                    {
 7826                        // Create the result
 7827                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 7828                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 7829
 7830                        throw _value.CreateException(clientDiagnostics, response);
 7831                    }
 7832                }
 7833            }
 7834            #endregion Blob.StartCopyFromUriAsync
 7835
 7836            #region Blob.CopyFromUriAsync
 7837            /// <summary>
 7838            /// The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return a re
 7839            /// </summary>
 7840            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 7841            /// <param name="pipeline">The pipeline used for sending requests.</param>
 7842            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 7843            /// <param name="copySource">Specifies the name of the source page blob snapshot. This value is a URL of up 
 7844            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 7845            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 7846            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 7847            /// <param name="tier">Optional. Indicates the tier to be set on the blob.</param>
 7848            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 7849            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 7850            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 7851            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 7852            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 7853            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 7854            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 7855            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 7856            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 7857            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 7858            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 7859            /// <param name="sourceContentHash">Specify the md5 calculated for the range of bytes that must be read from
 7860            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 7861            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 7862            /// <param name="operationName">Operation name.</param>
 7863            /// <param name="cancellationToken">Cancellation token.</param>
 7864            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobCopyInfo}</returns>
 7865            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobCopyInfo>
 7866                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 7867                Azure.Core.Pipeline.HttpPipeline pipeline,
 7868                System.Uri resourceUri,
 7869                System.Uri copySource,
 7870                string version,
 7871                int? timeout = default,
 7872                System.Collections.Generic.IDictionary<string, string> metadata = default,
 7873                Azure.Storage.Blobs.Models.AccessTier? tier = default,
 7874                System.DateTimeOffset? sourceIfModifiedSince = default,
 7875                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 7876                Azure.ETag? sourceIfMatch = default,
 7877                Azure.ETag? sourceIfNoneMatch = default,
 7878                System.DateTimeOffset? ifModifiedSince = default,
 7879                System.DateTimeOffset? ifUnmodifiedSince = default,
 7880                Azure.ETag? ifMatch = default,
 7881                Azure.ETag? ifNoneMatch = default,
 7882                string ifTags = default,
 7883                string leaseId = default,
 7884                string requestId = default,
 7885                byte[] sourceContentHash = default,
 7886                string blobTagsString = default,
 7887                bool async = true,
 7888                string operationName = "BlobClient.CopyFromUri",
 7889                System.Threading.CancellationToken cancellationToken = default)
 7890            {
 7891                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 7892                try
 7893                {
 7894                    _scope.AddAttribute("url", resourceUri);
 7895                    _scope.Start();
 7896                    using (Azure.Core.HttpMessage _message = CopyFromUriAsync_CreateMessage(
 7897                        pipeline,
 7898                        resourceUri,
 7899                        copySource,
 7900                        version,
 7901                        timeout,
 7902                        metadata,
 7903                        tier,
 7904                        sourceIfModifiedSince,
 7905                        sourceIfUnmodifiedSince,
 7906                        sourceIfMatch,
 7907                        sourceIfNoneMatch,
 7908                        ifModifiedSince,
 7909                        ifUnmodifiedSince,
 7910                        ifMatch,
 7911                        ifNoneMatch,
 7912                        ifTags,
 7913                        leaseId,
 7914                        requestId,
 7915                        sourceContentHash,
 7916                        blobTagsString))
 7917                    {
 7918                        if (async)
 7919                        {
 7920                            // Send the request asynchronously if we're being called via an async path
 7921                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 7922                        }
 7923                        else
 7924                        {
 7925                            // Send the request synchronously through the API that blocks if we're being called via a sy
 7926                            // (this is safe because the Task will complete before the user can call Wait)
 7927                            pipeline.Send(_message, cancellationToken);
 7928                        }
 7929                        Azure.Response _response = _message.Response;
 7930                        cancellationToken.ThrowIfCancellationRequested();
 7931                        return CopyFromUriAsync_CreateResponse(clientDiagnostics, _response);
 7932                    }
 7933                }
 7934                catch (System.Exception ex)
 7935                {
 7936                    _scope.Failed(ex);
 7937                    throw;
 7938                }
 7939                finally
 7940                {
 7941                    _scope.Dispose();
 7942                }
 7943            }
 7944
 7945            /// <summary>
 7946            /// Create the Blob.CopyFromUriAsync request.
 7947            /// </summary>
 7948            /// <param name="pipeline">The pipeline used for sending requests.</param>
 7949            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 7950            /// <param name="copySource">Specifies the name of the source page blob snapshot. This value is a URL of up 
 7951            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 7952            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 7953            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 7954            /// <param name="tier">Optional. Indicates the tier to be set on the blob.</param>
 7955            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 7956            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 7957            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 7958            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 7959            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 7960            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 7961            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 7962            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 7963            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 7964            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 7965            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 7966            /// <param name="sourceContentHash">Specify the md5 calculated for the range of bytes that must be read from
 7967            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 7968            /// <returns>The Blob.CopyFromUriAsync Message.</returns>
 7969            internal static Azure.Core.HttpMessage CopyFromUriAsync_CreateMessage(
 7970                Azure.Core.Pipeline.HttpPipeline pipeline,
 7971                System.Uri resourceUri,
 7972                System.Uri copySource,
 7973                string version,
 7974                int? timeout = default,
 7975                System.Collections.Generic.IDictionary<string, string> metadata = default,
 7976                Azure.Storage.Blobs.Models.AccessTier? tier = default,
 7977                System.DateTimeOffset? sourceIfModifiedSince = default,
 7978                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 7979                Azure.ETag? sourceIfMatch = default,
 7980                Azure.ETag? sourceIfNoneMatch = default,
 7981                System.DateTimeOffset? ifModifiedSince = default,
 7982                System.DateTimeOffset? ifUnmodifiedSince = default,
 7983                Azure.ETag? ifMatch = default,
 7984                Azure.ETag? ifNoneMatch = default,
 7985                string ifTags = default,
 7986                string leaseId = default,
 7987                string requestId = default,
 7988                byte[] sourceContentHash = default,
 7989                string blobTagsString = default)
 7990            {
 7991                // Validation
 7992                if (resourceUri == null)
 7993                {
 7994                    throw new System.ArgumentNullException(nameof(resourceUri));
 7995                }
 7996                if (copySource == null)
 7997                {
 7998                    throw new System.ArgumentNullException(nameof(copySource));
 7999                }
 8000                if (version == null)
 8001                {
 8002                    throw new System.ArgumentNullException(nameof(version));
 8003                }
 8004
 8005                // Create the request
 8006                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 8007                Azure.Core.Request _request = _message.Request;
 8008
 8009                // Set the endpoint
 8010                _request.Method = Azure.Core.RequestMethod.Put;
 8011                _request.Uri.Reset(resourceUri);
 8012                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 8013
 8014                // Add request headers
 8015                _request.Headers.SetValue("x-ms-requires-sync", "true");
 8016                _request.Headers.SetValue("x-ms-copy-source", copySource.AbsoluteUri);
 8017                _request.Headers.SetValue("x-ms-version", version);
 8018                if (metadata != null) {
 8019                    foreach (System.Collections.Generic.KeyValuePair<string, string> _pair in metadata)
 8020                    {
 8021                        _request.Headers.SetValue("x-ms-meta-" + _pair.Key, _pair.Value);
 8022                    }
 8023                }
 8024                if (tier != null) { _request.Headers.SetValue("x-ms-access-tier", tier.ToString()); }
 8025                if (sourceIfModifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-modified-since", sourceIf
 8026                if (sourceIfUnmodifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-unmodified-since", sour
 8027                if (sourceIfMatch != null) { _request.Headers.SetValue("x-ms-source-if-match", sourceIfMatch.Value.ToStr
 8028                if (sourceIfNoneMatch != null) { _request.Headers.SetValue("x-ms-source-if-none-match", sourceIfNoneMatc
 8029                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 8030                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 8031                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 8032                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 8033                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 8034                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 8035                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 8036                if (sourceContentHash != null) { _request.Headers.SetValue("x-ms-source-content-md5", System.Convert.ToB
 8037                if (blobTagsString != null) { _request.Headers.SetValue("x-ms-tags", blobTagsString); }
 8038
 8039                return _message;
 8040            }
 8041
 8042            /// <summary>
 8043            /// Create the Blob.CopyFromUriAsync response or throw a failure exception.
 8044            /// </summary>
 8045            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 8046            /// <param name="response">The raw Response.</param>
 8047            /// <returns>The Blob.CopyFromUriAsync Azure.Response{Azure.Storage.Blobs.Models.BlobCopyInfo}.</returns>
 8048            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobCopyInfo> CopyFromUriAsync_CreateResponse(
 8049                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 8050                Azure.Response response)
 8051            {
 8052                // Process the response
 8053                switch (response.Status)
 8054                {
 8055                    case 202:
 8056                    {
 8057                        // Create the result
 8058                        Azure.Storage.Blobs.Models.BlobCopyInfo _value = new Azure.Storage.Blobs.Models.BlobCopyInfo();
 8059
 8060                        // Get response headers
 8061                        string _header;
 8062                        if (response.Headers.TryGetValue("ETag", out _header))
 8063                        {
 8064                            _value.ETag = new Azure.ETag(_header);
 8065                        }
 8066                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 8067                        {
 8068                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 8069                        }
 8070                        if (response.Headers.TryGetValue("x-ms-version-id", out _header))
 8071                        {
 8072                            _value.VersionId = _header;
 8073                        }
 8074                        if (response.Headers.TryGetValue("x-ms-copy-id", out _header))
 8075                        {
 8076                            _value.CopyId = _header;
 8077                        }
 8078                        if (response.Headers.TryGetValue("x-ms-copy-status", out _header))
 8079                        {
 8080                            _value.CopyStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseCopyStatus(_header
 8081                        }
 8082
 8083                        // Create the response
 8084                        return Response.FromValue(_value, response);
 8085                    }
 8086                    case 304:
 8087                    {
 8088                        // Create the result
 8089                        Azure.Storage.Blobs.Models.ConditionNotMetError _value = new Azure.Storage.Blobs.Models.Conditio
 8090
 8091                        // Get response headers
 8092                        string _header;
 8093                        if (response.Headers.TryGetValue("x-ms-error-code", out _header))
 8094                        {
 8095                            _value.ErrorCode = _header;
 8096                        }
 8097
 8098                        throw _value.CreateException(clientDiagnostics, response);
 8099                    }
 8100                    default:
 8101                    {
 8102                        // Create the result
 8103                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 8104                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 8105
 8106                        throw _value.CreateException(clientDiagnostics, response);
 8107                    }
 8108                }
 8109            }
 8110            #endregion Blob.CopyFromUriAsync
 8111
 8112            #region Blob.AbortCopyFromUriAsync
 8113            /// <summary>
 8114            /// The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination blo
 8115            /// </summary>
 8116            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 8117            /// <param name="pipeline">The pipeline used for sending requests.</param>
 8118            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 8119            /// <param name="copyId">The copy identifier provided in the x-ms-copy-id header of the original Copy Blob o
 8120            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 8121            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 8122            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 8123            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 8124            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 8125            /// <param name="operationName">Operation name.</param>
 8126            /// <param name="cancellationToken">Cancellation token.</param>
 8127            /// <returns>Azure.Response</returns>
 8128            public static async System.Threading.Tasks.ValueTask<Azure.Response> AbortCopyFromUriAsync(
 8129                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 8130                Azure.Core.Pipeline.HttpPipeline pipeline,
 8131                System.Uri resourceUri,
 8132                string copyId,
 8133                string version,
 8134                int? timeout = default,
 8135                string leaseId = default,
 8136                string requestId = default,
 8137                bool async = true,
 8138                string operationName = "BlobClient.AbortCopyFromUri",
 8139                System.Threading.CancellationToken cancellationToken = default)
 8140            {
 8141                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 8142                try
 8143                {
 8144                    _scope.AddAttribute("url", resourceUri);
 8145                    _scope.Start();
 8146                    using (Azure.Core.HttpMessage _message = AbortCopyFromUriAsync_CreateMessage(
 8147                        pipeline,
 8148                        resourceUri,
 8149                        copyId,
 8150                        version,
 8151                        timeout,
 8152                        leaseId,
 8153                        requestId))
 8154                    {
 8155                        if (async)
 8156                        {
 8157                            // Send the request asynchronously if we're being called via an async path
 8158                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 8159                        }
 8160                        else
 8161                        {
 8162                            // Send the request synchronously through the API that blocks if we're being called via a sy
 8163                            // (this is safe because the Task will complete before the user can call Wait)
 8164                            pipeline.Send(_message, cancellationToken);
 8165                        }
 8166                        Azure.Response _response = _message.Response;
 8167                        cancellationToken.ThrowIfCancellationRequested();
 8168                        return AbortCopyFromUriAsync_CreateResponse(clientDiagnostics, _response);
 8169                    }
 8170                }
 8171                catch (System.Exception ex)
 8172                {
 8173                    _scope.Failed(ex);
 8174                    throw;
 8175                }
 8176                finally
 8177                {
 8178                    _scope.Dispose();
 8179                }
 8180            }
 8181
 8182            /// <summary>
 8183            /// Create the Blob.AbortCopyFromUriAsync request.
 8184            /// </summary>
 8185            /// <param name="pipeline">The pipeline used for sending requests.</param>
 8186            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 8187            /// <param name="copyId">The copy identifier provided in the x-ms-copy-id header of the original Copy Blob o
 8188            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 8189            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 8190            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 8191            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 8192            /// <returns>The Blob.AbortCopyFromUriAsync Message.</returns>
 8193            internal static Azure.Core.HttpMessage AbortCopyFromUriAsync_CreateMessage(
 8194                Azure.Core.Pipeline.HttpPipeline pipeline,
 8195                System.Uri resourceUri,
 8196                string copyId,
 8197                string version,
 8198                int? timeout = default,
 8199                string leaseId = default,
 8200                string requestId = default)
 8201            {
 8202                // Validation
 8203                if (resourceUri == null)
 8204                {
 8205                    throw new System.ArgumentNullException(nameof(resourceUri));
 8206                }
 8207                if (copyId == null)
 8208                {
 8209                    throw new System.ArgumentNullException(nameof(copyId));
 8210                }
 8211                if (version == null)
 8212                {
 8213                    throw new System.ArgumentNullException(nameof(version));
 8214                }
 8215
 8216                // Create the request
 8217                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 8218                Azure.Core.Request _request = _message.Request;
 8219
 8220                // Set the endpoint
 8221                _request.Method = Azure.Core.RequestMethod.Put;
 8222                _request.Uri.Reset(resourceUri);
 8223                _request.Uri.AppendQuery("comp", "copy", escapeValue: false);
 8224                _request.Uri.AppendQuery("copyid", copyId);
 8225                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 8226
 8227                // Add request headers
 8228                _request.Headers.SetValue("x-ms-copy-action", "abort");
 8229                _request.Headers.SetValue("x-ms-version", version);
 8230                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 8231                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 8232
 8233                return _message;
 8234            }
 8235
 8236            /// <summary>
 8237            /// Create the Blob.AbortCopyFromUriAsync response or throw a failure exception.
 8238            /// </summary>
 8239            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 8240            /// <param name="response">The raw Response.</param>
 8241            /// <returns>The Blob.AbortCopyFromUriAsync Azure.Response.</returns>
 8242            internal static Azure.Response AbortCopyFromUriAsync_CreateResponse(
 8243                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 8244                Azure.Response response)
 8245            {
 8246                // Process the response
 8247                switch (response.Status)
 8248                {
 8249                    case 204:
 8250                    {
 8251                        return response;
 8252                    }
 8253                    default:
 8254                    {
 8255                        // Create the result
 8256                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 8257                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 8258
 8259                        throw _value.CreateException(clientDiagnostics, response);
 8260                    }
 8261                }
 8262            }
 8263            #endregion Blob.AbortCopyFromUriAsync
 8264
 8265            #region Blob.SetAccessTierAsync
 8266            /// <summary>
 8267            /// The Set Tier operation sets the tier on a blob. The operation is allowed on a page blob in a premium sto
 8268            /// </summary>
 8269            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 8270            /// <param name="pipeline">The pipeline used for sending requests.</param>
 8271            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 8272            /// <param name="tier">Indicates the tier to be set on the blob.</param>
 8273            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 8274            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 8275            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 8276            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 8277            /// <param name="rehydratePriority">Optional: Indicates the priority with which to rehydrate an archived blo
 8278            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 8279            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 8280            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 8281            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 8282            /// <param name="operationName">Operation name.</param>
 8283            /// <param name="cancellationToken">Cancellation token.</param>
 8284            /// <returns>Azure.Response</returns>
 8285            public static async System.Threading.Tasks.ValueTask<Azure.Response> SetAccessTierAsync(
 8286                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 8287                Azure.Core.Pipeline.HttpPipeline pipeline,
 8288                System.Uri resourceUri,
 8289                Azure.Storage.Blobs.Models.AccessTier tier,
 8290                string version,
 8291                string snapshot = default,
 8292                string versionId = default,
 8293                int? timeout = default,
 8294                Azure.Storage.Blobs.Models.RehydratePriority? rehydratePriority = default,
 8295                string requestId = default,
 8296                string leaseId = default,
 8297                string ifTags = default,
 8298                bool async = true,
 8299                string operationName = "BlobClient.SetAccessTier",
 8300                System.Threading.CancellationToken cancellationToken = default)
 8301            {
 8302                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 8303                try
 8304                {
 8305                    _scope.AddAttribute("url", resourceUri);
 8306                    _scope.Start();
 8307                    using (Azure.Core.HttpMessage _message = SetAccessTierAsync_CreateMessage(
 8308                        pipeline,
 8309                        resourceUri,
 8310                        tier,
 8311                        version,
 8312                        snapshot,
 8313                        versionId,
 8314                        timeout,
 8315                        rehydratePriority,
 8316                        requestId,
 8317                        leaseId,
 8318                        ifTags))
 8319                    {
 8320                        if (async)
 8321                        {
 8322                            // Send the request asynchronously if we're being called via an async path
 8323                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 8324                        }
 8325                        else
 8326                        {
 8327                            // Send the request synchronously through the API that blocks if we're being called via a sy
 8328                            // (this is safe because the Task will complete before the user can call Wait)
 8329                            pipeline.Send(_message, cancellationToken);
 8330                        }
 8331                        Azure.Response _response = _message.Response;
 8332                        cancellationToken.ThrowIfCancellationRequested();
 8333                        return SetAccessTierAsync_CreateResponse(clientDiagnostics, _response);
 8334                    }
 8335                }
 8336                catch (System.Exception ex)
 8337                {
 8338                    _scope.Failed(ex);
 8339                    throw;
 8340                }
 8341                finally
 8342                {
 8343                    _scope.Dispose();
 8344                }
 8345            }
 8346
 8347            /// <summary>
 8348            /// Create the Blob.SetAccessTierAsync request.
 8349            /// </summary>
 8350            /// <param name="pipeline">The pipeline used for sending requests.</param>
 8351            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 8352            /// <param name="tier">Indicates the tier to be set on the blob.</param>
 8353            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 8354            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 8355            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 8356            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 8357            /// <param name="rehydratePriority">Optional: Indicates the priority with which to rehydrate an archived blo
 8358            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 8359            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 8360            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 8361            /// <returns>The Blob.SetAccessTierAsync Message.</returns>
 8362            internal static Azure.Core.HttpMessage SetAccessTierAsync_CreateMessage(
 8363                Azure.Core.Pipeline.HttpPipeline pipeline,
 8364                System.Uri resourceUri,
 8365                Azure.Storage.Blobs.Models.AccessTier tier,
 8366                string version,
 8367                string snapshot = default,
 8368                string versionId = default,
 8369                int? timeout = default,
 8370                Azure.Storage.Blobs.Models.RehydratePriority? rehydratePriority = default,
 8371                string requestId = default,
 8372                string leaseId = default,
 8373                string ifTags = default)
 8374            {
 8375                // Validation
 8376                if (resourceUri == null)
 8377                {
 8378                    throw new System.ArgumentNullException(nameof(resourceUri));
 8379                }
 8380                if (version == null)
 8381                {
 8382                    throw new System.ArgumentNullException(nameof(version));
 8383                }
 8384
 8385                // Create the request
 8386                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 8387                Azure.Core.Request _request = _message.Request;
 8388
 8389                // Set the endpoint
 8390                _request.Method = Azure.Core.RequestMethod.Put;
 8391                _request.Uri.Reset(resourceUri);
 8392                _request.Uri.AppendQuery("comp", "tier", escapeValue: false);
 8393                if (snapshot != null) { _request.Uri.AppendQuery("snapshot", snapshot); }
 8394                if (versionId != null) { _request.Uri.AppendQuery("versionid", versionId); }
 8395                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 8396
 8397                // Add request headers
 8398                _request.Headers.SetValue("x-ms-access-tier", tier.ToString());
 8399                _request.Headers.SetValue("x-ms-version", version);
 8400                if (rehydratePriority != null) { _request.Headers.SetValue("x-ms-rehydrate-priority", rehydratePriority.
 8401                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 8402                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 8403                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 8404
 8405                return _message;
 8406            }
 8407
 8408            /// <summary>
 8409            /// Create the Blob.SetAccessTierAsync response or throw a failure exception.
 8410            /// </summary>
 8411            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 8412            /// <param name="response">The raw Response.</param>
 8413            /// <returns>The Blob.SetAccessTierAsync Azure.Response.</returns>
 8414            internal static Azure.Response SetAccessTierAsync_CreateResponse(
 8415                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 8416                Azure.Response response)
 8417            {
 8418                // Process the response
 8419                switch (response.Status)
 8420                {
 8421                    case 200:
 8422                    {
 8423                        return response;
 8424                    }
 8425                    case 202:
 8426                    {
 8427                        return response;
 8428                    }
 8429                    default:
 8430                    {
 8431                        // Create the result
 8432                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 8433                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 8434
 8435                        throw _value.CreateException(clientDiagnostics, response);
 8436                    }
 8437                }
 8438            }
 8439            #endregion Blob.SetAccessTierAsync
 8440
 8441            #region Blob.QueryAsync
 8442            /// <summary>
 8443            /// The Query operation enables users to select/project on blob data by providing simple query expressions.
 8444            /// </summary>
 8445            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 8446            /// <param name="pipeline">The pipeline used for sending requests.</param>
 8447            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 8448            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 8449            /// <param name="queryRequest">the query request</param>
 8450            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 8451            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 8452            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 8453            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 8454            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 8455            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 8456            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 8457            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 8458            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 8459            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 8460            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 8461            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 8462            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 8463            /// <param name="operationName">Operation name.</param>
 8464            /// <param name="cancellationToken">Cancellation token.</param>
 8465            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobQueryResult}</returns>
 8466            public static async System.Threading.Tasks.ValueTask<(Azure.Response<Azure.Storage.Blobs.Models.BlobQueryRes
 8467                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 8468                Azure.Core.Pipeline.HttpPipeline pipeline,
 8469                System.Uri resourceUri,
 8470                string version,
 8471                Azure.Storage.Blobs.Models.QueryRequest queryRequest = default,
 8472                string snapshot = default,
 8473                int? timeout = default,
 8474                string leaseId = default,
 8475                string encryptionKey = default,
 8476                string encryptionKeySha256 = default,
 8477                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 8478                System.DateTimeOffset? ifModifiedSince = default,
 8479                System.DateTimeOffset? ifUnmodifiedSince = default,
 8480                Azure.ETag? ifMatch = default,
 8481                Azure.ETag? ifNoneMatch = default,
 8482                string ifTags = default,
 8483                string requestId = default,
 8484                bool async = true,
 8485                string operationName = "BlobClient.Query",
 8486                System.Threading.CancellationToken cancellationToken = default)
 8487            {
 8488                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 8489                try
 8490                {
 8491                    _scope.AddAttribute("url", resourceUri);
 8492                    _scope.Start();
 8493                    using (Azure.Core.HttpMessage _message = QueryAsync_CreateMessage(
 8494                        pipeline,
 8495                        resourceUri,
 8496                        version,
 8497                        queryRequest,
 8498                        snapshot,
 8499                        timeout,
 8500                        leaseId,
 8501                        encryptionKey,
 8502                        encryptionKeySha256,
 8503                        encryptionAlgorithm,
 8504                        ifModifiedSince,
 8505                        ifUnmodifiedSince,
 8506                        ifMatch,
 8507                        ifNoneMatch,
 8508                        ifTags,
 8509                        requestId))
 8510                    {
 8511                        // Avoid buffering if stream is going to be returned to the caller
 8512                        _message.BufferResponse = false;
 8513                        if (async)
 8514                        {
 8515                            // Send the request asynchronously if we're being called via an async path
 8516                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 8517                        }
 8518                        else
 8519                        {
 8520                            // Send the request synchronously through the API that blocks if we're being called via a sy
 8521                            // (this is safe because the Task will complete before the user can call Wait)
 8522                            pipeline.Send(_message, cancellationToken);
 8523                        }
 8524                        Azure.Response _response = _message.Response;
 8525                        cancellationToken.ThrowIfCancellationRequested();
 8526                        return (QueryAsync_CreateResponse(clientDiagnostics, _response), _message.ExtractResponseContent
 8527                    }
 8528                }
 8529                catch (System.Exception ex)
 8530                {
 8531                    _scope.Failed(ex);
 8532                    throw;
 8533                }
 8534                finally
 8535                {
 8536                    _scope.Dispose();
 8537                }
 8538            }
 8539
 8540            /// <summary>
 8541            /// Create the Blob.QueryAsync request.
 8542            /// </summary>
 8543            /// <param name="pipeline">The pipeline used for sending requests.</param>
 8544            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 8545            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 8546            /// <param name="queryRequest">the query request</param>
 8547            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 8548            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 8549            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 8550            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 8551            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 8552            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 8553            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 8554            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 8555            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 8556            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 8557            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 8558            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 8559            /// <returns>The Blob.QueryAsync Message.</returns>
 8560            internal static Azure.Core.HttpMessage QueryAsync_CreateMessage(
 8561                Azure.Core.Pipeline.HttpPipeline pipeline,
 8562                System.Uri resourceUri,
 8563                string version,
 8564                Azure.Storage.Blobs.Models.QueryRequest queryRequest = default,
 8565                string snapshot = default,
 8566                int? timeout = default,
 8567                string leaseId = default,
 8568                string encryptionKey = default,
 8569                string encryptionKeySha256 = default,
 8570                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 8571                System.DateTimeOffset? ifModifiedSince = default,
 8572                System.DateTimeOffset? ifUnmodifiedSince = default,
 8573                Azure.ETag? ifMatch = default,
 8574                Azure.ETag? ifNoneMatch = default,
 8575                string ifTags = default,
 8576                string requestId = default)
 8577            {
 8578                // Validation
 8579                if (resourceUri == null)
 8580                {
 8581                    throw new System.ArgumentNullException(nameof(resourceUri));
 8582                }
 8583                if (version == null)
 8584                {
 8585                    throw new System.ArgumentNullException(nameof(version));
 8586                }
 8587
 8588                // Create the request
 8589                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 8590                Azure.Core.Request _request = _message.Request;
 8591
 8592                // Set the endpoint
 8593                _request.Method = Azure.Core.RequestMethod.Post;
 8594                _request.Uri.Reset(resourceUri);
 8595                _request.Uri.AppendQuery("comp", "query", escapeValue: false);
 8596                if (snapshot != null) { _request.Uri.AppendQuery("snapshot", snapshot); }
 8597                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 8598
 8599                // Add request headers
 8600                _request.Headers.SetValue("x-ms-version", version);
 8601                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 8602                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 8603                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 8604                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 8605                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 8606                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 8607                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 8608                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 8609                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 8610                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 8611
 8612                // Create the body
 8613                if (queryRequest != null)
 8614                {
 8615                    System.Xml.Linq.XElement _body = Azure.Storage.Blobs.Models.QueryRequest.ToXml(queryRequest, "QueryR
 8616                    string _text = _body.ToString(System.Xml.Linq.SaveOptions.DisableFormatting);
 8617                    _request.Headers.SetValue("Content-Type", "application/xml");
 8618                    _request.Headers.SetValue("Content-Length", _text.Length.ToString(System.Globalization.CultureInfo.I
 8619                    _request.Content = Azure.Core.RequestContent.Create(System.Text.Encoding.UTF8.GetBytes(_text));
 8620                }
 8621
 8622                return _message;
 8623            }
 8624
 8625            /// <summary>
 8626            /// Create the Blob.QueryAsync response or throw a failure exception.
 8627            /// </summary>
 8628            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 8629            /// <param name="response">The raw Response.</param>
 8630            /// <returns>The Blob.QueryAsync Azure.Response{Azure.Storage.Blobs.Models.BlobQueryResult}.</returns>
 8631            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobQueryResult> QueryAsync_CreateResponse(
 8632                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 8633                Azure.Response response)
 8634            {
 8635                // Process the response
 8636                switch (response.Status)
 8637                {
 8638                    case 200:
 8639                    {
 8640                        // Create the result
 8641                        Azure.Storage.Blobs.Models.BlobQueryResult _value = new Azure.Storage.Blobs.Models.BlobQueryResu
 8642                        _value.Body = response.ContentStream; // You should manually wrap with RetriableStream!
 8643
 8644                        // Get response headers
 8645                        string _header;
 8646                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 8647                        {
 8648                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 8649                        }
 8650                        _value.Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringCompare
 8651                        foreach (Azure.Core.HttpHeader _headerPair in response.Headers)
 8652                        {
 8653                            if (_headerPair.Name.StartsWith("x-ms-meta-", System.StringComparison.InvariantCulture))
 8654                            {
 8655                                _value.Metadata[_headerPair.Name.Substring(10)] = _headerPair.Value;
 8656                            }
 8657                        }
 8658                        if (response.Headers.TryGetValue("Content-Length", out _header))
 8659                        {
 8660                            _value.ContentLength = long.Parse(_header, System.Globalization.CultureInfo.InvariantCulture
 8661                        }
 8662                        if (response.Headers.TryGetValue("Content-Type", out _header))
 8663                        {
 8664                            _value.ContentType = _header;
 8665                        }
 8666                        if (response.Headers.TryGetValue("Content-Range", out _header))
 8667                        {
 8668                            _value.ContentRange = _header;
 8669                        }
 8670                        if (response.Headers.TryGetValue("ETag", out _header))
 8671                        {
 8672                            _value.ETag = new Azure.ETag(_header);
 8673                        }
 8674                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 8675                        {
 8676                            _value.ContentHash = System.Convert.FromBase64String(_header);
 8677                        }
 8678                        if (response.Headers.TryGetValue("Content-Encoding", out _header))
 8679                        {
 8680                            _value.ContentEncoding = _header;
 8681                        }
 8682                        if (response.Headers.TryGetValue("Cache-Control", out _header))
 8683                        {
 8684                            _value.CacheControl = _header;
 8685                        }
 8686                        if (response.Headers.TryGetValue("Content-Disposition", out _header))
 8687                        {
 8688                            _value.ContentDisposition = _header;
 8689                        }
 8690                        if (response.Headers.TryGetValue("Content-Language", out _header))
 8691                        {
 8692                            _value.ContentLanguage = _header;
 8693                        }
 8694                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 8695                        {
 8696                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 8697                        }
 8698                        if (response.Headers.TryGetValue("x-ms-blob-type", out _header))
 8699                        {
 8700                            _value.BlobType = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseBlobType(_header);
 8701                        }
 8702                        if (response.Headers.TryGetValue("x-ms-copy-completion-time", out _header))
 8703                        {
 8704                            _value.CopyCompletionTime = System.DateTimeOffset.Parse(_header, System.Globalization.Cultur
 8705                        }
 8706                        if (response.Headers.TryGetValue("x-ms-copy-status-description", out _header))
 8707                        {
 8708                            _value.CopyStatusDescription = _header;
 8709                        }
 8710                        if (response.Headers.TryGetValue("x-ms-copy-id", out _header))
 8711                        {
 8712                            _value.CopyId = _header;
 8713                        }
 8714                        if (response.Headers.TryGetValue("x-ms-copy-progress", out _header))
 8715                        {
 8716                            _value.CopyProgress = _header;
 8717                        }
 8718                        if (response.Headers.TryGetValue("x-ms-copy-source", out _header))
 8719                        {
 8720                            _value.CopySource = _header;
 8721                        }
 8722                        if (response.Headers.TryGetValue("x-ms-copy-status", out _header))
 8723                        {
 8724                            _value.CopyStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseCopyStatus(_header
 8725                        }
 8726                        if (response.Headers.TryGetValue("x-ms-lease-duration", out _header))
 8727                        {
 8728                            _value.LeaseDuration = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseDurationTy
 8729                        }
 8730                        if (response.Headers.TryGetValue("x-ms-lease-state", out _header))
 8731                        {
 8732                            _value.LeaseState = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseState(_header
 8733                        }
 8734                        if (response.Headers.TryGetValue("x-ms-lease-status", out _header))
 8735                        {
 8736                            _value.LeaseStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseStatus(_head
 8737                        }
 8738                        if (response.Headers.TryGetValue("Accept-Ranges", out _header))
 8739                        {
 8740                            _value.AcceptRanges = _header;
 8741                        }
 8742                        if (response.Headers.TryGetValue("x-ms-blob-committed-block-count", out _header))
 8743                        {
 8744                            _value.BlobCommittedBlockCount = int.Parse(_header, System.Globalization.CultureInfo.Invaria
 8745                        }
 8746                        if (response.Headers.TryGetValue("x-ms-server-encrypted", out _header))
 8747                        {
 8748                            _value.IsServerEncrypted = bool.Parse(_header);
 8749                        }
 8750                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 8751                        {
 8752                            _value.EncryptionKeySha256 = _header;
 8753                        }
 8754                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 8755                        {
 8756                            _value.EncryptionScope = _header;
 8757                        }
 8758                        if (response.Headers.TryGetValue("x-ms-blob-content-md5", out _header))
 8759                        {
 8760                            _value.BlobContentMD5 = System.Convert.FromBase64String(_header);
 8761                        }
 8762
 8763                        // Create the response
 8764                        return Response.FromValue(_value, response);
 8765                    }
 8766                    case 206:
 8767                    {
 8768                        // Create the result
 8769                        Azure.Storage.Blobs.Models.BlobQueryResult _value = new Azure.Storage.Blobs.Models.BlobQueryResu
 8770                        _value.Body = response.ContentStream; // You should manually wrap with RetriableStream!
 8771
 8772                        // Get response headers
 8773                        string _header;
 8774                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 8775                        {
 8776                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 8777                        }
 8778                        _value.Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringCompare
 8779                        foreach (Azure.Core.HttpHeader _headerPair in response.Headers)
 8780                        {
 8781                            if (_headerPair.Name.StartsWith("x-ms-meta-", System.StringComparison.InvariantCulture))
 8782                            {
 8783                                _value.Metadata[_headerPair.Name.Substring(10)] = _headerPair.Value;
 8784                            }
 8785                        }
 8786                        if (response.Headers.TryGetValue("Content-Length", out _header))
 8787                        {
 8788                            _value.ContentLength = long.Parse(_header, System.Globalization.CultureInfo.InvariantCulture
 8789                        }
 8790                        if (response.Headers.TryGetValue("Content-Type", out _header))
 8791                        {
 8792                            _value.ContentType = _header;
 8793                        }
 8794                        if (response.Headers.TryGetValue("Content-Range", out _header))
 8795                        {
 8796                            _value.ContentRange = _header;
 8797                        }
 8798                        if (response.Headers.TryGetValue("ETag", out _header))
 8799                        {
 8800                            _value.ETag = new Azure.ETag(_header);
 8801                        }
 8802                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 8803                        {
 8804                            _value.ContentHash = System.Convert.FromBase64String(_header);
 8805                        }
 8806                        if (response.Headers.TryGetValue("Content-Encoding", out _header))
 8807                        {
 8808                            _value.ContentEncoding = _header;
 8809                        }
 8810                        if (response.Headers.TryGetValue("Cache-Control", out _header))
 8811                        {
 8812                            _value.CacheControl = _header;
 8813                        }
 8814                        if (response.Headers.TryGetValue("Content-Disposition", out _header))
 8815                        {
 8816                            _value.ContentDisposition = _header;
 8817                        }
 8818                        if (response.Headers.TryGetValue("Content-Language", out _header))
 8819                        {
 8820                            _value.ContentLanguage = _header;
 8821                        }
 8822                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 8823                        {
 8824                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 8825                        }
 8826                        if (response.Headers.TryGetValue("x-ms-blob-type", out _header))
 8827                        {
 8828                            _value.BlobType = (Azure.Storage.Blobs.Models.BlobType)System.Enum.Parse(typeof(Azure.Storag
 8829                        }
 8830                        if (response.Headers.TryGetValue("x-ms-content-crc64", out _header))
 8831                        {
 8832                            _value.ContentCrc64 = System.Convert.FromBase64String(_header);
 8833                        }
 8834                        if (response.Headers.TryGetValue("x-ms-copy-completion-time", out _header))
 8835                        {
 8836                            _value.CopyCompletionTime = System.DateTimeOffset.Parse(_header, System.Globalization.Cultur
 8837                        }
 8838                        if (response.Headers.TryGetValue("x-ms-copy-status-description", out _header))
 8839                        {
 8840                            _value.CopyStatusDescription = _header;
 8841                        }
 8842                        if (response.Headers.TryGetValue("x-ms-copy-id", out _header))
 8843                        {
 8844                            _value.CopyId = _header;
 8845                        }
 8846                        if (response.Headers.TryGetValue("x-ms-copy-progress", out _header))
 8847                        {
 8848                            _value.CopyProgress = _header;
 8849                        }
 8850                        if (response.Headers.TryGetValue("x-ms-copy-source", out _header))
 8851                        {
 8852                            _value.CopySource = _header;
 8853                        }
 8854                        if (response.Headers.TryGetValue("x-ms-copy-status", out _header))
 8855                        {
 8856                            _value.CopyStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseCopyStatus(_header
 8857                        }
 8858                        if (response.Headers.TryGetValue("x-ms-lease-duration", out _header))
 8859                        {
 8860                            _value.LeaseDuration = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseDurationTy
 8861                        }
 8862                        if (response.Headers.TryGetValue("x-ms-lease-state", out _header))
 8863                        {
 8864                            _value.LeaseState = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseState(_header
 8865                        }
 8866                        if (response.Headers.TryGetValue("x-ms-lease-status", out _header))
 8867                        {
 8868                            _value.LeaseStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseStatus(_head
 8869                        }
 8870                        if (response.Headers.TryGetValue("Accept-Ranges", out _header))
 8871                        {
 8872                            _value.AcceptRanges = _header;
 8873                        }
 8874                        if (response.Headers.TryGetValue("x-ms-blob-committed-block-count", out _header))
 8875                        {
 8876                            _value.BlobCommittedBlockCount = int.Parse(_header, System.Globalization.CultureInfo.Invaria
 8877                        }
 8878                        if (response.Headers.TryGetValue("x-ms-server-encrypted", out _header))
 8879                        {
 8880                            _value.IsServerEncrypted = bool.Parse(_header);
 8881                        }
 8882                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 8883                        {
 8884                            _value.EncryptionKeySha256 = _header;
 8885                        }
 8886                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 8887                        {
 8888                            _value.EncryptionScope = _header;
 8889                        }
 8890                        if (response.Headers.TryGetValue("x-ms-blob-content-md5", out _header))
 8891                        {
 8892                            _value.BlobContentMD5 = System.Convert.FromBase64String(_header);
 8893                        }
 8894
 8895                        // Create the response
 8896                        return Response.FromValue(_value, response);
 8897                    }
 8898                    default:
 8899                    {
 8900                        // Create the result
 8901                        Azure.Storage.Blobs.Models.FailureNoContent _value = new Azure.Storage.Blobs.Models.FailureNoCon
 8902
 8903                        // Get response headers
 8904                        string _header;
 8905                        if (response.Headers.TryGetValue("x-ms-error-code", out _header))
 8906                        {
 8907                            _value.ErrorCode = _header;
 8908                        }
 8909
 8910                        throw _value.CreateException(clientDiagnostics, response);
 8911                    }
 8912                }
 8913            }
 8914            #endregion Blob.QueryAsync
 8915
 8916            #region Blob.GetTagsAsync
 8917            /// <summary>
 8918            /// The Get Tags operation enables users to get the tags associated with a blob.
 8919            /// </summary>
 8920            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 8921            /// <param name="pipeline">The pipeline used for sending requests.</param>
 8922            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 8923            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 8924            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 8925            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 8926            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 8927            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 8928            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 8929            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 8930            /// <param name="operationName">Operation name.</param>
 8931            /// <param name="cancellationToken">Cancellation token.</param>
 8932            /// <returns>Blob tags</returns>
 8933            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobTags>> Ge
 8934                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 8935                Azure.Core.Pipeline.HttpPipeline pipeline,
 8936                System.Uri resourceUri,
 8937                string version,
 8938                int? timeout = default,
 8939                string requestId = default,
 8940                string snapshot = default,
 8941                string versionId = default,
 8942                string ifTags = default,
 8943                bool async = true,
 8944                string operationName = "BlobClient.GetTags",
 8945                System.Threading.CancellationToken cancellationToken = default)
 8946            {
 8947                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 8948                try
 8949                {
 8950                    _scope.AddAttribute("url", resourceUri);
 8951                    _scope.Start();
 8952                    using (Azure.Core.HttpMessage _message = GetTagsAsync_CreateMessage(
 8953                        pipeline,
 8954                        resourceUri,
 8955                        version,
 8956                        timeout,
 8957                        requestId,
 8958                        snapshot,
 8959                        versionId,
 8960                        ifTags))
 8961                    {
 8962                        if (async)
 8963                        {
 8964                            // Send the request asynchronously if we're being called via an async path
 8965                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 8966                        }
 8967                        else
 8968                        {
 8969                            // Send the request synchronously through the API that blocks if we're being called via a sy
 8970                            // (this is safe because the Task will complete before the user can call Wait)
 8971                            pipeline.Send(_message, cancellationToken);
 8972                        }
 8973                        Azure.Response _response = _message.Response;
 8974                        cancellationToken.ThrowIfCancellationRequested();
 8975                        return GetTagsAsync_CreateResponse(clientDiagnostics, _response);
 8976                    }
 8977                }
 8978                catch (System.Exception ex)
 8979                {
 8980                    _scope.Failed(ex);
 8981                    throw;
 8982                }
 8983                finally
 8984                {
 8985                    _scope.Dispose();
 8986                }
 8987            }
 8988
 8989            /// <summary>
 8990            /// Create the Blob.GetTagsAsync request.
 8991            /// </summary>
 8992            /// <param name="pipeline">The pipeline used for sending requests.</param>
 8993            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 8994            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 8995            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 8996            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 8997            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 8998            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 8999            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 9000            /// <returns>The Blob.GetTagsAsync Message.</returns>
 9001            internal static Azure.Core.HttpMessage GetTagsAsync_CreateMessage(
 9002                Azure.Core.Pipeline.HttpPipeline pipeline,
 9003                System.Uri resourceUri,
 9004                string version,
 9005                int? timeout = default,
 9006                string requestId = default,
 9007                string snapshot = default,
 9008                string versionId = default,
 9009                string ifTags = default)
 9010            {
 9011                // Validation
 9012                if (resourceUri == null)
 9013                {
 9014                    throw new System.ArgumentNullException(nameof(resourceUri));
 9015                }
 9016                if (version == null)
 9017                {
 9018                    throw new System.ArgumentNullException(nameof(version));
 9019                }
 9020
 9021                // Create the request
 9022                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 9023                Azure.Core.Request _request = _message.Request;
 9024
 9025                // Set the endpoint
 9026                _request.Method = Azure.Core.RequestMethod.Get;
 9027                _request.Uri.Reset(resourceUri);
 9028                _request.Uri.AppendQuery("comp", "tags", escapeValue: false);
 9029                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 9030                if (snapshot != null) { _request.Uri.AppendQuery("snapshot", snapshot); }
 9031                if (versionId != null) { _request.Uri.AppendQuery("versionid", versionId); }
 9032
 9033                // Add request headers
 9034                _request.Headers.SetValue("x-ms-version", version);
 9035                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 9036                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 9037
 9038                return _message;
 9039            }
 9040
 9041            /// <summary>
 9042            /// Create the Blob.GetTagsAsync response or throw a failure exception.
 9043            /// </summary>
 9044            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 9045            /// <param name="response">The raw Response.</param>
 9046            /// <returns>The Blob.GetTagsAsync Azure.Response{Azure.Storage.Blobs.Models.BlobTags}.</returns>
 9047            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobTags> GetTagsAsync_CreateResponse(
 9048                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 9049                Azure.Response response)
 9050            {
 9051                // Process the response
 9052                switch (response.Status)
 9053                {
 9054                    case 200:
 9055                    {
 9056                        // Create the result
 9057                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 9058                        Azure.Storage.Blobs.Models.BlobTags _value = Azure.Storage.Blobs.Models.BlobTags.FromXml(_xml.Ro
 9059
 9060                        // Create the response
 9061                        return Response.FromValue(_value, response);
 9062                    }
 9063                    case 304:
 9064                    {
 9065                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.BlobTags>(response);
 9066                    }
 9067                    default:
 9068                    {
 9069                        // Create the result
 9070                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 9071                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 9072
 9073                        throw _value.CreateException(clientDiagnostics, response);
 9074                    }
 9075                }
 9076            }
 9077            #endregion Blob.GetTagsAsync
 9078
 9079            #region Blob.SetTagsAsync
 9080            /// <summary>
 9081            /// The Set Tags operation enables users to set tags on a blob.
 9082            /// </summary>
 9083            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 9084            /// <param name="pipeline">The pipeline used for sending requests.</param>
 9085            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 9086            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 9087            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 9088            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 9089            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 9090            /// <param name="transactionalContentCrc64">Specify the transactional crc64 for the body, to be validated by
 9091            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 9092            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 9093            /// <param name="tags">Blob tags</param>
 9094            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 9095            /// <param name="operationName">Operation name.</param>
 9096            /// <param name="cancellationToken">Cancellation token.</param>
 9097            /// <returns>Azure.Response</returns>
 9098            public static async System.Threading.Tasks.ValueTask<Azure.Response> SetTagsAsync(
 9099                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 9100                Azure.Core.Pipeline.HttpPipeline pipeline,
 9101                System.Uri resourceUri,
 9102                string version,
 9103                int? timeout = default,
 9104                string versionId = default,
 9105                byte[] transactionalContentHash = default,
 9106                byte[] transactionalContentCrc64 = default,
 9107                string requestId = default,
 9108                string ifTags = default,
 9109                Azure.Storage.Blobs.Models.BlobTags tags = default,
 9110                bool async = true,
 9111                string operationName = "BlobClient.SetTags",
 9112                System.Threading.CancellationToken cancellationToken = default)
 9113            {
 9114                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 9115                try
 9116                {
 9117                    _scope.AddAttribute("url", resourceUri);
 9118                    _scope.Start();
 9119                    using (Azure.Core.HttpMessage _message = SetTagsAsync_CreateMessage(
 9120                        pipeline,
 9121                        resourceUri,
 9122                        version,
 9123                        timeout,
 9124                        versionId,
 9125                        transactionalContentHash,
 9126                        transactionalContentCrc64,
 9127                        requestId,
 9128                        ifTags,
 9129                        tags))
 9130                    {
 9131                        if (async)
 9132                        {
 9133                            // Send the request asynchronously if we're being called via an async path
 9134                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 9135                        }
 9136                        else
 9137                        {
 9138                            // Send the request synchronously through the API that blocks if we're being called via a sy
 9139                            // (this is safe because the Task will complete before the user can call Wait)
 9140                            pipeline.Send(_message, cancellationToken);
 9141                        }
 9142                        Azure.Response _response = _message.Response;
 9143                        cancellationToken.ThrowIfCancellationRequested();
 9144                        return SetTagsAsync_CreateResponse(clientDiagnostics, _response);
 9145                    }
 9146                }
 9147                catch (System.Exception ex)
 9148                {
 9149                    _scope.Failed(ex);
 9150                    throw;
 9151                }
 9152                finally
 9153                {
 9154                    _scope.Dispose();
 9155                }
 9156            }
 9157
 9158            /// <summary>
 9159            /// Create the Blob.SetTagsAsync request.
 9160            /// </summary>
 9161            /// <param name="pipeline">The pipeline used for sending requests.</param>
 9162            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 9163            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 9164            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 9165            /// <param name="versionId">The version id parameter is an opaque DateTime value that, when present, specifi
 9166            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 9167            /// <param name="transactionalContentCrc64">Specify the transactional crc64 for the body, to be validated by
 9168            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 9169            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 9170            /// <param name="tags">Blob tags</param>
 9171            /// <returns>The Blob.SetTagsAsync Message.</returns>
 9172            internal static Azure.Core.HttpMessage SetTagsAsync_CreateMessage(
 9173                Azure.Core.Pipeline.HttpPipeline pipeline,
 9174                System.Uri resourceUri,
 9175                string version,
 9176                int? timeout = default,
 9177                string versionId = default,
 9178                byte[] transactionalContentHash = default,
 9179                byte[] transactionalContentCrc64 = default,
 9180                string requestId = default,
 9181                string ifTags = default,
 9182                Azure.Storage.Blobs.Models.BlobTags tags = default)
 9183            {
 9184                // Validation
 9185                if (resourceUri == null)
 9186                {
 9187                    throw new System.ArgumentNullException(nameof(resourceUri));
 9188                }
 9189                if (version == null)
 9190                {
 9191                    throw new System.ArgumentNullException(nameof(version));
 9192                }
 9193
 9194                // Create the request
 9195                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 9196                Azure.Core.Request _request = _message.Request;
 9197
 9198                // Set the endpoint
 9199                _request.Method = Azure.Core.RequestMethod.Put;
 9200                _request.Uri.Reset(resourceUri);
 9201                _request.Uri.AppendQuery("comp", "tags", escapeValue: false);
 9202                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 9203                if (versionId != null) { _request.Uri.AppendQuery("versionid", versionId); }
 9204
 9205                // Add request headers
 9206                _request.Headers.SetValue("x-ms-version", version);
 9207                if (transactionalContentHash != null) { _request.Headers.SetValue("Content-MD5", System.Convert.ToBase64
 9208                if (transactionalContentCrc64 != null) { _request.Headers.SetValue("x-ms-content-crc64", System.Convert.
 9209                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 9210                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 9211
 9212                // Create the body
 9213                if (tags != null)
 9214                {
 9215                    System.Xml.Linq.XElement _body = Azure.Storage.Blobs.Models.BlobTags.ToXml(tags, "Tags", "");
 9216                    string _text = _body.ToString(System.Xml.Linq.SaveOptions.DisableFormatting);
 9217                    _request.Headers.SetValue("Content-Type", "application/xml");
 9218                    _request.Headers.SetValue("Content-Length", _text.Length.ToString(System.Globalization.CultureInfo.I
 9219                    _request.Content = Azure.Core.RequestContent.Create(System.Text.Encoding.UTF8.GetBytes(_text));
 9220                }
 9221
 9222                return _message;
 9223            }
 9224
 9225            /// <summary>
 9226            /// Create the Blob.SetTagsAsync response or throw a failure exception.
 9227            /// </summary>
 9228            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 9229            /// <param name="response">The raw Response.</param>
 9230            /// <returns>The Blob.SetTagsAsync Azure.Response.</returns>
 9231            internal static Azure.Response SetTagsAsync_CreateResponse(
 9232                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 9233                Azure.Response response)
 9234            {
 9235                // Process the response
 9236                switch (response.Status)
 9237                {
 9238                    case 204:
 9239                    {
 9240                        return response;
 9241                    }
 9242                    default:
 9243                    {
 9244                        // Create the result
 9245                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 9246                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 9247
 9248                        throw _value.CreateException(clientDiagnostics, response);
 9249                    }
 9250                }
 9251            }
 9252            #endregion Blob.SetTagsAsync
 9253        }
 9254        #endregion Blob operations
 9255
 9256        #region PageBlob operations
 9257        /// <summary>
 9258        /// PageBlob operations for Azure Blob Storage
 9259        /// </summary>
 9260        public static partial class PageBlob
 9261        {
 9262            #region PageBlob.CreateAsync
 9263            /// <summary>
 9264            /// The Create operation creates a new page blob.
 9265            /// </summary>
 9266            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 9267            /// <param name="pipeline">The pipeline used for sending requests.</param>
 9268            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 9269            /// <param name="contentLength">The length of the request.</param>
 9270            /// <param name="blobContentLength">This header specifies the maximum size for the page blob, up to 1 TB. Th
 9271            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 9272            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 9273            /// <param name="tier">Optional. Indicates the tier to be set on the page blob.</param>
 9274            /// <param name="blobContentType">Optional. Sets the blob's content type. If specified, this property is sto
 9275            /// <param name="blobContentEncoding">Optional. Sets the blob's content encoding. If specified, this propert
 9276            /// <param name="blobContentLanguage">Optional. Set the blob's content language. If specified, this property
 9277            /// <param name="blobContentHash">Optional. An MD5 hash of the blob content. Note that this hash is not vali
 9278            /// <param name="blobCacheControl">Optional. Sets the blob's cache control. If specified, this property is s
 9279            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 9280            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 9281            /// <param name="blobContentDisposition">Optional. Sets the blob's Content-Disposition header.</param>
 9282            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 9283            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 9284            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 9285            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 9286            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 9287            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 9288            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 9289            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 9290            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 9291            /// <param name="blobSequenceNumber">Set for page blobs only. The sequence number is a user-controlled value
 9292            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 9293            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 9294            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 9295            /// <param name="operationName">Operation name.</param>
 9296            /// <param name="cancellationToken">Cancellation token.</param>
 9297            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobContentInfo}</returns>
 9298            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobContentIn
 9299                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 9300                Azure.Core.Pipeline.HttpPipeline pipeline,
 9301                System.Uri resourceUri,
 9302                long contentLength,
 9303                long blobContentLength,
 9304                string version,
 9305                int? timeout = default,
 9306                Azure.Storage.Blobs.Models.AccessTier? tier = default,
 9307                string blobContentType = default,
 9308                string blobContentEncoding = default,
 9309                string blobContentLanguage = default,
 9310                byte[] blobContentHash = default,
 9311                string blobCacheControl = default,
 9312                System.Collections.Generic.IDictionary<string, string> metadata = default,
 9313                string leaseId = default,
 9314                string blobContentDisposition = default,
 9315                string encryptionKey = default,
 9316                string encryptionKeySha256 = default,
 9317                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 9318                string encryptionScope = default,
 9319                System.DateTimeOffset? ifModifiedSince = default,
 9320                System.DateTimeOffset? ifUnmodifiedSince = default,
 9321                Azure.ETag? ifMatch = default,
 9322                Azure.ETag? ifNoneMatch = default,
 9323                string ifTags = default,
 9324                long? blobSequenceNumber = default,
 9325                string requestId = default,
 9326                string blobTagsString = default,
 9327                bool async = true,
 9328                string operationName = "PageBlobClient.Create",
 9329                System.Threading.CancellationToken cancellationToken = default)
 9330            {
 9331                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 9332                try
 9333                {
 9334                    _scope.AddAttribute("url", resourceUri);
 9335                    _scope.Start();
 9336                    using (Azure.Core.HttpMessage _message = CreateAsync_CreateMessage(
 9337                        pipeline,
 9338                        resourceUri,
 9339                        contentLength,
 9340                        blobContentLength,
 9341                        version,
 9342                        timeout,
 9343                        tier,
 9344                        blobContentType,
 9345                        blobContentEncoding,
 9346                        blobContentLanguage,
 9347                        blobContentHash,
 9348                        blobCacheControl,
 9349                        metadata,
 9350                        leaseId,
 9351                        blobContentDisposition,
 9352                        encryptionKey,
 9353                        encryptionKeySha256,
 9354                        encryptionAlgorithm,
 9355                        encryptionScope,
 9356                        ifModifiedSince,
 9357                        ifUnmodifiedSince,
 9358                        ifMatch,
 9359                        ifNoneMatch,
 9360                        ifTags,
 9361                        blobSequenceNumber,
 9362                        requestId,
 9363                        blobTagsString))
 9364                    {
 9365                        if (async)
 9366                        {
 9367                            // Send the request asynchronously if we're being called via an async path
 9368                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 9369                        }
 9370                        else
 9371                        {
 9372                            // Send the request synchronously through the API that blocks if we're being called via a sy
 9373                            // (this is safe because the Task will complete before the user can call Wait)
 9374                            pipeline.Send(_message, cancellationToken);
 9375                        }
 9376                        Azure.Response _response = _message.Response;
 9377                        cancellationToken.ThrowIfCancellationRequested();
 9378                        return CreateAsync_CreateResponse(clientDiagnostics, _response);
 9379                    }
 9380                }
 9381                catch (System.Exception ex)
 9382                {
 9383                    _scope.Failed(ex);
 9384                    throw;
 9385                }
 9386                finally
 9387                {
 9388                    _scope.Dispose();
 9389                }
 9390            }
 9391
 9392            /// <summary>
 9393            /// Create the PageBlob.CreateAsync request.
 9394            /// </summary>
 9395            /// <param name="pipeline">The pipeline used for sending requests.</param>
 9396            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 9397            /// <param name="contentLength">The length of the request.</param>
 9398            /// <param name="blobContentLength">This header specifies the maximum size for the page blob, up to 1 TB. Th
 9399            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 9400            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 9401            /// <param name="tier">Optional. Indicates the tier to be set on the page blob.</param>
 9402            /// <param name="blobContentType">Optional. Sets the blob's content type. If specified, this property is sto
 9403            /// <param name="blobContentEncoding">Optional. Sets the blob's content encoding. If specified, this propert
 9404            /// <param name="blobContentLanguage">Optional. Set the blob's content language. If specified, this property
 9405            /// <param name="blobContentHash">Optional. An MD5 hash of the blob content. Note that this hash is not vali
 9406            /// <param name="blobCacheControl">Optional. Sets the blob's cache control. If specified, this property is s
 9407            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 9408            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 9409            /// <param name="blobContentDisposition">Optional. Sets the blob's Content-Disposition header.</param>
 9410            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 9411            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 9412            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 9413            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 9414            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 9415            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 9416            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 9417            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 9418            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 9419            /// <param name="blobSequenceNumber">Set for page blobs only. The sequence number is a user-controlled value
 9420            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 9421            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 9422            /// <returns>The PageBlob.CreateAsync Message.</returns>
 9423            internal static Azure.Core.HttpMessage CreateAsync_CreateMessage(
 9424                Azure.Core.Pipeline.HttpPipeline pipeline,
 9425                System.Uri resourceUri,
 9426                long contentLength,
 9427                long blobContentLength,
 9428                string version,
 9429                int? timeout = default,
 9430                Azure.Storage.Blobs.Models.AccessTier? tier = default,
 9431                string blobContentType = default,
 9432                string blobContentEncoding = default,
 9433                string blobContentLanguage = default,
 9434                byte[] blobContentHash = default,
 9435                string blobCacheControl = default,
 9436                System.Collections.Generic.IDictionary<string, string> metadata = default,
 9437                string leaseId = default,
 9438                string blobContentDisposition = default,
 9439                string encryptionKey = default,
 9440                string encryptionKeySha256 = default,
 9441                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 9442                string encryptionScope = default,
 9443                System.DateTimeOffset? ifModifiedSince = default,
 9444                System.DateTimeOffset? ifUnmodifiedSince = default,
 9445                Azure.ETag? ifMatch = default,
 9446                Azure.ETag? ifNoneMatch = default,
 9447                string ifTags = default,
 9448                long? blobSequenceNumber = default,
 9449                string requestId = default,
 9450                string blobTagsString = default)
 9451            {
 9452                // Validation
 9453                if (resourceUri == null)
 9454                {
 9455                    throw new System.ArgumentNullException(nameof(resourceUri));
 9456                }
 9457                if (version == null)
 9458                {
 9459                    throw new System.ArgumentNullException(nameof(version));
 9460                }
 9461
 9462                // Create the request
 9463                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 9464                Azure.Core.Request _request = _message.Request;
 9465
 9466                // Set the endpoint
 9467                _request.Method = Azure.Core.RequestMethod.Put;
 9468                _request.Uri.Reset(resourceUri);
 9469                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 9470
 9471                // Add request headers
 9472                _request.Headers.SetValue("x-ms-blob-type", "PageBlob");
 9473                _request.Headers.SetValue("Content-Length", contentLength.ToString(System.Globalization.CultureInfo.Inva
 9474                _request.Headers.SetValue("x-ms-blob-content-length", blobContentLength.ToString(System.Globalization.Cu
 9475                _request.Headers.SetValue("x-ms-version", version);
 9476                if (tier != null) { _request.Headers.SetValue("x-ms-access-tier", tier.ToString()); }
 9477                if (blobContentType != null) { _request.Headers.SetValue("x-ms-blob-content-type", blobContentType); }
 9478                if (blobContentEncoding != null) { _request.Headers.SetValue("x-ms-blob-content-encoding", blobContentEn
 9479                if (blobContentLanguage != null) { _request.Headers.SetValue("x-ms-blob-content-language", blobContentLa
 9480                if (blobContentHash != null) { _request.Headers.SetValue("x-ms-blob-content-md5", System.Convert.ToBase6
 9481                if (blobCacheControl != null) { _request.Headers.SetValue("x-ms-blob-cache-control", blobCacheControl); 
 9482                if (metadata != null) {
 9483                    foreach (System.Collections.Generic.KeyValuePair<string, string> _pair in metadata)
 9484                    {
 9485                        _request.Headers.SetValue("x-ms-meta-" + _pair.Key, _pair.Value);
 9486                    }
 9487                }
 9488                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 9489                if (blobContentDisposition != null) { _request.Headers.SetValue("x-ms-blob-content-disposition", blobCon
 9490                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 9491                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 9492                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 9493                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 9494                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 9495                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 9496                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 9497                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 9498                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 9499                if (blobSequenceNumber != null) { _request.Headers.SetValue("x-ms-blob-sequence-number", blobSequenceNum
 9500                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 9501                if (blobTagsString != null) { _request.Headers.SetValue("x-ms-tags", blobTagsString); }
 9502
 9503                return _message;
 9504            }
 9505
 9506            /// <summary>
 9507            /// Create the PageBlob.CreateAsync response or throw a failure exception.
 9508            /// </summary>
 9509            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 9510            /// <param name="response">The raw Response.</param>
 9511            /// <returns>The PageBlob.CreateAsync Azure.Response{Azure.Storage.Blobs.Models.BlobContentInfo}.</returns>
 9512            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobContentInfo> CreateAsync_CreateResponse(
 9513                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 9514                Azure.Response response)
 9515            {
 9516                // Process the response
 9517                switch (response.Status)
 9518                {
 9519                    case 201:
 9520                    {
 9521                        // Create the result
 9522                        Azure.Storage.Blobs.Models.BlobContentInfo _value = new Azure.Storage.Blobs.Models.BlobContentIn
 9523
 9524                        // Get response headers
 9525                        string _header;
 9526                        if (response.Headers.TryGetValue("ETag", out _header))
 9527                        {
 9528                            _value.ETag = new Azure.ETag(_header);
 9529                        }
 9530                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 9531                        {
 9532                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 9533                        }
 9534                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 9535                        {
 9536                            _value.ContentHash = System.Convert.FromBase64String(_header);
 9537                        }
 9538                        if (response.Headers.TryGetValue("x-ms-version-id", out _header))
 9539                        {
 9540                            _value.VersionId = _header;
 9541                        }
 9542                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 9543                        {
 9544                            _value.EncryptionKeySha256 = _header;
 9545                        }
 9546                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 9547                        {
 9548                            _value.EncryptionScope = _header;
 9549                        }
 9550                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 9551                        {
 9552                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 9553                        }
 9554
 9555                        // Create the response
 9556                        return Response.FromValue(_value, response);
 9557                    }
 9558                    default:
 9559                    {
 9560                        // Create the result
 9561                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 9562                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 9563
 9564                        throw _value.CreateException(clientDiagnostics, response);
 9565                    }
 9566                }
 9567            }
 9568            #endregion PageBlob.CreateAsync
 9569
 9570            #region PageBlob.UploadPagesAsync
 9571            /// <summary>
 9572            /// The Upload Pages operation writes a range of pages to a page blob
 9573            /// </summary>
 9574            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 9575            /// <param name="pipeline">The pipeline used for sending requests.</param>
 9576            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 9577            /// <param name="body">Initial data</param>
 9578            /// <param name="contentLength">The length of the request.</param>
 9579            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 9580            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 9581            /// <param name="transactionalContentCrc64">Specify the transactional crc64 for the body, to be validated by
 9582            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 9583            /// <param name="range">Return only the bytes of the blob in the specified range.</param>
 9584            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 9585            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 9586            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 9587            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 9588            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 9589            /// <param name="ifSequenceNumberLessThanOrEqualTo">Specify this header value to operate only on a blob if i
 9590            /// <param name="ifSequenceNumberLessThan">Specify this header value to operate only on a blob if it has a s
 9591            /// <param name="ifSequenceNumberEqualTo">Specify this header value to operate only on a blob if it has the 
 9592            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 9593            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 9594            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 9595            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 9596            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 9597            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 9598            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 9599            /// <param name="operationName">Operation name.</param>
 9600            /// <param name="cancellationToken">Cancellation token.</param>
 9601            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.PageInfo}</returns>
 9602            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.PageInfo>> Up
 9603                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 9604                Azure.Core.Pipeline.HttpPipeline pipeline,
 9605                System.Uri resourceUri,
 9606                System.IO.Stream body,
 9607                long contentLength,
 9608                string version,
 9609                byte[] transactionalContentHash = default,
 9610                byte[] transactionalContentCrc64 = default,
 9611                int? timeout = default,
 9612                string range = default,
 9613                string leaseId = default,
 9614                string encryptionKey = default,
 9615                string encryptionKeySha256 = default,
 9616                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 9617                string encryptionScope = default,
 9618                long? ifSequenceNumberLessThanOrEqualTo = default,
 9619                long? ifSequenceNumberLessThan = default,
 9620                long? ifSequenceNumberEqualTo = default,
 9621                System.DateTimeOffset? ifModifiedSince = default,
 9622                System.DateTimeOffset? ifUnmodifiedSince = default,
 9623                Azure.ETag? ifMatch = default,
 9624                Azure.ETag? ifNoneMatch = default,
 9625                string ifTags = default,
 9626                string requestId = default,
 9627                bool async = true,
 9628                string operationName = "PageBlobClient.UploadPages",
 9629                System.Threading.CancellationToken cancellationToken = default)
 9630            {
 9631                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 9632                try
 9633                {
 9634                    _scope.AddAttribute("url", resourceUri);
 9635                    _scope.Start();
 9636                    using (Azure.Core.HttpMessage _message = UploadPagesAsync_CreateMessage(
 9637                        pipeline,
 9638                        resourceUri,
 9639                        body,
 9640                        contentLength,
 9641                        version,
 9642                        transactionalContentHash,
 9643                        transactionalContentCrc64,
 9644                        timeout,
 9645                        range,
 9646                        leaseId,
 9647                        encryptionKey,
 9648                        encryptionKeySha256,
 9649                        encryptionAlgorithm,
 9650                        encryptionScope,
 9651                        ifSequenceNumberLessThanOrEqualTo,
 9652                        ifSequenceNumberLessThan,
 9653                        ifSequenceNumberEqualTo,
 9654                        ifModifiedSince,
 9655                        ifUnmodifiedSince,
 9656                        ifMatch,
 9657                        ifNoneMatch,
 9658                        ifTags,
 9659                        requestId))
 9660                    {
 9661                        if (async)
 9662                        {
 9663                            // Send the request asynchronously if we're being called via an async path
 9664                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 9665                        }
 9666                        else
 9667                        {
 9668                            // Send the request synchronously through the API that blocks if we're being called via a sy
 9669                            // (this is safe because the Task will complete before the user can call Wait)
 9670                            pipeline.Send(_message, cancellationToken);
 9671                        }
 9672                        Azure.Response _response = _message.Response;
 9673                        cancellationToken.ThrowIfCancellationRequested();
 9674                        return UploadPagesAsync_CreateResponse(clientDiagnostics, _response);
 9675                    }
 9676                }
 9677                catch (System.Exception ex)
 9678                {
 9679                    _scope.Failed(ex);
 9680                    throw;
 9681                }
 9682                finally
 9683                {
 9684                    _scope.Dispose();
 9685                }
 9686            }
 9687
 9688            /// <summary>
 9689            /// Create the PageBlob.UploadPagesAsync request.
 9690            /// </summary>
 9691            /// <param name="pipeline">The pipeline used for sending requests.</param>
 9692            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 9693            /// <param name="body">Initial data</param>
 9694            /// <param name="contentLength">The length of the request.</param>
 9695            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 9696            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 9697            /// <param name="transactionalContentCrc64">Specify the transactional crc64 for the body, to be validated by
 9698            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 9699            /// <param name="range">Return only the bytes of the blob in the specified range.</param>
 9700            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 9701            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 9702            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 9703            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 9704            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 9705            /// <param name="ifSequenceNumberLessThanOrEqualTo">Specify this header value to operate only on a blob if i
 9706            /// <param name="ifSequenceNumberLessThan">Specify this header value to operate only on a blob if it has a s
 9707            /// <param name="ifSequenceNumberEqualTo">Specify this header value to operate only on a blob if it has the 
 9708            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 9709            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 9710            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 9711            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 9712            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 9713            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 9714            /// <returns>The PageBlob.UploadPagesAsync Message.</returns>
 9715            internal static Azure.Core.HttpMessage UploadPagesAsync_CreateMessage(
 9716                Azure.Core.Pipeline.HttpPipeline pipeline,
 9717                System.Uri resourceUri,
 9718                System.IO.Stream body,
 9719                long contentLength,
 9720                string version,
 9721                byte[] transactionalContentHash = default,
 9722                byte[] transactionalContentCrc64 = default,
 9723                int? timeout = default,
 9724                string range = default,
 9725                string leaseId = default,
 9726                string encryptionKey = default,
 9727                string encryptionKeySha256 = default,
 9728                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 9729                string encryptionScope = default,
 9730                long? ifSequenceNumberLessThanOrEqualTo = default,
 9731                long? ifSequenceNumberLessThan = default,
 9732                long? ifSequenceNumberEqualTo = default,
 9733                System.DateTimeOffset? ifModifiedSince = default,
 9734                System.DateTimeOffset? ifUnmodifiedSince = default,
 9735                Azure.ETag? ifMatch = default,
 9736                Azure.ETag? ifNoneMatch = default,
 9737                string ifTags = default,
 9738                string requestId = default)
 9739            {
 9740                // Validation
 9741                if (resourceUri == null)
 9742                {
 9743                    throw new System.ArgumentNullException(nameof(resourceUri));
 9744                }
 9745                if (body == null)
 9746                {
 9747                    throw new System.ArgumentNullException(nameof(body));
 9748                }
 9749                if (version == null)
 9750                {
 9751                    throw new System.ArgumentNullException(nameof(version));
 9752                }
 9753
 9754                // Create the request
 9755                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 9756                Azure.Core.Request _request = _message.Request;
 9757
 9758                // Set the endpoint
 9759                _request.Method = Azure.Core.RequestMethod.Put;
 9760                _request.Uri.Reset(resourceUri);
 9761                _request.Uri.AppendQuery("comp", "page", escapeValue: false);
 9762                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 9763
 9764                // Add request headers
 9765                _request.Headers.SetValue("x-ms-page-write", "update");
 9766                _request.Headers.SetValue("Content-Length", contentLength.ToString(System.Globalization.CultureInfo.Inva
 9767                _request.Headers.SetValue("x-ms-version", version);
 9768                if (transactionalContentHash != null) { _request.Headers.SetValue("Content-MD5", System.Convert.ToBase64
 9769                if (transactionalContentCrc64 != null) { _request.Headers.SetValue("x-ms-content-crc64", System.Convert.
 9770                if (range != null) { _request.Headers.SetValue("x-ms-range", range); }
 9771                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 9772                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 9773                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 9774                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 9775                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 9776                if (ifSequenceNumberLessThanOrEqualTo != null) { _request.Headers.SetValue("x-ms-if-sequence-number-le",
 9777                if (ifSequenceNumberLessThan != null) { _request.Headers.SetValue("x-ms-if-sequence-number-lt", ifSequen
 9778                if (ifSequenceNumberEqualTo != null) { _request.Headers.SetValue("x-ms-if-sequence-number-eq", ifSequenc
 9779                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 9780                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 9781                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 9782                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 9783                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 9784                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 9785
 9786                // Create the body
 9787                _request.Content = Azure.Core.RequestContent.Create(body);
 9788
 9789                return _message;
 9790            }
 9791
 9792            /// <summary>
 9793            /// Create the PageBlob.UploadPagesAsync response or throw a failure exception.
 9794            /// </summary>
 9795            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 9796            /// <param name="response">The raw Response.</param>
 9797            /// <returns>The PageBlob.UploadPagesAsync Azure.Response{Azure.Storage.Blobs.Models.PageInfo}.</returns>
 9798            internal static Azure.Response<Azure.Storage.Blobs.Models.PageInfo> UploadPagesAsync_CreateResponse(
 9799                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 9800                Azure.Response response)
 9801            {
 9802                // Process the response
 9803                switch (response.Status)
 9804                {
 9805                    case 201:
 9806                    {
 9807                        // Create the result
 9808                        Azure.Storage.Blobs.Models.PageInfo _value = new Azure.Storage.Blobs.Models.PageInfo();
 9809
 9810                        // Get response headers
 9811                        string _header;
 9812                        if (response.Headers.TryGetValue("ETag", out _header))
 9813                        {
 9814                            _value.ETag = new Azure.ETag(_header);
 9815                        }
 9816                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 9817                        {
 9818                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 9819                        }
 9820                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 9821                        {
 9822                            _value.ContentHash = System.Convert.FromBase64String(_header);
 9823                        }
 9824                        if (response.Headers.TryGetValue("x-ms-content-crc64", out _header))
 9825                        {
 9826                            _value.ContentCrc64 = System.Convert.FromBase64String(_header);
 9827                        }
 9828                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 9829                        {
 9830                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 9831                        }
 9832                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 9833                        {
 9834                            _value.EncryptionKeySha256 = _header;
 9835                        }
 9836                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 9837                        {
 9838                            _value.EncryptionScope = _header;
 9839                        }
 9840
 9841                        // Create the response
 9842                        return Response.FromValue(_value, response);
 9843                    }
 9844                    default:
 9845                    {
 9846                        // Create the result
 9847                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 9848                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 9849
 9850                        throw _value.CreateException(clientDiagnostics, response);
 9851                    }
 9852                }
 9853            }
 9854            #endregion PageBlob.UploadPagesAsync
 9855
 9856            #region PageBlob.ClearPagesAsync
 9857            /// <summary>
 9858            /// The Clear Pages operation clears a set of pages from a page blob
 9859            /// </summary>
 9860            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 9861            /// <param name="pipeline">The pipeline used for sending requests.</param>
 9862            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 9863            /// <param name="contentLength">The length of the request.</param>
 9864            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 9865            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 9866            /// <param name="range">Return only the bytes of the blob in the specified range.</param>
 9867            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 9868            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 9869            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 9870            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 9871            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 9872            /// <param name="ifSequenceNumberLessThanOrEqualTo">Specify this header value to operate only on a blob if i
 9873            /// <param name="ifSequenceNumberLessThan">Specify this header value to operate only on a blob if it has a s
 9874            /// <param name="ifSequenceNumberEqualTo">Specify this header value to operate only on a blob if it has the 
 9875            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 9876            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 9877            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 9878            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 9879            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 9880            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 9881            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 9882            /// <param name="operationName">Operation name.</param>
 9883            /// <param name="cancellationToken">Cancellation token.</param>
 9884            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.PageInfo}</returns>
 9885            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.PageInfo>> Cl
 9886                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 9887                Azure.Core.Pipeline.HttpPipeline pipeline,
 9888                System.Uri resourceUri,
 9889                long contentLength,
 9890                string version,
 9891                int? timeout = default,
 9892                string range = default,
 9893                string leaseId = default,
 9894                string encryptionKey = default,
 9895                string encryptionKeySha256 = default,
 9896                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 9897                string encryptionScope = default,
 9898                long? ifSequenceNumberLessThanOrEqualTo = default,
 9899                long? ifSequenceNumberLessThan = default,
 9900                long? ifSequenceNumberEqualTo = default,
 9901                System.DateTimeOffset? ifModifiedSince = default,
 9902                System.DateTimeOffset? ifUnmodifiedSince = default,
 9903                Azure.ETag? ifMatch = default,
 9904                Azure.ETag? ifNoneMatch = default,
 9905                string ifTags = default,
 9906                string requestId = default,
 9907                bool async = true,
 9908                string operationName = "PageBlobClient.ClearPages",
 9909                System.Threading.CancellationToken cancellationToken = default)
 9910            {
 9911                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 9912                try
 9913                {
 9914                    _scope.AddAttribute("url", resourceUri);
 9915                    _scope.Start();
 9916                    using (Azure.Core.HttpMessage _message = ClearPagesAsync_CreateMessage(
 9917                        pipeline,
 9918                        resourceUri,
 9919                        contentLength,
 9920                        version,
 9921                        timeout,
 9922                        range,
 9923                        leaseId,
 9924                        encryptionKey,
 9925                        encryptionKeySha256,
 9926                        encryptionAlgorithm,
 9927                        encryptionScope,
 9928                        ifSequenceNumberLessThanOrEqualTo,
 9929                        ifSequenceNumberLessThan,
 9930                        ifSequenceNumberEqualTo,
 9931                        ifModifiedSince,
 9932                        ifUnmodifiedSince,
 9933                        ifMatch,
 9934                        ifNoneMatch,
 9935                        ifTags,
 9936                        requestId))
 9937                    {
 9938                        if (async)
 9939                        {
 9940                            // Send the request asynchronously if we're being called via an async path
 9941                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 9942                        }
 9943                        else
 9944                        {
 9945                            // Send the request synchronously through the API that blocks if we're being called via a sy
 9946                            // (this is safe because the Task will complete before the user can call Wait)
 9947                            pipeline.Send(_message, cancellationToken);
 9948                        }
 9949                        Azure.Response _response = _message.Response;
 9950                        cancellationToken.ThrowIfCancellationRequested();
 9951                        return ClearPagesAsync_CreateResponse(clientDiagnostics, _response);
 9952                    }
 9953                }
 9954                catch (System.Exception ex)
 9955                {
 9956                    _scope.Failed(ex);
 9957                    throw;
 9958                }
 9959                finally
 9960                {
 9961                    _scope.Dispose();
 9962                }
 9963            }
 9964
 9965            /// <summary>
 9966            /// Create the PageBlob.ClearPagesAsync request.
 9967            /// </summary>
 9968            /// <param name="pipeline">The pipeline used for sending requests.</param>
 9969            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 9970            /// <param name="contentLength">The length of the request.</param>
 9971            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 9972            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 9973            /// <param name="range">Return only the bytes of the blob in the specified range.</param>
 9974            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 9975            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 9976            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 9977            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 9978            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 9979            /// <param name="ifSequenceNumberLessThanOrEqualTo">Specify this header value to operate only on a blob if i
 9980            /// <param name="ifSequenceNumberLessThan">Specify this header value to operate only on a blob if it has a s
 9981            /// <param name="ifSequenceNumberEqualTo">Specify this header value to operate only on a blob if it has the 
 9982            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 9983            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 9984            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 9985            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 9986            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 9987            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 9988            /// <returns>The PageBlob.ClearPagesAsync Message.</returns>
 9989            internal static Azure.Core.HttpMessage ClearPagesAsync_CreateMessage(
 9990                Azure.Core.Pipeline.HttpPipeline pipeline,
 9991                System.Uri resourceUri,
 9992                long contentLength,
 9993                string version,
 9994                int? timeout = default,
 9995                string range = default,
 9996                string leaseId = default,
 9997                string encryptionKey = default,
 9998                string encryptionKeySha256 = default,
 9999                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 10000                string encryptionScope = default,
 10001                long? ifSequenceNumberLessThanOrEqualTo = default,
 10002                long? ifSequenceNumberLessThan = default,
 10003                long? ifSequenceNumberEqualTo = default,
 10004                System.DateTimeOffset? ifModifiedSince = default,
 10005                System.DateTimeOffset? ifUnmodifiedSince = default,
 10006                Azure.ETag? ifMatch = default,
 10007                Azure.ETag? ifNoneMatch = default,
 10008                string ifTags = default,
 10009                string requestId = default)
 10010            {
 10011                // Validation
 10012                if (resourceUri == null)
 10013                {
 10014                    throw new System.ArgumentNullException(nameof(resourceUri));
 10015                }
 10016                if (version == null)
 10017                {
 10018                    throw new System.ArgumentNullException(nameof(version));
 10019                }
 10020
 10021                // Create the request
 10022                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 10023                Azure.Core.Request _request = _message.Request;
 10024
 10025                // Set the endpoint
 10026                _request.Method = Azure.Core.RequestMethod.Put;
 10027                _request.Uri.Reset(resourceUri);
 10028                _request.Uri.AppendQuery("comp", "page", escapeValue: false);
 10029                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 10030
 10031                // Add request headers
 10032                _request.Headers.SetValue("x-ms-page-write", "clear");
 10033                _request.Headers.SetValue("Content-Length", contentLength.ToString(System.Globalization.CultureInfo.Inva
 10034                _request.Headers.SetValue("x-ms-version", version);
 10035                if (range != null) { _request.Headers.SetValue("x-ms-range", range); }
 10036                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 10037                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 10038                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 10039                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 10040                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 10041                if (ifSequenceNumberLessThanOrEqualTo != null) { _request.Headers.SetValue("x-ms-if-sequence-number-le",
 10042                if (ifSequenceNumberLessThan != null) { _request.Headers.SetValue("x-ms-if-sequence-number-lt", ifSequen
 10043                if (ifSequenceNumberEqualTo != null) { _request.Headers.SetValue("x-ms-if-sequence-number-eq", ifSequenc
 10044                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 10045                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 10046                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 10047                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 10048                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 10049                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 10050
 10051                return _message;
 10052            }
 10053
 10054            /// <summary>
 10055            /// Create the PageBlob.ClearPagesAsync response or throw a failure exception.
 10056            /// </summary>
 10057            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 10058            /// <param name="response">The raw Response.</param>
 10059            /// <returns>The PageBlob.ClearPagesAsync Azure.Response{Azure.Storage.Blobs.Models.PageInfo}.</returns>
 10060            internal static Azure.Response<Azure.Storage.Blobs.Models.PageInfo> ClearPagesAsync_CreateResponse(
 10061                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 10062                Azure.Response response)
 10063            {
 10064                // Process the response
 10065                switch (response.Status)
 10066                {
 10067                    case 201:
 10068                    {
 10069                        // Create the result
 10070                        Azure.Storage.Blobs.Models.PageInfo _value = new Azure.Storage.Blobs.Models.PageInfo();
 10071
 10072                        // Get response headers
 10073                        string _header;
 10074                        if (response.Headers.TryGetValue("ETag", out _header))
 10075                        {
 10076                            _value.ETag = new Azure.ETag(_header);
 10077                        }
 10078                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 10079                        {
 10080                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 10081                        }
 10082                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 10083                        {
 10084                            _value.ContentHash = System.Convert.FromBase64String(_header);
 10085                        }
 10086                        if (response.Headers.TryGetValue("x-ms-content-crc64", out _header))
 10087                        {
 10088                            _value.ContentCrc64 = System.Convert.FromBase64String(_header);
 10089                        }
 10090                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 10091                        {
 10092                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 10093                        }
 10094                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 10095                        {
 10096                            _value.EncryptionKeySha256 = _header;
 10097                        }
 10098
 10099                        // Create the response
 10100                        return Response.FromValue(_value, response);
 10101                    }
 10102                    default:
 10103                    {
 10104                        // Create the result
 10105                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 10106                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 10107
 10108                        throw _value.CreateException(clientDiagnostics, response);
 10109                    }
 10110                }
 10111            }
 10112            #endregion PageBlob.ClearPagesAsync
 10113
 10114            #region PageBlob.UploadPagesFromUriAsync
 10115            /// <summary>
 10116            /// The Upload Pages operation writes a range of pages to a page blob where the contents are read from a URL
 10117            /// </summary>
 10118            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 10119            /// <param name="pipeline">The pipeline used for sending requests.</param>
 10120            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 10121            /// <param name="sourceUri">Specify a URL to the copy source.</param>
 10122            /// <param name="sourceRange">Bytes of source data in the specified range. The length of this range should m
 10123            /// <param name="contentLength">The length of the request.</param>
 10124            /// <param name="range">The range of bytes to which the source range would be written. The range should be 5
 10125            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 10126            /// <param name="sourceContentHash">Specify the md5 calculated for the range of bytes that must be read from
 10127            /// <param name="sourceContentcrc64">Specify the crc64 calculated for the range of bytes that must be read f
 10128            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 10129            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 10130            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 10131            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 10132            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 10133            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 10134            /// <param name="ifSequenceNumberLessThanOrEqualTo">Specify this header value to operate only on a blob if i
 10135            /// <param name="ifSequenceNumberLessThan">Specify this header value to operate only on a blob if it has a s
 10136            /// <param name="ifSequenceNumberEqualTo">Specify this header value to operate only on a blob if it has the 
 10137            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 10138            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 10139            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 10140            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 10141            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 10142            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 10143            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 10144            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 10145            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 10146            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 10147            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 10148            /// <param name="operationName">Operation name.</param>
 10149            /// <param name="cancellationToken">Cancellation token.</param>
 10150            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.PageInfo}</returns>
 10151            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.PageInfo>> Up
 10152                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 10153                Azure.Core.Pipeline.HttpPipeline pipeline,
 10154                System.Uri resourceUri,
 10155                System.Uri sourceUri,
 10156                string sourceRange,
 10157                long contentLength,
 10158                string range,
 10159                string version,
 10160                byte[] sourceContentHash = default,
 10161                byte[] sourceContentcrc64 = default,
 10162                int? timeout = default,
 10163                string encryptionKey = default,
 10164                string encryptionKeySha256 = default,
 10165                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 10166                string encryptionScope = default,
 10167                string leaseId = default,
 10168                long? ifSequenceNumberLessThanOrEqualTo = default,
 10169                long? ifSequenceNumberLessThan = default,
 10170                long? ifSequenceNumberEqualTo = default,
 10171                System.DateTimeOffset? ifModifiedSince = default,
 10172                System.DateTimeOffset? ifUnmodifiedSince = default,
 10173                Azure.ETag? ifMatch = default,
 10174                Azure.ETag? ifNoneMatch = default,
 10175                string ifTags = default,
 10176                System.DateTimeOffset? sourceIfModifiedSince = default,
 10177                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 10178                Azure.ETag? sourceIfMatch = default,
 10179                Azure.ETag? sourceIfNoneMatch = default,
 10180                string requestId = default,
 10181                bool async = true,
 10182                string operationName = "PageBlobClient.UploadPagesFromUri",
 10183                System.Threading.CancellationToken cancellationToken = default)
 10184            {
 10185                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 10186                try
 10187                {
 10188                    _scope.AddAttribute("url", resourceUri);
 10189                    _scope.Start();
 10190                    using (Azure.Core.HttpMessage _message = UploadPagesFromUriAsync_CreateMessage(
 10191                        pipeline,
 10192                        resourceUri,
 10193                        sourceUri,
 10194                        sourceRange,
 10195                        contentLength,
 10196                        range,
 10197                        version,
 10198                        sourceContentHash,
 10199                        sourceContentcrc64,
 10200                        timeout,
 10201                        encryptionKey,
 10202                        encryptionKeySha256,
 10203                        encryptionAlgorithm,
 10204                        encryptionScope,
 10205                        leaseId,
 10206                        ifSequenceNumberLessThanOrEqualTo,
 10207                        ifSequenceNumberLessThan,
 10208                        ifSequenceNumberEqualTo,
 10209                        ifModifiedSince,
 10210                        ifUnmodifiedSince,
 10211                        ifMatch,
 10212                        ifNoneMatch,
 10213                        ifTags,
 10214                        sourceIfModifiedSince,
 10215                        sourceIfUnmodifiedSince,
 10216                        sourceIfMatch,
 10217                        sourceIfNoneMatch,
 10218                        requestId))
 10219                    {
 10220                        if (async)
 10221                        {
 10222                            // Send the request asynchronously if we're being called via an async path
 10223                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 10224                        }
 10225                        else
 10226                        {
 10227                            // Send the request synchronously through the API that blocks if we're being called via a sy
 10228                            // (this is safe because the Task will complete before the user can call Wait)
 10229                            pipeline.Send(_message, cancellationToken);
 10230                        }
 10231                        Azure.Response _response = _message.Response;
 10232                        cancellationToken.ThrowIfCancellationRequested();
 10233                        return UploadPagesFromUriAsync_CreateResponse(clientDiagnostics, _response);
 10234                    }
 10235                }
 10236                catch (System.Exception ex)
 10237                {
 10238                    _scope.Failed(ex);
 10239                    throw;
 10240                }
 10241                finally
 10242                {
 10243                    _scope.Dispose();
 10244                }
 10245            }
 10246
 10247            /// <summary>
 10248            /// Create the PageBlob.UploadPagesFromUriAsync request.
 10249            /// </summary>
 10250            /// <param name="pipeline">The pipeline used for sending requests.</param>
 10251            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 10252            /// <param name="sourceUri">Specify a URL to the copy source.</param>
 10253            /// <param name="sourceRange">Bytes of source data in the specified range. The length of this range should m
 10254            /// <param name="contentLength">The length of the request.</param>
 10255            /// <param name="range">The range of bytes to which the source range would be written. The range should be 5
 10256            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 10257            /// <param name="sourceContentHash">Specify the md5 calculated for the range of bytes that must be read from
 10258            /// <param name="sourceContentcrc64">Specify the crc64 calculated for the range of bytes that must be read f
 10259            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 10260            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 10261            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 10262            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 10263            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 10264            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 10265            /// <param name="ifSequenceNumberLessThanOrEqualTo">Specify this header value to operate only on a blob if i
 10266            /// <param name="ifSequenceNumberLessThan">Specify this header value to operate only on a blob if it has a s
 10267            /// <param name="ifSequenceNumberEqualTo">Specify this header value to operate only on a blob if it has the 
 10268            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 10269            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 10270            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 10271            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 10272            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 10273            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 10274            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 10275            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 10276            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 10277            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 10278            /// <returns>The PageBlob.UploadPagesFromUriAsync Message.</returns>
 10279            internal static Azure.Core.HttpMessage UploadPagesFromUriAsync_CreateMessage(
 10280                Azure.Core.Pipeline.HttpPipeline pipeline,
 10281                System.Uri resourceUri,
 10282                System.Uri sourceUri,
 10283                string sourceRange,
 10284                long contentLength,
 10285                string range,
 10286                string version,
 10287                byte[] sourceContentHash = default,
 10288                byte[] sourceContentcrc64 = default,
 10289                int? timeout = default,
 10290                string encryptionKey = default,
 10291                string encryptionKeySha256 = default,
 10292                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 10293                string encryptionScope = default,
 10294                string leaseId = default,
 10295                long? ifSequenceNumberLessThanOrEqualTo = default,
 10296                long? ifSequenceNumberLessThan = default,
 10297                long? ifSequenceNumberEqualTo = default,
 10298                System.DateTimeOffset? ifModifiedSince = default,
 10299                System.DateTimeOffset? ifUnmodifiedSince = default,
 10300                Azure.ETag? ifMatch = default,
 10301                Azure.ETag? ifNoneMatch = default,
 10302                string ifTags = default,
 10303                System.DateTimeOffset? sourceIfModifiedSince = default,
 10304                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 10305                Azure.ETag? sourceIfMatch = default,
 10306                Azure.ETag? sourceIfNoneMatch = default,
 10307                string requestId = default)
 10308            {
 10309                // Validation
 10310                if (resourceUri == null)
 10311                {
 10312                    throw new System.ArgumentNullException(nameof(resourceUri));
 10313                }
 10314                if (sourceUri == null)
 10315                {
 10316                    throw new System.ArgumentNullException(nameof(sourceUri));
 10317                }
 10318                if (sourceRange == null)
 10319                {
 10320                    throw new System.ArgumentNullException(nameof(sourceRange));
 10321                }
 10322                if (range == null)
 10323                {
 10324                    throw new System.ArgumentNullException(nameof(range));
 10325                }
 10326                if (version == null)
 10327                {
 10328                    throw new System.ArgumentNullException(nameof(version));
 10329                }
 10330
 10331                // Create the request
 10332                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 10333                Azure.Core.Request _request = _message.Request;
 10334
 10335                // Set the endpoint
 10336                _request.Method = Azure.Core.RequestMethod.Put;
 10337                _request.Uri.Reset(resourceUri);
 10338                _request.Uri.AppendQuery("comp", "page", escapeValue: false);
 10339                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 10340
 10341                // Add request headers
 10342                _request.Headers.SetValue("x-ms-page-write", "update");
 10343                _request.Headers.SetValue("x-ms-copy-source", sourceUri.AbsoluteUri);
 10344                _request.Headers.SetValue("x-ms-source-range", sourceRange);
 10345                _request.Headers.SetValue("Content-Length", contentLength.ToString(System.Globalization.CultureInfo.Inva
 10346                _request.Headers.SetValue("x-ms-range", range);
 10347                _request.Headers.SetValue("x-ms-version", version);
 10348                if (sourceContentHash != null) { _request.Headers.SetValue("x-ms-source-content-md5", System.Convert.ToB
 10349                if (sourceContentcrc64 != null) { _request.Headers.SetValue("x-ms-source-content-crc64", System.Convert.
 10350                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 10351                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 10352                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 10353                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 10354                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 10355                if (ifSequenceNumberLessThanOrEqualTo != null) { _request.Headers.SetValue("x-ms-if-sequence-number-le",
 10356                if (ifSequenceNumberLessThan != null) { _request.Headers.SetValue("x-ms-if-sequence-number-lt", ifSequen
 10357                if (ifSequenceNumberEqualTo != null) { _request.Headers.SetValue("x-ms-if-sequence-number-eq", ifSequenc
 10358                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 10359                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 10360                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 10361                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 10362                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 10363                if (sourceIfModifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-modified-since", sourceIf
 10364                if (sourceIfUnmodifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-unmodified-since", sour
 10365                if (sourceIfMatch != null) { _request.Headers.SetValue("x-ms-source-if-match", sourceIfMatch.Value.ToStr
 10366                if (sourceIfNoneMatch != null) { _request.Headers.SetValue("x-ms-source-if-none-match", sourceIfNoneMatc
 10367                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 10368
 10369                return _message;
 10370            }
 10371
 10372            /// <summary>
 10373            /// Create the PageBlob.UploadPagesFromUriAsync response or throw a failure exception.
 10374            /// </summary>
 10375            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 10376            /// <param name="response">The raw Response.</param>
 10377            /// <returns>The PageBlob.UploadPagesFromUriAsync Azure.Response{Azure.Storage.Blobs.Models.PageInfo}.</retu
 10378            internal static Azure.Response<Azure.Storage.Blobs.Models.PageInfo> UploadPagesFromUriAsync_CreateResponse(
 10379                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 10380                Azure.Response response)
 10381            {
 10382                // Process the response
 10383                switch (response.Status)
 10384                {
 10385                    case 201:
 10386                    {
 10387                        // Create the result
 10388                        Azure.Storage.Blobs.Models.PageInfo _value = new Azure.Storage.Blobs.Models.PageInfo();
 10389
 10390                        // Get response headers
 10391                        string _header;
 10392                        if (response.Headers.TryGetValue("ETag", out _header))
 10393                        {
 10394                            _value.ETag = new Azure.ETag(_header);
 10395                        }
 10396                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 10397                        {
 10398                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 10399                        }
 10400                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 10401                        {
 10402                            _value.ContentHash = System.Convert.FromBase64String(_header);
 10403                        }
 10404                        if (response.Headers.TryGetValue("x-ms-content-crc64", out _header))
 10405                        {
 10406                            _value.ContentCrc64 = System.Convert.FromBase64String(_header);
 10407                        }
 10408                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 10409                        {
 10410                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 10411                        }
 10412                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 10413                        {
 10414                            _value.EncryptionKeySha256 = _header;
 10415                        }
 10416                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 10417                        {
 10418                            _value.EncryptionScope = _header;
 10419                        }
 10420
 10421                        // Create the response
 10422                        return Response.FromValue(_value, response);
 10423                    }
 10424                    case 304:
 10425                    {
 10426                        // Create the result
 10427                        Azure.Storage.Blobs.Models.ConditionNotMetError _value = new Azure.Storage.Blobs.Models.Conditio
 10428
 10429                        // Get response headers
 10430                        string _header;
 10431                        if (response.Headers.TryGetValue("x-ms-error-code", out _header))
 10432                        {
 10433                            _value.ErrorCode = _header;
 10434                        }
 10435
 10436                        throw _value.CreateException(clientDiagnostics, response);
 10437                    }
 10438                    default:
 10439                    {
 10440                        // Create the result
 10441                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 10442                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 10443
 10444                        throw _value.CreateException(clientDiagnostics, response);
 10445                    }
 10446                }
 10447            }
 10448            #endregion PageBlob.UploadPagesFromUriAsync
 10449
 10450            #region PageBlob.GetPageRangesAsync
 10451            /// <summary>
 10452            /// The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a pag
 10453            /// </summary>
 10454            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 10455            /// <param name="pipeline">The pipeline used for sending requests.</param>
 10456            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 10457            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 10458            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 10459            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 10460            /// <param name="range">Return only the bytes of the blob in the specified range.</param>
 10461            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 10462            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 10463            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 10464            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 10465            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 10466            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 10467            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 10468            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 10469            /// <param name="operationName">Operation name.</param>
 10470            /// <param name="cancellationToken">Cancellation token.</param>
 10471            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.PageRangesInfoInternal}</returns>
 10472            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.PageRangesInf
 10473                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 10474                Azure.Core.Pipeline.HttpPipeline pipeline,
 10475                System.Uri resourceUri,
 10476                string version,
 10477                string snapshot = default,
 10478                int? timeout = default,
 10479                string range = default,
 10480                string leaseId = default,
 10481                System.DateTimeOffset? ifModifiedSince = default,
 10482                System.DateTimeOffset? ifUnmodifiedSince = default,
 10483                Azure.ETag? ifMatch = default,
 10484                Azure.ETag? ifNoneMatch = default,
 10485                string ifTags = default,
 10486                string requestId = default,
 10487                bool async = true,
 10488                string operationName = "PageBlobClient.GetPageRanges",
 10489                System.Threading.CancellationToken cancellationToken = default)
 10490            {
 10491                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 10492                try
 10493                {
 10494                    _scope.AddAttribute("url", resourceUri);
 10495                    _scope.Start();
 10496                    using (Azure.Core.HttpMessage _message = GetPageRangesAsync_CreateMessage(
 10497                        pipeline,
 10498                        resourceUri,
 10499                        version,
 10500                        snapshot,
 10501                        timeout,
 10502                        range,
 10503                        leaseId,
 10504                        ifModifiedSince,
 10505                        ifUnmodifiedSince,
 10506                        ifMatch,
 10507                        ifNoneMatch,
 10508                        ifTags,
 10509                        requestId))
 10510                    {
 10511                        if (async)
 10512                        {
 10513                            // Send the request asynchronously if we're being called via an async path
 10514                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 10515                        }
 10516                        else
 10517                        {
 10518                            // Send the request synchronously through the API that blocks if we're being called via a sy
 10519                            // (this is safe because the Task will complete before the user can call Wait)
 10520                            pipeline.Send(_message, cancellationToken);
 10521                        }
 10522                        Azure.Response _response = _message.Response;
 10523                        cancellationToken.ThrowIfCancellationRequested();
 10524                        return GetPageRangesAsync_CreateResponse(clientDiagnostics, _response);
 10525                    }
 10526                }
 10527                catch (System.Exception ex)
 10528                {
 10529                    _scope.Failed(ex);
 10530                    throw;
 10531                }
 10532                finally
 10533                {
 10534                    _scope.Dispose();
 10535                }
 10536            }
 10537
 10538            /// <summary>
 10539            /// Create the PageBlob.GetPageRangesAsync request.
 10540            /// </summary>
 10541            /// <param name="pipeline">The pipeline used for sending requests.</param>
 10542            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 10543            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 10544            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 10545            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 10546            /// <param name="range">Return only the bytes of the blob in the specified range.</param>
 10547            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 10548            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 10549            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 10550            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 10551            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 10552            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 10553            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 10554            /// <returns>The PageBlob.GetPageRangesAsync Message.</returns>
 10555            internal static Azure.Core.HttpMessage GetPageRangesAsync_CreateMessage(
 10556                Azure.Core.Pipeline.HttpPipeline pipeline,
 10557                System.Uri resourceUri,
 10558                string version,
 10559                string snapshot = default,
 10560                int? timeout = default,
 10561                string range = default,
 10562                string leaseId = default,
 10563                System.DateTimeOffset? ifModifiedSince = default,
 10564                System.DateTimeOffset? ifUnmodifiedSince = default,
 10565                Azure.ETag? ifMatch = default,
 10566                Azure.ETag? ifNoneMatch = default,
 10567                string ifTags = default,
 10568                string requestId = default)
 10569            {
 10570                // Validation
 10571                if (resourceUri == null)
 10572                {
 10573                    throw new System.ArgumentNullException(nameof(resourceUri));
 10574                }
 10575                if (version == null)
 10576                {
 10577                    throw new System.ArgumentNullException(nameof(version));
 10578                }
 10579
 10580                // Create the request
 10581                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 10582                Azure.Core.Request _request = _message.Request;
 10583
 10584                // Set the endpoint
 10585                _request.Method = Azure.Core.RequestMethod.Get;
 10586                _request.Uri.Reset(resourceUri);
 10587                _request.Uri.AppendQuery("comp", "pagelist", escapeValue: false);
 10588                if (snapshot != null) { _request.Uri.AppendQuery("snapshot", snapshot); }
 10589                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 10590
 10591                // Add request headers
 10592                _request.Headers.SetValue("x-ms-version", version);
 10593                if (range != null) { _request.Headers.SetValue("x-ms-range", range); }
 10594                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 10595                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 10596                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 10597                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 10598                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 10599                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 10600                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 10601
 10602                return _message;
 10603            }
 10604
 10605            /// <summary>
 10606            /// Create the PageBlob.GetPageRangesAsync response or throw a failure exception.
 10607            /// </summary>
 10608            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 10609            /// <param name="response">The raw Response.</param>
 10610            /// <returns>The PageBlob.GetPageRangesAsync Azure.Response{Azure.Storage.Blobs.Models.PageRangesInfoInterna
 10611            internal static Azure.Response<Azure.Storage.Blobs.Models.PageRangesInfoInternal> GetPageRangesAsync_CreateR
 10612                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 10613                Azure.Response response)
 10614            {
 10615                // Process the response
 10616                switch (response.Status)
 10617                {
 10618                    case 200:
 10619                    {
 10620                        // Create the result
 10621                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 10622                        Azure.Storage.Blobs.Models.PageRangesInfoInternal _value = new Azure.Storage.Blobs.Models.PageRa
 10623                        _value.Body = Azure.Storage.Blobs.Models.PageList.FromXml(_xml.Root);
 10624
 10625                        // Get response headers
 10626                        string _header;
 10627                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 10628                        {
 10629                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 10630                        }
 10631                        if (response.Headers.TryGetValue("ETag", out _header))
 10632                        {
 10633                            _value.ETag = new Azure.ETag(_header);
 10634                        }
 10635                        if (response.Headers.TryGetValue("x-ms-blob-content-length", out _header))
 10636                        {
 10637                            _value.BlobContentLength = long.Parse(_header, System.Globalization.CultureInfo.InvariantCul
 10638                        }
 10639
 10640                        // Create the response
 10641                        return Response.FromValue(_value, response);
 10642                    }
 10643                    case 304:
 10644                    {
 10645                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.PageRangesInfoInternal>(response);
 10646                    }
 10647                    default:
 10648                    {
 10649                        // Create the result
 10650                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 10651                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 10652
 10653                        throw _value.CreateException(clientDiagnostics, response);
 10654                    }
 10655                }
 10656            }
 10657            #endregion PageBlob.GetPageRangesAsync
 10658
 10659            #region PageBlob.GetPageRangesDiffAsync
 10660            /// <summary>
 10661            /// The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob that were chang
 10662            /// </summary>
 10663            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 10664            /// <param name="pipeline">The pipeline used for sending requests.</param>
 10665            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 10666            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 10667            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 10668            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 10669            /// <param name="prevsnapshot">Optional in version 2015-07-08 and newer. The prevsnapshot parameter is a Dat
 10670            /// <param name="prevSnapshotUrl">Optional. This header is only supported in service versions 2019-04-19 and
 10671            /// <param name="range">Return only the bytes of the blob in the specified range.</param>
 10672            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 10673            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 10674            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 10675            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 10676            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 10677            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 10678            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 10679            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 10680            /// <param name="operationName">Operation name.</param>
 10681            /// <param name="cancellationToken">Cancellation token.</param>
 10682            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.PageRangesInfoInternal}</returns>
 10683            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.PageRangesInf
 10684                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 10685                Azure.Core.Pipeline.HttpPipeline pipeline,
 10686                System.Uri resourceUri,
 10687                string version,
 10688                string snapshot = default,
 10689                int? timeout = default,
 10690                string prevsnapshot = default,
 10691                System.Uri prevSnapshotUrl = default,
 10692                string range = default,
 10693                string leaseId = default,
 10694                System.DateTimeOffset? ifModifiedSince = default,
 10695                System.DateTimeOffset? ifUnmodifiedSince = default,
 10696                Azure.ETag? ifMatch = default,
 10697                Azure.ETag? ifNoneMatch = default,
 10698                string ifTags = default,
 10699                string requestId = default,
 10700                bool async = true,
 10701                string operationName = "PageBlobClient.GetPageRangesDiff",
 10702                System.Threading.CancellationToken cancellationToken = default)
 10703            {
 10704                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 10705                try
 10706                {
 10707                    _scope.AddAttribute("url", resourceUri);
 10708                    _scope.Start();
 10709                    using (Azure.Core.HttpMessage _message = GetPageRangesDiffAsync_CreateMessage(
 10710                        pipeline,
 10711                        resourceUri,
 10712                        version,
 10713                        snapshot,
 10714                        timeout,
 10715                        prevsnapshot,
 10716                        prevSnapshotUrl,
 10717                        range,
 10718                        leaseId,
 10719                        ifModifiedSince,
 10720                        ifUnmodifiedSince,
 10721                        ifMatch,
 10722                        ifNoneMatch,
 10723                        ifTags,
 10724                        requestId))
 10725                    {
 10726                        if (async)
 10727                        {
 10728                            // Send the request asynchronously if we're being called via an async path
 10729                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 10730                        }
 10731                        else
 10732                        {
 10733                            // Send the request synchronously through the API that blocks if we're being called via a sy
 10734                            // (this is safe because the Task will complete before the user can call Wait)
 10735                            pipeline.Send(_message, cancellationToken);
 10736                        }
 10737                        Azure.Response _response = _message.Response;
 10738                        cancellationToken.ThrowIfCancellationRequested();
 10739                        return GetPageRangesDiffAsync_CreateResponse(clientDiagnostics, _response);
 10740                    }
 10741                }
 10742                catch (System.Exception ex)
 10743                {
 10744                    _scope.Failed(ex);
 10745                    throw;
 10746                }
 10747                finally
 10748                {
 10749                    _scope.Dispose();
 10750                }
 10751            }
 10752
 10753            /// <summary>
 10754            /// Create the PageBlob.GetPageRangesDiffAsync request.
 10755            /// </summary>
 10756            /// <param name="pipeline">The pipeline used for sending requests.</param>
 10757            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 10758            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 10759            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 10760            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 10761            /// <param name="prevsnapshot">Optional in version 2015-07-08 and newer. The prevsnapshot parameter is a Dat
 10762            /// <param name="prevSnapshotUrl">Optional. This header is only supported in service versions 2019-04-19 and
 10763            /// <param name="range">Return only the bytes of the blob in the specified range.</param>
 10764            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 10765            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 10766            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 10767            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 10768            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 10769            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 10770            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 10771            /// <returns>The PageBlob.GetPageRangesDiffAsync Message.</returns>
 10772            internal static Azure.Core.HttpMessage GetPageRangesDiffAsync_CreateMessage(
 10773                Azure.Core.Pipeline.HttpPipeline pipeline,
 10774                System.Uri resourceUri,
 10775                string version,
 10776                string snapshot = default,
 10777                int? timeout = default,
 10778                string prevsnapshot = default,
 10779                System.Uri prevSnapshotUrl = default,
 10780                string range = default,
 10781                string leaseId = default,
 10782                System.DateTimeOffset? ifModifiedSince = default,
 10783                System.DateTimeOffset? ifUnmodifiedSince = default,
 10784                Azure.ETag? ifMatch = default,
 10785                Azure.ETag? ifNoneMatch = default,
 10786                string ifTags = default,
 10787                string requestId = default)
 10788            {
 10789                // Validation
 10790                if (resourceUri == null)
 10791                {
 10792                    throw new System.ArgumentNullException(nameof(resourceUri));
 10793                }
 10794                if (version == null)
 10795                {
 10796                    throw new System.ArgumentNullException(nameof(version));
 10797                }
 10798
 10799                // Create the request
 10800                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 10801                Azure.Core.Request _request = _message.Request;
 10802
 10803                // Set the endpoint
 10804                _request.Method = Azure.Core.RequestMethod.Get;
 10805                _request.Uri.Reset(resourceUri);
 10806                _request.Uri.AppendQuery("comp", "pagelist", escapeValue: false);
 10807                if (snapshot != null) { _request.Uri.AppendQuery("snapshot", snapshot); }
 10808                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 10809                if (prevsnapshot != null) { _request.Uri.AppendQuery("prevsnapshot", prevsnapshot); }
 10810
 10811                // Add request headers
 10812                _request.Headers.SetValue("x-ms-version", version);
 10813                if (prevSnapshotUrl != null) { _request.Headers.SetValue("x-ms-previous-snapshot-url", prevSnapshotUrl.A
 10814                if (range != null) { _request.Headers.SetValue("x-ms-range", range); }
 10815                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 10816                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 10817                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 10818                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 10819                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 10820                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 10821                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 10822
 10823                return _message;
 10824            }
 10825
 10826            /// <summary>
 10827            /// Create the PageBlob.GetPageRangesDiffAsync response or throw a failure exception.
 10828            /// </summary>
 10829            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 10830            /// <param name="response">The raw Response.</param>
 10831            /// <returns>The PageBlob.GetPageRangesDiffAsync Azure.Response{Azure.Storage.Blobs.Models.PageRangesInfoInt
 10832            internal static Azure.Response<Azure.Storage.Blobs.Models.PageRangesInfoInternal> GetPageRangesDiffAsync_Cre
 10833                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 10834                Azure.Response response)
 10835            {
 10836                // Process the response
 10837                switch (response.Status)
 10838                {
 10839                    case 200:
 10840                    {
 10841                        // Create the result
 10842                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 10843                        Azure.Storage.Blobs.Models.PageRangesInfoInternal _value = new Azure.Storage.Blobs.Models.PageRa
 10844                        _value.Body = Azure.Storage.Blobs.Models.PageList.FromXml(_xml.Root);
 10845
 10846                        // Get response headers
 10847                        string _header;
 10848                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 10849                        {
 10850                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 10851                        }
 10852                        if (response.Headers.TryGetValue("ETag", out _header))
 10853                        {
 10854                            _value.ETag = new Azure.ETag(_header);
 10855                        }
 10856                        if (response.Headers.TryGetValue("x-ms-blob-content-length", out _header))
 10857                        {
 10858                            _value.BlobContentLength = long.Parse(_header, System.Globalization.CultureInfo.InvariantCul
 10859                        }
 10860
 10861                        // Create the response
 10862                        return Response.FromValue(_value, response);
 10863                    }
 10864                    case 304:
 10865                    {
 10866                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.PageRangesInfoInternal>(response);
 10867                    }
 10868                    default:
 10869                    {
 10870                        // Create the result
 10871                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 10872                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 10873
 10874                        throw _value.CreateException(clientDiagnostics, response);
 10875                    }
 10876                }
 10877            }
 10878            #endregion PageBlob.GetPageRangesDiffAsync
 10879
 10880            #region PageBlob.ResizeAsync
 10881            /// <summary>
 10882            /// Resize the Blob
 10883            /// </summary>
 10884            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 10885            /// <param name="pipeline">The pipeline used for sending requests.</param>
 10886            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 10887            /// <param name="blobContentLength">This header specifies the maximum size for the page blob, up to 1 TB. Th
 10888            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 10889            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 10890            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 10891            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 10892            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 10893            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 10894            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 10895            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 10896            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 10897            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 10898            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 10899            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 10900            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 10901            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 10902            /// <param name="operationName">Operation name.</param>
 10903            /// <param name="cancellationToken">Cancellation token.</param>
 10904            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.PageBlobInfo}</returns>
 10905            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.PageBlobInfo>
 10906                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 10907                Azure.Core.Pipeline.HttpPipeline pipeline,
 10908                System.Uri resourceUri,
 10909                long blobContentLength,
 10910                string version,
 10911                int? timeout = default,
 10912                string leaseId = default,
 10913                string encryptionKey = default,
 10914                string encryptionKeySha256 = default,
 10915                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 10916                string encryptionScope = default,
 10917                System.DateTimeOffset? ifModifiedSince = default,
 10918                System.DateTimeOffset? ifUnmodifiedSince = default,
 10919                Azure.ETag? ifMatch = default,
 10920                Azure.ETag? ifNoneMatch = default,
 10921                string ifTags = default,
 10922                string requestId = default,
 10923                bool async = true,
 10924                string operationName = "PageBlobClient.Resize",
 10925                System.Threading.CancellationToken cancellationToken = default)
 10926            {
 10927                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 10928                try
 10929                {
 10930                    _scope.AddAttribute("url", resourceUri);
 10931                    _scope.Start();
 10932                    using (Azure.Core.HttpMessage _message = ResizeAsync_CreateMessage(
 10933                        pipeline,
 10934                        resourceUri,
 10935                        blobContentLength,
 10936                        version,
 10937                        timeout,
 10938                        leaseId,
 10939                        encryptionKey,
 10940                        encryptionKeySha256,
 10941                        encryptionAlgorithm,
 10942                        encryptionScope,
 10943                        ifModifiedSince,
 10944                        ifUnmodifiedSince,
 10945                        ifMatch,
 10946                        ifNoneMatch,
 10947                        ifTags,
 10948                        requestId))
 10949                    {
 10950                        if (async)
 10951                        {
 10952                            // Send the request asynchronously if we're being called via an async path
 10953                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 10954                        }
 10955                        else
 10956                        {
 10957                            // Send the request synchronously through the API that blocks if we're being called via a sy
 10958                            // (this is safe because the Task will complete before the user can call Wait)
 10959                            pipeline.Send(_message, cancellationToken);
 10960                        }
 10961                        Azure.Response _response = _message.Response;
 10962                        cancellationToken.ThrowIfCancellationRequested();
 10963                        return ResizeAsync_CreateResponse(clientDiagnostics, _response);
 10964                    }
 10965                }
 10966                catch (System.Exception ex)
 10967                {
 10968                    _scope.Failed(ex);
 10969                    throw;
 10970                }
 10971                finally
 10972                {
 10973                    _scope.Dispose();
 10974                }
 10975            }
 10976
 10977            /// <summary>
 10978            /// Create the PageBlob.ResizeAsync request.
 10979            /// </summary>
 10980            /// <param name="pipeline">The pipeline used for sending requests.</param>
 10981            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 10982            /// <param name="blobContentLength">This header specifies the maximum size for the page blob, up to 1 TB. Th
 10983            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 10984            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 10985            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 10986            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 10987            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 10988            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 10989            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 10990            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 10991            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 10992            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 10993            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 10994            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 10995            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 10996            /// <returns>The PageBlob.ResizeAsync Message.</returns>
 10997            internal static Azure.Core.HttpMessage ResizeAsync_CreateMessage(
 10998                Azure.Core.Pipeline.HttpPipeline pipeline,
 10999                System.Uri resourceUri,
 11000                long blobContentLength,
 11001                string version,
 11002                int? timeout = default,
 11003                string leaseId = default,
 11004                string encryptionKey = default,
 11005                string encryptionKeySha256 = default,
 11006                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 11007                string encryptionScope = default,
 11008                System.DateTimeOffset? ifModifiedSince = default,
 11009                System.DateTimeOffset? ifUnmodifiedSince = default,
 11010                Azure.ETag? ifMatch = default,
 11011                Azure.ETag? ifNoneMatch = default,
 11012                string ifTags = default,
 11013                string requestId = default)
 11014            {
 11015                // Validation
 11016                if (resourceUri == null)
 11017                {
 11018                    throw new System.ArgumentNullException(nameof(resourceUri));
 11019                }
 11020                if (version == null)
 11021                {
 11022                    throw new System.ArgumentNullException(nameof(version));
 11023                }
 11024
 11025                // Create the request
 11026                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 11027                Azure.Core.Request _request = _message.Request;
 11028
 11029                // Set the endpoint
 11030                _request.Method = Azure.Core.RequestMethod.Put;
 11031                _request.Uri.Reset(resourceUri);
 11032                _request.Uri.AppendQuery("comp", "properties", escapeValue: false);
 11033                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 11034
 11035                // Add request headers
 11036                _request.Headers.SetValue("x-ms-blob-content-length", blobContentLength.ToString(System.Globalization.Cu
 11037                _request.Headers.SetValue("x-ms-version", version);
 11038                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 11039                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 11040                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 11041                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 11042                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 11043                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 11044                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 11045                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 11046                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 11047                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 11048                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 11049
 11050                return _message;
 11051            }
 11052
 11053            /// <summary>
 11054            /// Create the PageBlob.ResizeAsync response or throw a failure exception.
 11055            /// </summary>
 11056            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 11057            /// <param name="response">The raw Response.</param>
 11058            /// <returns>The PageBlob.ResizeAsync Azure.Response{Azure.Storage.Blobs.Models.PageBlobInfo}.</returns>
 11059            internal static Azure.Response<Azure.Storage.Blobs.Models.PageBlobInfo> ResizeAsync_CreateResponse(
 11060                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 11061                Azure.Response response)
 11062            {
 11063                // Process the response
 11064                switch (response.Status)
 11065                {
 11066                    case 200:
 11067                    {
 11068                        // Create the result
 11069                        Azure.Storage.Blobs.Models.PageBlobInfo _value = new Azure.Storage.Blobs.Models.PageBlobInfo();
 11070
 11071                        // Get response headers
 11072                        string _header;
 11073                        if (response.Headers.TryGetValue("ETag", out _header))
 11074                        {
 11075                            _value.ETag = new Azure.ETag(_header);
 11076                        }
 11077                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 11078                        {
 11079                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 11080                        }
 11081                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 11082                        {
 11083                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 11084                        }
 11085
 11086                        // Create the response
 11087                        return Response.FromValue(_value, response);
 11088                    }
 11089                    default:
 11090                    {
 11091                        // Create the result
 11092                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 11093                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 11094
 11095                        throw _value.CreateException(clientDiagnostics, response);
 11096                    }
 11097                }
 11098            }
 11099            #endregion PageBlob.ResizeAsync
 11100
 11101            #region PageBlob.UpdateSequenceNumberAsync
 11102            /// <summary>
 11103            /// Update the sequence number of the blob
 11104            /// </summary>
 11105            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 11106            /// <param name="pipeline">The pipeline used for sending requests.</param>
 11107            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 11108            /// <param name="sequenceNumberAction">Required if the x-ms-blob-sequence-number header is set for the reque
 11109            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 11110            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 11111            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 11112            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 11113            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 11114            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 11115            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 11116            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 11117            /// <param name="blobSequenceNumber">Set for page blobs only. The sequence number is a user-controlled value
 11118            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 11119            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 11120            /// <param name="operationName">Operation name.</param>
 11121            /// <param name="cancellationToken">Cancellation token.</param>
 11122            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.PageBlobInfo}</returns>
 11123            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.PageBlobInfo>
 11124                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 11125                Azure.Core.Pipeline.HttpPipeline pipeline,
 11126                System.Uri resourceUri,
 11127                Azure.Storage.Blobs.Models.SequenceNumberAction sequenceNumberAction,
 11128                string version,
 11129                int? timeout = default,
 11130                string leaseId = default,
 11131                System.DateTimeOffset? ifModifiedSince = default,
 11132                System.DateTimeOffset? ifUnmodifiedSince = default,
 11133                Azure.ETag? ifMatch = default,
 11134                Azure.ETag? ifNoneMatch = default,
 11135                string ifTags = default,
 11136                long? blobSequenceNumber = default,
 11137                string requestId = default,
 11138                bool async = true,
 11139                string operationName = "PageBlobClient.UpdateSequenceNumber",
 11140                System.Threading.CancellationToken cancellationToken = default)
 11141            {
 11142                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 11143                try
 11144                {
 11145                    _scope.AddAttribute("url", resourceUri);
 11146                    _scope.Start();
 11147                    using (Azure.Core.HttpMessage _message = UpdateSequenceNumberAsync_CreateMessage(
 11148                        pipeline,
 11149                        resourceUri,
 11150                        sequenceNumberAction,
 11151                        version,
 11152                        timeout,
 11153                        leaseId,
 11154                        ifModifiedSince,
 11155                        ifUnmodifiedSince,
 11156                        ifMatch,
 11157                        ifNoneMatch,
 11158                        ifTags,
 11159                        blobSequenceNumber,
 11160                        requestId))
 11161                    {
 11162                        if (async)
 11163                        {
 11164                            // Send the request asynchronously if we're being called via an async path
 11165                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 11166                        }
 11167                        else
 11168                        {
 11169                            // Send the request synchronously through the API that blocks if we're being called via a sy
 11170                            // (this is safe because the Task will complete before the user can call Wait)
 11171                            pipeline.Send(_message, cancellationToken);
 11172                        }
 11173                        Azure.Response _response = _message.Response;
 11174                        cancellationToken.ThrowIfCancellationRequested();
 11175                        return UpdateSequenceNumberAsync_CreateResponse(clientDiagnostics, _response);
 11176                    }
 11177                }
 11178                catch (System.Exception ex)
 11179                {
 11180                    _scope.Failed(ex);
 11181                    throw;
 11182                }
 11183                finally
 11184                {
 11185                    _scope.Dispose();
 11186                }
 11187            }
 11188
 11189            /// <summary>
 11190            /// Create the PageBlob.UpdateSequenceNumberAsync request.
 11191            /// </summary>
 11192            /// <param name="pipeline">The pipeline used for sending requests.</param>
 11193            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 11194            /// <param name="sequenceNumberAction">Required if the x-ms-blob-sequence-number header is set for the reque
 11195            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 11196            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 11197            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 11198            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 11199            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 11200            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 11201            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 11202            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 11203            /// <param name="blobSequenceNumber">Set for page blobs only. The sequence number is a user-controlled value
 11204            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 11205            /// <returns>The PageBlob.UpdateSequenceNumberAsync Message.</returns>
 11206            internal static Azure.Core.HttpMessage UpdateSequenceNumberAsync_CreateMessage(
 11207                Azure.Core.Pipeline.HttpPipeline pipeline,
 11208                System.Uri resourceUri,
 11209                Azure.Storage.Blobs.Models.SequenceNumberAction sequenceNumberAction,
 11210                string version,
 11211                int? timeout = default,
 11212                string leaseId = default,
 11213                System.DateTimeOffset? ifModifiedSince = default,
 11214                System.DateTimeOffset? ifUnmodifiedSince = default,
 11215                Azure.ETag? ifMatch = default,
 11216                Azure.ETag? ifNoneMatch = default,
 11217                string ifTags = default,
 11218                long? blobSequenceNumber = default,
 11219                string requestId = default)
 11220            {
 11221                // Validation
 11222                if (resourceUri == null)
 11223                {
 11224                    throw new System.ArgumentNullException(nameof(resourceUri));
 11225                }
 11226                if (version == null)
 11227                {
 11228                    throw new System.ArgumentNullException(nameof(version));
 11229                }
 11230
 11231                // Create the request
 11232                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 11233                Azure.Core.Request _request = _message.Request;
 11234
 11235                // Set the endpoint
 11236                _request.Method = Azure.Core.RequestMethod.Put;
 11237                _request.Uri.Reset(resourceUri);
 11238                _request.Uri.AppendQuery("comp", "properties", escapeValue: false);
 11239                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 11240
 11241                // Add request headers
 11242                _request.Headers.SetValue("x-ms-sequence-number-action", Azure.Storage.Blobs.BlobRestClient.Serializatio
 11243                _request.Headers.SetValue("x-ms-version", version);
 11244                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 11245                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 11246                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 11247                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 11248                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 11249                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 11250                if (blobSequenceNumber != null) { _request.Headers.SetValue("x-ms-blob-sequence-number", blobSequenceNum
 11251                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 11252
 11253                return _message;
 11254            }
 11255
 11256            /// <summary>
 11257            /// Create the PageBlob.UpdateSequenceNumberAsync response or throw a failure exception.
 11258            /// </summary>
 11259            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 11260            /// <param name="response">The raw Response.</param>
 11261            /// <returns>The PageBlob.UpdateSequenceNumberAsync Azure.Response{Azure.Storage.Blobs.Models.PageBlobInfo}.
 11262            internal static Azure.Response<Azure.Storage.Blobs.Models.PageBlobInfo> UpdateSequenceNumberAsync_CreateResp
 11263                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 11264                Azure.Response response)
 11265            {
 11266                // Process the response
 11267                switch (response.Status)
 11268                {
 11269                    case 200:
 11270                    {
 11271                        // Create the result
 11272                        Azure.Storage.Blobs.Models.PageBlobInfo _value = new Azure.Storage.Blobs.Models.PageBlobInfo();
 11273
 11274                        // Get response headers
 11275                        string _header;
 11276                        if (response.Headers.TryGetValue("ETag", out _header))
 11277                        {
 11278                            _value.ETag = new Azure.ETag(_header);
 11279                        }
 11280                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 11281                        {
 11282                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 11283                        }
 11284                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 11285                        {
 11286                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 11287                        }
 11288
 11289                        // Create the response
 11290                        return Response.FromValue(_value, response);
 11291                    }
 11292                    default:
 11293                    {
 11294                        // Create the result
 11295                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 11296                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 11297
 11298                        throw _value.CreateException(clientDiagnostics, response);
 11299                    }
 11300                }
 11301            }
 11302            #endregion PageBlob.UpdateSequenceNumberAsync
 11303
 11304            #region PageBlob.CopyIncrementalAsync
 11305            /// <summary>
 11306            /// The Copy Incremental operation copies a snapshot of the source page blob to a destination page blob. The
 11307            /// </summary>
 11308            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 11309            /// <param name="pipeline">The pipeline used for sending requests.</param>
 11310            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 11311            /// <param name="copySource">Specifies the name of the source page blob snapshot. This value is a URL of up 
 11312            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 11313            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 11314            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 11315            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 11316            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 11317            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 11318            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 11319            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 11320            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 11321            /// <param name="operationName">Operation name.</param>
 11322            /// <param name="cancellationToken">Cancellation token.</param>
 11323            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobCopyInfo}</returns>
 11324            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobCopyInfo>
 11325                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 11326                Azure.Core.Pipeline.HttpPipeline pipeline,
 11327                System.Uri resourceUri,
 11328                System.Uri copySource,
 11329                string version,
 11330                int? timeout = default,
 11331                System.DateTimeOffset? ifModifiedSince = default,
 11332                System.DateTimeOffset? ifUnmodifiedSince = default,
 11333                Azure.ETag? ifMatch = default,
 11334                Azure.ETag? ifNoneMatch = default,
 11335                string ifTags = default,
 11336                string requestId = default,
 11337                bool async = true,
 11338                string operationName = "PageBlobClient.CopyIncremental",
 11339                System.Threading.CancellationToken cancellationToken = default)
 11340            {
 11341                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 11342                try
 11343                {
 11344                    _scope.AddAttribute("url", resourceUri);
 11345                    _scope.Start();
 11346                    using (Azure.Core.HttpMessage _message = CopyIncrementalAsync_CreateMessage(
 11347                        pipeline,
 11348                        resourceUri,
 11349                        copySource,
 11350                        version,
 11351                        timeout,
 11352                        ifModifiedSince,
 11353                        ifUnmodifiedSince,
 11354                        ifMatch,
 11355                        ifNoneMatch,
 11356                        ifTags,
 11357                        requestId))
 11358                    {
 11359                        if (async)
 11360                        {
 11361                            // Send the request asynchronously if we're being called via an async path
 11362                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 11363                        }
 11364                        else
 11365                        {
 11366                            // Send the request synchronously through the API that blocks if we're being called via a sy
 11367                            // (this is safe because the Task will complete before the user can call Wait)
 11368                            pipeline.Send(_message, cancellationToken);
 11369                        }
 11370                        Azure.Response _response = _message.Response;
 11371                        cancellationToken.ThrowIfCancellationRequested();
 11372                        return CopyIncrementalAsync_CreateResponse(clientDiagnostics, _response);
 11373                    }
 11374                }
 11375                catch (System.Exception ex)
 11376                {
 11377                    _scope.Failed(ex);
 11378                    throw;
 11379                }
 11380                finally
 11381                {
 11382                    _scope.Dispose();
 11383                }
 11384            }
 11385
 11386            /// <summary>
 11387            /// Create the PageBlob.CopyIncrementalAsync request.
 11388            /// </summary>
 11389            /// <param name="pipeline">The pipeline used for sending requests.</param>
 11390            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 11391            /// <param name="copySource">Specifies the name of the source page blob snapshot. This value is a URL of up 
 11392            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 11393            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 11394            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 11395            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 11396            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 11397            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 11398            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 11399            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 11400            /// <returns>The PageBlob.CopyIncrementalAsync Message.</returns>
 11401            internal static Azure.Core.HttpMessage CopyIncrementalAsync_CreateMessage(
 11402                Azure.Core.Pipeline.HttpPipeline pipeline,
 11403                System.Uri resourceUri,
 11404                System.Uri copySource,
 11405                string version,
 11406                int? timeout = default,
 11407                System.DateTimeOffset? ifModifiedSince = default,
 11408                System.DateTimeOffset? ifUnmodifiedSince = default,
 11409                Azure.ETag? ifMatch = default,
 11410                Azure.ETag? ifNoneMatch = default,
 11411                string ifTags = default,
 11412                string requestId = default)
 11413            {
 11414                // Validation
 11415                if (resourceUri == null)
 11416                {
 11417                    throw new System.ArgumentNullException(nameof(resourceUri));
 11418                }
 11419                if (copySource == null)
 11420                {
 11421                    throw new System.ArgumentNullException(nameof(copySource));
 11422                }
 11423                if (version == null)
 11424                {
 11425                    throw new System.ArgumentNullException(nameof(version));
 11426                }
 11427
 11428                // Create the request
 11429                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 11430                Azure.Core.Request _request = _message.Request;
 11431
 11432                // Set the endpoint
 11433                _request.Method = Azure.Core.RequestMethod.Put;
 11434                _request.Uri.Reset(resourceUri);
 11435                _request.Uri.AppendQuery("comp", "incrementalcopy", escapeValue: false);
 11436                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 11437
 11438                // Add request headers
 11439                _request.Headers.SetValue("x-ms-copy-source", copySource.AbsoluteUri);
 11440                _request.Headers.SetValue("x-ms-version", version);
 11441                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 11442                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 11443                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 11444                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 11445                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 11446                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 11447
 11448                return _message;
 11449            }
 11450
 11451            /// <summary>
 11452            /// Create the PageBlob.CopyIncrementalAsync response or throw a failure exception.
 11453            /// </summary>
 11454            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 11455            /// <param name="response">The raw Response.</param>
 11456            /// <returns>The PageBlob.CopyIncrementalAsync Azure.Response{Azure.Storage.Blobs.Models.BlobCopyInfo}.</ret
 11457            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobCopyInfo> CopyIncrementalAsync_CreateResponse(
 11458                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 11459                Azure.Response response)
 11460            {
 11461                // Process the response
 11462                switch (response.Status)
 11463                {
 11464                    case 202:
 11465                    {
 11466                        // Create the result
 11467                        Azure.Storage.Blobs.Models.BlobCopyInfo _value = new Azure.Storage.Blobs.Models.BlobCopyInfo();
 11468
 11469                        // Get response headers
 11470                        string _header;
 11471                        if (response.Headers.TryGetValue("ETag", out _header))
 11472                        {
 11473                            _value.ETag = new Azure.ETag(_header);
 11474                        }
 11475                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 11476                        {
 11477                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 11478                        }
 11479                        if (response.Headers.TryGetValue("x-ms-copy-id", out _header))
 11480                        {
 11481                            _value.CopyId = _header;
 11482                        }
 11483                        if (response.Headers.TryGetValue("x-ms-copy-status", out _header))
 11484                        {
 11485                            _value.CopyStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseCopyStatus(_header
 11486                        }
 11487
 11488                        // Create the response
 11489                        return Response.FromValue(_value, response);
 11490                    }
 11491                    default:
 11492                    {
 11493                        // Create the result
 11494                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 11495                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 11496
 11497                        throw _value.CreateException(clientDiagnostics, response);
 11498                    }
 11499                }
 11500            }
 11501            #endregion PageBlob.CopyIncrementalAsync
 11502        }
 11503        #endregion PageBlob operations
 11504
 11505        #region AppendBlob operations
 11506        /// <summary>
 11507        /// AppendBlob operations for Azure Blob Storage
 11508        /// </summary>
 11509        public static partial class AppendBlob
 11510        {
 11511            #region AppendBlob.CreateAsync
 11512            /// <summary>
 11513            /// The Create Append Blob operation creates a new append blob.
 11514            /// </summary>
 11515            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 11516            /// <param name="pipeline">The pipeline used for sending requests.</param>
 11517            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 11518            /// <param name="contentLength">The length of the request.</param>
 11519            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 11520            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 11521            /// <param name="blobContentType">Optional. Sets the blob's content type. If specified, this property is sto
 11522            /// <param name="blobContentEncoding">Optional. Sets the blob's content encoding. If specified, this propert
 11523            /// <param name="blobContentLanguage">Optional. Set the blob's content language. If specified, this property
 11524            /// <param name="blobContentHash">Optional. An MD5 hash of the blob content. Note that this hash is not vali
 11525            /// <param name="blobCacheControl">Optional. Sets the blob's cache control. If specified, this property is s
 11526            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 11527            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 11528            /// <param name="blobContentDisposition">Optional. Sets the blob's Content-Disposition header.</param>
 11529            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 11530            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 11531            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 11532            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 11533            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 11534            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 11535            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 11536            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 11537            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 11538            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 11539            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 11540            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 11541            /// <param name="operationName">Operation name.</param>
 11542            /// <param name="cancellationToken">Cancellation token.</param>
 11543            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobContentInfo}</returns>
 11544            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobContentIn
 11545                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 11546                Azure.Core.Pipeline.HttpPipeline pipeline,
 11547                System.Uri resourceUri,
 11548                long contentLength,
 11549                string version,
 11550                int? timeout = default,
 11551                string blobContentType = default,
 11552                string blobContentEncoding = default,
 11553                string blobContentLanguage = default,
 11554                byte[] blobContentHash = default,
 11555                string blobCacheControl = default,
 11556                System.Collections.Generic.IDictionary<string, string> metadata = default,
 11557                string leaseId = default,
 11558                string blobContentDisposition = default,
 11559                string encryptionKey = default,
 11560                string encryptionKeySha256 = default,
 11561                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 11562                string encryptionScope = default,
 11563                System.DateTimeOffset? ifModifiedSince = default,
 11564                System.DateTimeOffset? ifUnmodifiedSince = default,
 11565                Azure.ETag? ifMatch = default,
 11566                Azure.ETag? ifNoneMatch = default,
 11567                string ifTags = default,
 11568                string requestId = default,
 11569                string blobTagsString = default,
 11570                bool async = true,
 11571                string operationName = "AppendBlobClient.Create",
 11572                System.Threading.CancellationToken cancellationToken = default)
 11573            {
 11574                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 11575                try
 11576                {
 11577                    _scope.AddAttribute("url", resourceUri);
 11578                    _scope.Start();
 11579                    using (Azure.Core.HttpMessage _message = CreateAsync_CreateMessage(
 11580                        pipeline,
 11581                        resourceUri,
 11582                        contentLength,
 11583                        version,
 11584                        timeout,
 11585                        blobContentType,
 11586                        blobContentEncoding,
 11587                        blobContentLanguage,
 11588                        blobContentHash,
 11589                        blobCacheControl,
 11590                        metadata,
 11591                        leaseId,
 11592                        blobContentDisposition,
 11593                        encryptionKey,
 11594                        encryptionKeySha256,
 11595                        encryptionAlgorithm,
 11596                        encryptionScope,
 11597                        ifModifiedSince,
 11598                        ifUnmodifiedSince,
 11599                        ifMatch,
 11600                        ifNoneMatch,
 11601                        ifTags,
 11602                        requestId,
 11603                        blobTagsString))
 11604                    {
 11605                        if (async)
 11606                        {
 11607                            // Send the request asynchronously if we're being called via an async path
 11608                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 11609                        }
 11610                        else
 11611                        {
 11612                            // Send the request synchronously through the API that blocks if we're being called via a sy
 11613                            // (this is safe because the Task will complete before the user can call Wait)
 11614                            pipeline.Send(_message, cancellationToken);
 11615                        }
 11616                        Azure.Response _response = _message.Response;
 11617                        cancellationToken.ThrowIfCancellationRequested();
 11618                        return CreateAsync_CreateResponse(clientDiagnostics, _response);
 11619                    }
 11620                }
 11621                catch (System.Exception ex)
 11622                {
 11623                    _scope.Failed(ex);
 11624                    throw;
 11625                }
 11626                finally
 11627                {
 11628                    _scope.Dispose();
 11629                }
 11630            }
 11631
 11632            /// <summary>
 11633            /// Create the AppendBlob.CreateAsync request.
 11634            /// </summary>
 11635            /// <param name="pipeline">The pipeline used for sending requests.</param>
 11636            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 11637            /// <param name="contentLength">The length of the request.</param>
 11638            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 11639            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 11640            /// <param name="blobContentType">Optional. Sets the blob's content type. If specified, this property is sto
 11641            /// <param name="blobContentEncoding">Optional. Sets the blob's content encoding. If specified, this propert
 11642            /// <param name="blobContentLanguage">Optional. Set the blob's content language. If specified, this property
 11643            /// <param name="blobContentHash">Optional. An MD5 hash of the blob content. Note that this hash is not vali
 11644            /// <param name="blobCacheControl">Optional. Sets the blob's cache control. If specified, this property is s
 11645            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 11646            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 11647            /// <param name="blobContentDisposition">Optional. Sets the blob's Content-Disposition header.</param>
 11648            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 11649            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 11650            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 11651            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 11652            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 11653            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 11654            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 11655            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 11656            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 11657            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 11658            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 11659            /// <returns>The AppendBlob.CreateAsync Message.</returns>
 11660            internal static Azure.Core.HttpMessage CreateAsync_CreateMessage(
 11661                Azure.Core.Pipeline.HttpPipeline pipeline,
 11662                System.Uri resourceUri,
 11663                long contentLength,
 11664                string version,
 11665                int? timeout = default,
 11666                string blobContentType = default,
 11667                string blobContentEncoding = default,
 11668                string blobContentLanguage = default,
 11669                byte[] blobContentHash = default,
 11670                string blobCacheControl = default,
 11671                System.Collections.Generic.IDictionary<string, string> metadata = default,
 11672                string leaseId = default,
 11673                string blobContentDisposition = default,
 11674                string encryptionKey = default,
 11675                string encryptionKeySha256 = default,
 11676                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 11677                string encryptionScope = default,
 11678                System.DateTimeOffset? ifModifiedSince = default,
 11679                System.DateTimeOffset? ifUnmodifiedSince = default,
 11680                Azure.ETag? ifMatch = default,
 11681                Azure.ETag? ifNoneMatch = default,
 11682                string ifTags = default,
 11683                string requestId = default,
 11684                string blobTagsString = default)
 11685            {
 11686                // Validation
 11687                if (resourceUri == null)
 11688                {
 11689                    throw new System.ArgumentNullException(nameof(resourceUri));
 11690                }
 11691                if (version == null)
 11692                {
 11693                    throw new System.ArgumentNullException(nameof(version));
 11694                }
 11695
 11696                // Create the request
 11697                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 11698                Azure.Core.Request _request = _message.Request;
 11699
 11700                // Set the endpoint
 11701                _request.Method = Azure.Core.RequestMethod.Put;
 11702                _request.Uri.Reset(resourceUri);
 11703                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 11704
 11705                // Add request headers
 11706                _request.Headers.SetValue("x-ms-blob-type", "AppendBlob");
 11707                _request.Headers.SetValue("Content-Length", contentLength.ToString(System.Globalization.CultureInfo.Inva
 11708                _request.Headers.SetValue("x-ms-version", version);
 11709                if (blobContentType != null) { _request.Headers.SetValue("x-ms-blob-content-type", blobContentType); }
 11710                if (blobContentEncoding != null) { _request.Headers.SetValue("x-ms-blob-content-encoding", blobContentEn
 11711                if (blobContentLanguage != null) { _request.Headers.SetValue("x-ms-blob-content-language", blobContentLa
 11712                if (blobContentHash != null) { _request.Headers.SetValue("x-ms-blob-content-md5", System.Convert.ToBase6
 11713                if (blobCacheControl != null) { _request.Headers.SetValue("x-ms-blob-cache-control", blobCacheControl); 
 11714                if (metadata != null) {
 11715                    foreach (System.Collections.Generic.KeyValuePair<string, string> _pair in metadata)
 11716                    {
 11717                        _request.Headers.SetValue("x-ms-meta-" + _pair.Key, _pair.Value);
 11718                    }
 11719                }
 11720                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 11721                if (blobContentDisposition != null) { _request.Headers.SetValue("x-ms-blob-content-disposition", blobCon
 11722                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 11723                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 11724                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 11725                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 11726                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 11727                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 11728                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 11729                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 11730                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 11731                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 11732                if (blobTagsString != null) { _request.Headers.SetValue("x-ms-tags", blobTagsString); }
 11733
 11734                return _message;
 11735            }
 11736
 11737            /// <summary>
 11738            /// Create the AppendBlob.CreateAsync response or throw a failure exception.
 11739            /// </summary>
 11740            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 11741            /// <param name="response">The raw Response.</param>
 11742            /// <returns>The AppendBlob.CreateAsync Azure.Response{Azure.Storage.Blobs.Models.BlobContentInfo}.</returns
 11743            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobContentInfo> CreateAsync_CreateResponse(
 11744                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 11745                Azure.Response response)
 11746            {
 11747                // Process the response
 11748                switch (response.Status)
 11749                {
 11750                    case 201:
 11751                    {
 11752                        // Create the result
 11753                        Azure.Storage.Blobs.Models.BlobContentInfo _value = new Azure.Storage.Blobs.Models.BlobContentIn
 11754
 11755                        // Get response headers
 11756                        string _header;
 11757                        if (response.Headers.TryGetValue("ETag", out _header))
 11758                        {
 11759                            _value.ETag = new Azure.ETag(_header);
 11760                        }
 11761                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 11762                        {
 11763                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 11764                        }
 11765                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 11766                        {
 11767                            _value.ContentHash = System.Convert.FromBase64String(_header);
 11768                        }
 11769                        if (response.Headers.TryGetValue("x-ms-version-id", out _header))
 11770                        {
 11771                            _value.VersionId = _header;
 11772                        }
 11773                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 11774                        {
 11775                            _value.EncryptionKeySha256 = _header;
 11776                        }
 11777                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 11778                        {
 11779                            _value.EncryptionScope = _header;
 11780                        }
 11781                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 11782                        {
 11783                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 11784                        }
 11785
 11786                        // Create the response
 11787                        return Response.FromValue(_value, response);
 11788                    }
 11789                    default:
 11790                    {
 11791                        // Create the result
 11792                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 11793                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 11794
 11795                        throw _value.CreateException(clientDiagnostics, response);
 11796                    }
 11797                }
 11798            }
 11799            #endregion AppendBlob.CreateAsync
 11800
 11801            #region AppendBlob.AppendBlockAsync
 11802            /// <summary>
 11803            /// The Append Block operation commits a new block of data to the end of an existing append blob. The Append
 11804            /// </summary>
 11805            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 11806            /// <param name="pipeline">The pipeline used for sending requests.</param>
 11807            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 11808            /// <param name="body">Initial data</param>
 11809            /// <param name="contentLength">The length of the request.</param>
 11810            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 11811            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 11812            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 11813            /// <param name="transactionalContentCrc64">Specify the transactional crc64 for the body, to be validated by
 11814            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 11815            /// <param name="maxSize">Optional conditional header. The max length in bytes permitted for the append blob
 11816            /// <param name="appendPosition">Optional conditional header, used only for the Append Block operation. A nu
 11817            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 11818            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 11819            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 11820            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 11821            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 11822            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 11823            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 11824            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 11825            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 11826            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 11827            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 11828            /// <param name="operationName">Operation name.</param>
 11829            /// <param name="cancellationToken">Cancellation token.</param>
 11830            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobAppendInfo}</returns>
 11831            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobAppendInf
 11832                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 11833                Azure.Core.Pipeline.HttpPipeline pipeline,
 11834                System.Uri resourceUri,
 11835                System.IO.Stream body,
 11836                long contentLength,
 11837                string version,
 11838                int? timeout = default,
 11839                byte[] transactionalContentHash = default,
 11840                byte[] transactionalContentCrc64 = default,
 11841                string leaseId = default,
 11842                long? maxSize = default,
 11843                long? appendPosition = default,
 11844                string encryptionKey = default,
 11845                string encryptionKeySha256 = default,
 11846                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 11847                string encryptionScope = default,
 11848                System.DateTimeOffset? ifModifiedSince = default,
 11849                System.DateTimeOffset? ifUnmodifiedSince = default,
 11850                Azure.ETag? ifMatch = default,
 11851                Azure.ETag? ifNoneMatch = default,
 11852                string ifTags = default,
 11853                string requestId = default,
 11854                bool async = true,
 11855                string operationName = "AppendBlobClient.AppendBlock",
 11856                System.Threading.CancellationToken cancellationToken = default)
 11857            {
 11858                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 11859                try
 11860                {
 11861                    _scope.AddAttribute("url", resourceUri);
 11862                    _scope.Start();
 11863                    using (Azure.Core.HttpMessage _message = AppendBlockAsync_CreateMessage(
 11864                        pipeline,
 11865                        resourceUri,
 11866                        body,
 11867                        contentLength,
 11868                        version,
 11869                        timeout,
 11870                        transactionalContentHash,
 11871                        transactionalContentCrc64,
 11872                        leaseId,
 11873                        maxSize,
 11874                        appendPosition,
 11875                        encryptionKey,
 11876                        encryptionKeySha256,
 11877                        encryptionAlgorithm,
 11878                        encryptionScope,
 11879                        ifModifiedSince,
 11880                        ifUnmodifiedSince,
 11881                        ifMatch,
 11882                        ifNoneMatch,
 11883                        ifTags,
 11884                        requestId))
 11885                    {
 11886                        if (async)
 11887                        {
 11888                            // Send the request asynchronously if we're being called via an async path
 11889                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 11890                        }
 11891                        else
 11892                        {
 11893                            // Send the request synchronously through the API that blocks if we're being called via a sy
 11894                            // (this is safe because the Task will complete before the user can call Wait)
 11895                            pipeline.Send(_message, cancellationToken);
 11896                        }
 11897                        Azure.Response _response = _message.Response;
 11898                        cancellationToken.ThrowIfCancellationRequested();
 11899                        return AppendBlockAsync_CreateResponse(clientDiagnostics, _response);
 11900                    }
 11901                }
 11902                catch (System.Exception ex)
 11903                {
 11904                    _scope.Failed(ex);
 11905                    throw;
 11906                }
 11907                finally
 11908                {
 11909                    _scope.Dispose();
 11910                }
 11911            }
 11912
 11913            /// <summary>
 11914            /// Create the AppendBlob.AppendBlockAsync request.
 11915            /// </summary>
 11916            /// <param name="pipeline">The pipeline used for sending requests.</param>
 11917            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 11918            /// <param name="body">Initial data</param>
 11919            /// <param name="contentLength">The length of the request.</param>
 11920            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 11921            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 11922            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 11923            /// <param name="transactionalContentCrc64">Specify the transactional crc64 for the body, to be validated by
 11924            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 11925            /// <param name="maxSize">Optional conditional header. The max length in bytes permitted for the append blob
 11926            /// <param name="appendPosition">Optional conditional header, used only for the Append Block operation. A nu
 11927            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 11928            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 11929            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 11930            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 11931            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 11932            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 11933            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 11934            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 11935            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 11936            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 11937            /// <returns>The AppendBlob.AppendBlockAsync Message.</returns>
 11938            internal static Azure.Core.HttpMessage AppendBlockAsync_CreateMessage(
 11939                Azure.Core.Pipeline.HttpPipeline pipeline,
 11940                System.Uri resourceUri,
 11941                System.IO.Stream body,
 11942                long contentLength,
 11943                string version,
 11944                int? timeout = default,
 11945                byte[] transactionalContentHash = default,
 11946                byte[] transactionalContentCrc64 = default,
 11947                string leaseId = default,
 11948                long? maxSize = default,
 11949                long? appendPosition = default,
 11950                string encryptionKey = default,
 11951                string encryptionKeySha256 = default,
 11952                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 11953                string encryptionScope = default,
 11954                System.DateTimeOffset? ifModifiedSince = default,
 11955                System.DateTimeOffset? ifUnmodifiedSince = default,
 11956                Azure.ETag? ifMatch = default,
 11957                Azure.ETag? ifNoneMatch = default,
 11958                string ifTags = default,
 11959                string requestId = default)
 11960            {
 11961                // Validation
 11962                if (resourceUri == null)
 11963                {
 11964                    throw new System.ArgumentNullException(nameof(resourceUri));
 11965                }
 11966                if (body == null)
 11967                {
 11968                    throw new System.ArgumentNullException(nameof(body));
 11969                }
 11970                if (version == null)
 11971                {
 11972                    throw new System.ArgumentNullException(nameof(version));
 11973                }
 11974
 11975                // Create the request
 11976                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 11977                Azure.Core.Request _request = _message.Request;
 11978
 11979                // Set the endpoint
 11980                _request.Method = Azure.Core.RequestMethod.Put;
 11981                _request.Uri.Reset(resourceUri);
 11982                _request.Uri.AppendQuery("comp", "appendblock", escapeValue: false);
 11983                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 11984
 11985                // Add request headers
 11986                _request.Headers.SetValue("Content-Length", contentLength.ToString(System.Globalization.CultureInfo.Inva
 11987                _request.Headers.SetValue("x-ms-version", version);
 11988                if (transactionalContentHash != null) { _request.Headers.SetValue("Content-MD5", System.Convert.ToBase64
 11989                if (transactionalContentCrc64 != null) { _request.Headers.SetValue("x-ms-content-crc64", System.Convert.
 11990                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 11991                if (maxSize != null) { _request.Headers.SetValue("x-ms-blob-condition-maxsize", maxSize.Value.ToString(S
 11992                if (appendPosition != null) { _request.Headers.SetValue("x-ms-blob-condition-appendpos", appendPosition.
 11993                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 11994                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 11995                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 11996                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 11997                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 11998                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 11999                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 12000                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 12001                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 12002                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 12003
 12004                // Create the body
 12005                _request.Content = Azure.Core.RequestContent.Create(body);
 12006
 12007                return _message;
 12008            }
 12009
 12010            /// <summary>
 12011            /// Create the AppendBlob.AppendBlockAsync response or throw a failure exception.
 12012            /// </summary>
 12013            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 12014            /// <param name="response">The raw Response.</param>
 12015            /// <returns>The AppendBlob.AppendBlockAsync Azure.Response{Azure.Storage.Blobs.Models.BlobAppendInfo}.</ret
 12016            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobAppendInfo> AppendBlockAsync_CreateResponse(
 12017                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 12018                Azure.Response response)
 12019            {
 12020                // Process the response
 12021                switch (response.Status)
 12022                {
 12023                    case 201:
 12024                    {
 12025                        // Create the result
 12026                        Azure.Storage.Blobs.Models.BlobAppendInfo _value = new Azure.Storage.Blobs.Models.BlobAppendInfo
 12027
 12028                        // Get response headers
 12029                        string _header;
 12030                        if (response.Headers.TryGetValue("ETag", out _header))
 12031                        {
 12032                            _value.ETag = new Azure.ETag(_header);
 12033                        }
 12034                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 12035                        {
 12036                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 12037                        }
 12038                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 12039                        {
 12040                            _value.ContentHash = System.Convert.FromBase64String(_header);
 12041                        }
 12042                        if (response.Headers.TryGetValue("x-ms-content-crc64", out _header))
 12043                        {
 12044                            _value.ContentCrc64 = System.Convert.FromBase64String(_header);
 12045                        }
 12046                        if (response.Headers.TryGetValue("x-ms-blob-append-offset", out _header))
 12047                        {
 12048                            _value.BlobAppendOffset = _header;
 12049                        }
 12050                        if (response.Headers.TryGetValue("x-ms-blob-committed-block-count", out _header))
 12051                        {
 12052                            _value.BlobCommittedBlockCount = int.Parse(_header, System.Globalization.CultureInfo.Invaria
 12053                        }
 12054                        if (response.Headers.TryGetValue("x-ms-request-server-encrypted", out _header))
 12055                        {
 12056                            _value.IsServerEncrypted = bool.Parse(_header);
 12057                        }
 12058                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 12059                        {
 12060                            _value.EncryptionKeySha256 = _header;
 12061                        }
 12062                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 12063                        {
 12064                            _value.EncryptionScope = _header;
 12065                        }
 12066
 12067                        // Create the response
 12068                        return Response.FromValue(_value, response);
 12069                    }
 12070                    default:
 12071                    {
 12072                        // Create the result
 12073                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 12074                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 12075
 12076                        throw _value.CreateException(clientDiagnostics, response);
 12077                    }
 12078                }
 12079            }
 12080            #endregion AppendBlob.AppendBlockAsync
 12081
 12082            #region AppendBlob.AppendBlockFromUriAsync
 12083            /// <summary>
 12084            /// The Append Block operation commits a new block of data to the end of an existing append blob where the c
 12085            /// </summary>
 12086            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 12087            /// <param name="pipeline">The pipeline used for sending requests.</param>
 12088            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 12089            /// <param name="sourceUri">Specify a URL to the copy source.</param>
 12090            /// <param name="contentLength">The length of the request.</param>
 12091            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 12092            /// <param name="sourceRange">Bytes of source data in the specified range.</param>
 12093            /// <param name="sourceContentHash">Specify the md5 calculated for the range of bytes that must be read from
 12094            /// <param name="sourceContentcrc64">Specify the crc64 calculated for the range of bytes that must be read f
 12095            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 12096            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 12097            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 12098            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 12099            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 12100            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 12101            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 12102            /// <param name="maxSize">Optional conditional header. The max length in bytes permitted for the append blob
 12103            /// <param name="appendPosition">Optional conditional header, used only for the Append Block operation. A nu
 12104            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 12105            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 12106            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 12107            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 12108            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 12109            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 12110            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 12111            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 12112            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 12113            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 12114            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 12115            /// <param name="operationName">Operation name.</param>
 12116            /// <param name="cancellationToken">Cancellation token.</param>
 12117            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobAppendInfo}</returns>
 12118            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobAppendInf
 12119                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 12120                Azure.Core.Pipeline.HttpPipeline pipeline,
 12121                System.Uri resourceUri,
 12122                System.Uri sourceUri,
 12123                long contentLength,
 12124                string version,
 12125                string sourceRange = default,
 12126                byte[] sourceContentHash = default,
 12127                byte[] sourceContentcrc64 = default,
 12128                int? timeout = default,
 12129                byte[] transactionalContentHash = default,
 12130                string encryptionKey = default,
 12131                string encryptionKeySha256 = default,
 12132                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 12133                string encryptionScope = default,
 12134                string leaseId = default,
 12135                long? maxSize = default,
 12136                long? appendPosition = default,
 12137                System.DateTimeOffset? ifModifiedSince = default,
 12138                System.DateTimeOffset? ifUnmodifiedSince = default,
 12139                Azure.ETag? ifMatch = default,
 12140                Azure.ETag? ifNoneMatch = default,
 12141                string ifTags = default,
 12142                System.DateTimeOffset? sourceIfModifiedSince = default,
 12143                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 12144                Azure.ETag? sourceIfMatch = default,
 12145                Azure.ETag? sourceIfNoneMatch = default,
 12146                string requestId = default,
 12147                bool async = true,
 12148                string operationName = "AppendBlobClient.AppendBlockFromUri",
 12149                System.Threading.CancellationToken cancellationToken = default)
 12150            {
 12151                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 12152                try
 12153                {
 12154                    _scope.AddAttribute("url", resourceUri);
 12155                    _scope.Start();
 12156                    using (Azure.Core.HttpMessage _message = AppendBlockFromUriAsync_CreateMessage(
 12157                        pipeline,
 12158                        resourceUri,
 12159                        sourceUri,
 12160                        contentLength,
 12161                        version,
 12162                        sourceRange,
 12163                        sourceContentHash,
 12164                        sourceContentcrc64,
 12165                        timeout,
 12166                        transactionalContentHash,
 12167                        encryptionKey,
 12168                        encryptionKeySha256,
 12169                        encryptionAlgorithm,
 12170                        encryptionScope,
 12171                        leaseId,
 12172                        maxSize,
 12173                        appendPosition,
 12174                        ifModifiedSince,
 12175                        ifUnmodifiedSince,
 12176                        ifMatch,
 12177                        ifNoneMatch,
 12178                        ifTags,
 12179                        sourceIfModifiedSince,
 12180                        sourceIfUnmodifiedSince,
 12181                        sourceIfMatch,
 12182                        sourceIfNoneMatch,
 12183                        requestId))
 12184                    {
 12185                        if (async)
 12186                        {
 12187                            // Send the request asynchronously if we're being called via an async path
 12188                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 12189                        }
 12190                        else
 12191                        {
 12192                            // Send the request synchronously through the API that blocks if we're being called via a sy
 12193                            // (this is safe because the Task will complete before the user can call Wait)
 12194                            pipeline.Send(_message, cancellationToken);
 12195                        }
 12196                        Azure.Response _response = _message.Response;
 12197                        cancellationToken.ThrowIfCancellationRequested();
 12198                        return AppendBlockFromUriAsync_CreateResponse(clientDiagnostics, _response);
 12199                    }
 12200                }
 12201                catch (System.Exception ex)
 12202                {
 12203                    _scope.Failed(ex);
 12204                    throw;
 12205                }
 12206                finally
 12207                {
 12208                    _scope.Dispose();
 12209                }
 12210            }
 12211
 12212            /// <summary>
 12213            /// Create the AppendBlob.AppendBlockFromUriAsync request.
 12214            /// </summary>
 12215            /// <param name="pipeline">The pipeline used for sending requests.</param>
 12216            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 12217            /// <param name="sourceUri">Specify a URL to the copy source.</param>
 12218            /// <param name="contentLength">The length of the request.</param>
 12219            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 12220            /// <param name="sourceRange">Bytes of source data in the specified range.</param>
 12221            /// <param name="sourceContentHash">Specify the md5 calculated for the range of bytes that must be read from
 12222            /// <param name="sourceContentcrc64">Specify the crc64 calculated for the range of bytes that must be read f
 12223            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 12224            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 12225            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 12226            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 12227            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 12228            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 12229            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 12230            /// <param name="maxSize">Optional conditional header. The max length in bytes permitted for the append blob
 12231            /// <param name="appendPosition">Optional conditional header, used only for the Append Block operation. A nu
 12232            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 12233            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 12234            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 12235            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 12236            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 12237            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 12238            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 12239            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 12240            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 12241            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 12242            /// <returns>The AppendBlob.AppendBlockFromUriAsync Message.</returns>
 12243            internal static Azure.Core.HttpMessage AppendBlockFromUriAsync_CreateMessage(
 12244                Azure.Core.Pipeline.HttpPipeline pipeline,
 12245                System.Uri resourceUri,
 12246                System.Uri sourceUri,
 12247                long contentLength,
 12248                string version,
 12249                string sourceRange = default,
 12250                byte[] sourceContentHash = default,
 12251                byte[] sourceContentcrc64 = default,
 12252                int? timeout = default,
 12253                byte[] transactionalContentHash = default,
 12254                string encryptionKey = default,
 12255                string encryptionKeySha256 = default,
 12256                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 12257                string encryptionScope = default,
 12258                string leaseId = default,
 12259                long? maxSize = default,
 12260                long? appendPosition = default,
 12261                System.DateTimeOffset? ifModifiedSince = default,
 12262                System.DateTimeOffset? ifUnmodifiedSince = default,
 12263                Azure.ETag? ifMatch = default,
 12264                Azure.ETag? ifNoneMatch = default,
 12265                string ifTags = default,
 12266                System.DateTimeOffset? sourceIfModifiedSince = default,
 12267                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 12268                Azure.ETag? sourceIfMatch = default,
 12269                Azure.ETag? sourceIfNoneMatch = default,
 12270                string requestId = default)
 12271            {
 12272                // Validation
 12273                if (resourceUri == null)
 12274                {
 12275                    throw new System.ArgumentNullException(nameof(resourceUri));
 12276                }
 12277                if (sourceUri == null)
 12278                {
 12279                    throw new System.ArgumentNullException(nameof(sourceUri));
 12280                }
 12281                if (version == null)
 12282                {
 12283                    throw new System.ArgumentNullException(nameof(version));
 12284                }
 12285
 12286                // Create the request
 12287                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 12288                Azure.Core.Request _request = _message.Request;
 12289
 12290                // Set the endpoint
 12291                _request.Method = Azure.Core.RequestMethod.Put;
 12292                _request.Uri.Reset(resourceUri);
 12293                _request.Uri.AppendQuery("comp", "appendblock", escapeValue: false);
 12294                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 12295
 12296                // Add request headers
 12297                _request.Headers.SetValue("x-ms-copy-source", sourceUri.AbsoluteUri);
 12298                _request.Headers.SetValue("Content-Length", contentLength.ToString(System.Globalization.CultureInfo.Inva
 12299                _request.Headers.SetValue("x-ms-version", version);
 12300                if (sourceRange != null) { _request.Headers.SetValue("x-ms-source-range", sourceRange); }
 12301                if (sourceContentHash != null) { _request.Headers.SetValue("x-ms-source-content-md5", System.Convert.ToB
 12302                if (sourceContentcrc64 != null) { _request.Headers.SetValue("x-ms-source-content-crc64", System.Convert.
 12303                if (transactionalContentHash != null) { _request.Headers.SetValue("Content-MD5", System.Convert.ToBase64
 12304                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 12305                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 12306                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 12307                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 12308                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 12309                if (maxSize != null) { _request.Headers.SetValue("x-ms-blob-condition-maxsize", maxSize.Value.ToString(S
 12310                if (appendPosition != null) { _request.Headers.SetValue("x-ms-blob-condition-appendpos", appendPosition.
 12311                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 12312                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 12313                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 12314                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 12315                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 12316                if (sourceIfModifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-modified-since", sourceIf
 12317                if (sourceIfUnmodifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-unmodified-since", sour
 12318                if (sourceIfMatch != null) { _request.Headers.SetValue("x-ms-source-if-match", sourceIfMatch.Value.ToStr
 12319                if (sourceIfNoneMatch != null) { _request.Headers.SetValue("x-ms-source-if-none-match", sourceIfNoneMatc
 12320                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 12321
 12322                return _message;
 12323            }
 12324
 12325            /// <summary>
 12326            /// Create the AppendBlob.AppendBlockFromUriAsync response or throw a failure exception.
 12327            /// </summary>
 12328            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 12329            /// <param name="response">The raw Response.</param>
 12330            /// <returns>The AppendBlob.AppendBlockFromUriAsync Azure.Response{Azure.Storage.Blobs.Models.BlobAppendInfo
 12331            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobAppendInfo> AppendBlockFromUriAsync_CreateResp
 12332                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 12333                Azure.Response response)
 12334            {
 12335                // Process the response
 12336                switch (response.Status)
 12337                {
 12338                    case 201:
 12339                    {
 12340                        // Create the result
 12341                        Azure.Storage.Blobs.Models.BlobAppendInfo _value = new Azure.Storage.Blobs.Models.BlobAppendInfo
 12342
 12343                        // Get response headers
 12344                        string _header;
 12345                        if (response.Headers.TryGetValue("ETag", out _header))
 12346                        {
 12347                            _value.ETag = new Azure.ETag(_header);
 12348                        }
 12349                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 12350                        {
 12351                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 12352                        }
 12353                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 12354                        {
 12355                            _value.ContentHash = System.Convert.FromBase64String(_header);
 12356                        }
 12357                        if (response.Headers.TryGetValue("x-ms-content-crc64", out _header))
 12358                        {
 12359                            _value.ContentCrc64 = System.Convert.FromBase64String(_header);
 12360                        }
 12361                        if (response.Headers.TryGetValue("x-ms-blob-append-offset", out _header))
 12362                        {
 12363                            _value.BlobAppendOffset = _header;
 12364                        }
 12365                        if (response.Headers.TryGetValue("x-ms-blob-committed-block-count", out _header))
 12366                        {
 12367                            _value.BlobCommittedBlockCount = int.Parse(_header, System.Globalization.CultureInfo.Invaria
 12368                        }
 12369                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 12370                        {
 12371                            _value.EncryptionKeySha256 = _header;
 12372                        }
 12373                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 12374                        {
 12375                            _value.EncryptionScope = _header;
 12376                        }
 12377                        if (response.Headers.TryGetValue("x-ms-request-server-encrypted", out _header))
 12378                        {
 12379                            _value.IsServerEncrypted = bool.Parse(_header);
 12380                        }
 12381
 12382                        // Create the response
 12383                        return Response.FromValue(_value, response);
 12384                    }
 12385                    case 304:
 12386                    {
 12387                        // Create the result
 12388                        Azure.Storage.Blobs.Models.ConditionNotMetError _value = new Azure.Storage.Blobs.Models.Conditio
 12389
 12390                        // Get response headers
 12391                        string _header;
 12392                        if (response.Headers.TryGetValue("x-ms-error-code", out _header))
 12393                        {
 12394                            _value.ErrorCode = _header;
 12395                        }
 12396
 12397                        throw _value.CreateException(clientDiagnostics, response);
 12398                    }
 12399                    default:
 12400                    {
 12401                        // Create the result
 12402                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 12403                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 12404
 12405                        throw _value.CreateException(clientDiagnostics, response);
 12406                    }
 12407                }
 12408            }
 12409            #endregion AppendBlob.AppendBlockFromUriAsync
 12410
 12411            #region AppendBlob.SealAsync
 12412            /// <summary>
 12413            /// The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version 2019-12
 12414            /// </summary>
 12415            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 12416            /// <param name="pipeline">The pipeline used for sending requests.</param>
 12417            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 12418            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 12419            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 12420            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 12421            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 12422            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 12423            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 12424            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 12425            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 12426            /// <param name="appendPosition">Optional conditional header, used only for the Append Block operation. A nu
 12427            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 12428            /// <param name="operationName">Operation name.</param>
 12429            /// <param name="cancellationToken">Cancellation token.</param>
 12430            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.AppendBlobSealInternal}</returns>
 12431            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.AppendBlobSea
 12432                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 12433                Azure.Core.Pipeline.HttpPipeline pipeline,
 12434                System.Uri resourceUri,
 12435                string version,
 12436                int? timeout = default,
 12437                string requestId = default,
 12438                string leaseId = default,
 12439                System.DateTimeOffset? ifModifiedSince = default,
 12440                System.DateTimeOffset? ifUnmodifiedSince = default,
 12441                Azure.ETag? ifMatch = default,
 12442                Azure.ETag? ifNoneMatch = default,
 12443                long? appendPosition = default,
 12444                bool async = true,
 12445                string operationName = "AppendBlobClient.Seal",
 12446                System.Threading.CancellationToken cancellationToken = default)
 12447            {
 12448                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 12449                try
 12450                {
 12451                    _scope.AddAttribute("url", resourceUri);
 12452                    _scope.Start();
 12453                    using (Azure.Core.HttpMessage _message = SealAsync_CreateMessage(
 12454                        pipeline,
 12455                        resourceUri,
 12456                        version,
 12457                        timeout,
 12458                        requestId,
 12459                        leaseId,
 12460                        ifModifiedSince,
 12461                        ifUnmodifiedSince,
 12462                        ifMatch,
 12463                        ifNoneMatch,
 12464                        appendPosition))
 12465                    {
 12466                        if (async)
 12467                        {
 12468                            // Send the request asynchronously if we're being called via an async path
 12469                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 12470                        }
 12471                        else
 12472                        {
 12473                            // Send the request synchronously through the API that blocks if we're being called via a sy
 12474                            // (this is safe because the Task will complete before the user can call Wait)
 12475                            pipeline.Send(_message, cancellationToken);
 12476                        }
 12477                        Azure.Response _response = _message.Response;
 12478                        cancellationToken.ThrowIfCancellationRequested();
 12479                        return SealAsync_CreateResponse(clientDiagnostics, _response);
 12480                    }
 12481                }
 12482                catch (System.Exception ex)
 12483                {
 12484                    _scope.Failed(ex);
 12485                    throw;
 12486                }
 12487                finally
 12488                {
 12489                    _scope.Dispose();
 12490                }
 12491            }
 12492
 12493            /// <summary>
 12494            /// Create the AppendBlob.SealAsync request.
 12495            /// </summary>
 12496            /// <param name="pipeline">The pipeline used for sending requests.</param>
 12497            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 12498            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 12499            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 12500            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 12501            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 12502            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 12503            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 12504            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 12505            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 12506            /// <param name="appendPosition">Optional conditional header, used only for the Append Block operation. A nu
 12507            /// <returns>The AppendBlob.SealAsync Message.</returns>
 12508            internal static Azure.Core.HttpMessage SealAsync_CreateMessage(
 12509                Azure.Core.Pipeline.HttpPipeline pipeline,
 12510                System.Uri resourceUri,
 12511                string version,
 12512                int? timeout = default,
 12513                string requestId = default,
 12514                string leaseId = default,
 12515                System.DateTimeOffset? ifModifiedSince = default,
 12516                System.DateTimeOffset? ifUnmodifiedSince = default,
 12517                Azure.ETag? ifMatch = default,
 12518                Azure.ETag? ifNoneMatch = default,
 12519                long? appendPosition = default)
 12520            {
 12521                // Validation
 12522                if (resourceUri == null)
 12523                {
 12524                    throw new System.ArgumentNullException(nameof(resourceUri));
 12525                }
 12526                if (version == null)
 12527                {
 12528                    throw new System.ArgumentNullException(nameof(version));
 12529                }
 12530
 12531                // Create the request
 12532                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 12533                Azure.Core.Request _request = _message.Request;
 12534
 12535                // Set the endpoint
 12536                _request.Method = Azure.Core.RequestMethod.Put;
 12537                _request.Uri.Reset(resourceUri);
 12538                _request.Uri.AppendQuery("comp", "seal", escapeValue: false);
 12539                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 12540
 12541                // Add request headers
 12542                _request.Headers.SetValue("x-ms-version", version);
 12543                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 12544                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 12545                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 12546                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 12547                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 12548                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 12549                if (appendPosition != null) { _request.Headers.SetValue("x-ms-blob-condition-appendpos", appendPosition.
 12550
 12551                return _message;
 12552            }
 12553
 12554            /// <summary>
 12555            /// Create the AppendBlob.SealAsync response or throw a failure exception.
 12556            /// </summary>
 12557            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 12558            /// <param name="response">The raw Response.</param>
 12559            /// <returns>The AppendBlob.SealAsync Azure.Response{Azure.Storage.Blobs.Models.AppendBlobSealInternal}.</re
 12560            internal static Azure.Response<Azure.Storage.Blobs.Models.AppendBlobSealInternal> SealAsync_CreateResponse(
 12561                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 12562                Azure.Response response)
 12563            {
 12564                // Process the response
 12565                switch (response.Status)
 12566                {
 12567                    case 200:
 12568                    {
 12569                        // Create the result
 12570                        Azure.Storage.Blobs.Models.AppendBlobSealInternal _value = new Azure.Storage.Blobs.Models.Append
 12571
 12572                        // Get response headers
 12573                        string _header;
 12574                        if (response.Headers.TryGetValue("ETag", out _header))
 12575                        {
 12576                            _value.ETag = new Azure.ETag(_header);
 12577                        }
 12578                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 12579                        {
 12580                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 12581                        }
 12582                        if (response.Headers.TryGetValue("x-ms-blob-sealed", out _header))
 12583                        {
 12584                            _value.IsSealed = bool.Parse(_header);
 12585                        }
 12586
 12587                        // Create the response
 12588                        return Response.FromValue(_value, response);
 12589                    }
 12590                    default:
 12591                    {
 12592                        // Create the result
 12593                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 12594                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 12595
 12596                        throw _value.CreateException(clientDiagnostics, response);
 12597                    }
 12598                }
 12599            }
 12600            #endregion AppendBlob.SealAsync
 12601        }
 12602        #endregion AppendBlob operations
 12603
 12604        #region BlockBlob operations
 12605        /// <summary>
 12606        /// BlockBlob operations for Azure Blob Storage
 12607        /// </summary>
 12608        public static partial class BlockBlob
 12609        {
 12610            #region BlockBlob.UploadAsync
 12611            /// <summary>
 12612            /// The Upload Block Blob operation updates the content of an existing block blob. Updating an existing bloc
 12613            /// </summary>
 12614            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 12615            /// <param name="pipeline">The pipeline used for sending requests.</param>
 12616            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 12617            /// <param name="body">Initial data</param>
 12618            /// <param name="contentLength">The length of the request.</param>
 12619            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 12620            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 12621            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 12622            /// <param name="blobContentType">Optional. Sets the blob's content type. If specified, this property is sto
 12623            /// <param name="blobContentEncoding">Optional. Sets the blob's content encoding. If specified, this propert
 12624            /// <param name="blobContentLanguage">Optional. Set the blob's content language. If specified, this property
 12625            /// <param name="blobContentHash">Optional. An MD5 hash of the blob content. Note that this hash is not vali
 12626            /// <param name="blobCacheControl">Optional. Sets the blob's cache control. If specified, this property is s
 12627            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 12628            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 12629            /// <param name="blobContentDisposition">Optional. Sets the blob's Content-Disposition header.</param>
 12630            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 12631            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 12632            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 12633            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 12634            /// <param name="tier">Optional. Indicates the tier to be set on the blob.</param>
 12635            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 12636            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 12637            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 12638            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 12639            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 12640            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 12641            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 12642            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 12643            /// <param name="operationName">Operation name.</param>
 12644            /// <param name="cancellationToken">Cancellation token.</param>
 12645            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobContentInfo}</returns>
 12646            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobContentIn
 12647                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 12648                Azure.Core.Pipeline.HttpPipeline pipeline,
 12649                System.Uri resourceUri,
 12650                System.IO.Stream body,
 12651                long contentLength,
 12652                string version,
 12653                int? timeout = default,
 12654                byte[] transactionalContentHash = default,
 12655                string blobContentType = default,
 12656                string blobContentEncoding = default,
 12657                string blobContentLanguage = default,
 12658                byte[] blobContentHash = default,
 12659                string blobCacheControl = default,
 12660                System.Collections.Generic.IDictionary<string, string> metadata = default,
 12661                string leaseId = default,
 12662                string blobContentDisposition = default,
 12663                string encryptionKey = default,
 12664                string encryptionKeySha256 = default,
 12665                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 12666                string encryptionScope = default,
 12667                Azure.Storage.Blobs.Models.AccessTier? tier = default,
 12668                System.DateTimeOffset? ifModifiedSince = default,
 12669                System.DateTimeOffset? ifUnmodifiedSince = default,
 12670                Azure.ETag? ifMatch = default,
 12671                Azure.ETag? ifNoneMatch = default,
 12672                string ifTags = default,
 12673                string requestId = default,
 12674                string blobTagsString = default,
 12675                bool async = true,
 12676                string operationName = "BlockBlobClient.Upload",
 12677                System.Threading.CancellationToken cancellationToken = default)
 12678            {
 12679                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 12680                try
 12681                {
 12682                    _scope.AddAttribute("url", resourceUri);
 12683                    _scope.Start();
 12684                    using (Azure.Core.HttpMessage _message = UploadAsync_CreateMessage(
 12685                        pipeline,
 12686                        resourceUri,
 12687                        body,
 12688                        contentLength,
 12689                        version,
 12690                        timeout,
 12691                        transactionalContentHash,
 12692                        blobContentType,
 12693                        blobContentEncoding,
 12694                        blobContentLanguage,
 12695                        blobContentHash,
 12696                        blobCacheControl,
 12697                        metadata,
 12698                        leaseId,
 12699                        blobContentDisposition,
 12700                        encryptionKey,
 12701                        encryptionKeySha256,
 12702                        encryptionAlgorithm,
 12703                        encryptionScope,
 12704                        tier,
 12705                        ifModifiedSince,
 12706                        ifUnmodifiedSince,
 12707                        ifMatch,
 12708                        ifNoneMatch,
 12709                        ifTags,
 12710                        requestId,
 12711                        blobTagsString))
 12712                    {
 12713                        if (async)
 12714                        {
 12715                            // Send the request asynchronously if we're being called via an async path
 12716                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 12717                        }
 12718                        else
 12719                        {
 12720                            // Send the request synchronously through the API that blocks if we're being called via a sy
 12721                            // (this is safe because the Task will complete before the user can call Wait)
 12722                            pipeline.Send(_message, cancellationToken);
 12723                        }
 12724                        Azure.Response _response = _message.Response;
 12725                        cancellationToken.ThrowIfCancellationRequested();
 12726                        return UploadAsync_CreateResponse(clientDiagnostics, _response);
 12727                    }
 12728                }
 12729                catch (System.Exception ex)
 12730                {
 12731                    _scope.Failed(ex);
 12732                    throw;
 12733                }
 12734                finally
 12735                {
 12736                    _scope.Dispose();
 12737                }
 12738            }
 12739
 12740            /// <summary>
 12741            /// Create the BlockBlob.UploadAsync request.
 12742            /// </summary>
 12743            /// <param name="pipeline">The pipeline used for sending requests.</param>
 12744            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 12745            /// <param name="body">Initial data</param>
 12746            /// <param name="contentLength">The length of the request.</param>
 12747            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 12748            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 12749            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 12750            /// <param name="blobContentType">Optional. Sets the blob's content type. If specified, this property is sto
 12751            /// <param name="blobContentEncoding">Optional. Sets the blob's content encoding. If specified, this propert
 12752            /// <param name="blobContentLanguage">Optional. Set the blob's content language. If specified, this property
 12753            /// <param name="blobContentHash">Optional. An MD5 hash of the blob content. Note that this hash is not vali
 12754            /// <param name="blobCacheControl">Optional. Sets the blob's cache control. If specified, this property is s
 12755            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 12756            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 12757            /// <param name="blobContentDisposition">Optional. Sets the blob's Content-Disposition header.</param>
 12758            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 12759            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 12760            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 12761            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 12762            /// <param name="tier">Optional. Indicates the tier to be set on the blob.</param>
 12763            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 12764            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 12765            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 12766            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 12767            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 12768            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 12769            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 12770            /// <returns>The BlockBlob.UploadAsync Message.</returns>
 12771            internal static Azure.Core.HttpMessage UploadAsync_CreateMessage(
 12772                Azure.Core.Pipeline.HttpPipeline pipeline,
 12773                System.Uri resourceUri,
 12774                System.IO.Stream body,
 12775                long contentLength,
 12776                string version,
 12777                int? timeout = default,
 12778                byte[] transactionalContentHash = default,
 12779                string blobContentType = default,
 12780                string blobContentEncoding = default,
 12781                string blobContentLanguage = default,
 12782                byte[] blobContentHash = default,
 12783                string blobCacheControl = default,
 12784                System.Collections.Generic.IDictionary<string, string> metadata = default,
 12785                string leaseId = default,
 12786                string blobContentDisposition = default,
 12787                string encryptionKey = default,
 12788                string encryptionKeySha256 = default,
 12789                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 12790                string encryptionScope = default,
 12791                Azure.Storage.Blobs.Models.AccessTier? tier = default,
 12792                System.DateTimeOffset? ifModifiedSince = default,
 12793                System.DateTimeOffset? ifUnmodifiedSince = default,
 12794                Azure.ETag? ifMatch = default,
 12795                Azure.ETag? ifNoneMatch = default,
 12796                string ifTags = default,
 12797                string requestId = default,
 12798                string blobTagsString = default)
 12799            {
 12800                // Validation
 12801                if (resourceUri == null)
 12802                {
 12803                    throw new System.ArgumentNullException(nameof(resourceUri));
 12804                }
 12805                if (body == null)
 12806                {
 12807                    throw new System.ArgumentNullException(nameof(body));
 12808                }
 12809                if (version == null)
 12810                {
 12811                    throw new System.ArgumentNullException(nameof(version));
 12812                }
 12813
 12814                // Create the request
 12815                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 12816                Azure.Core.Request _request = _message.Request;
 12817
 12818                // Set the endpoint
 12819                _request.Method = Azure.Core.RequestMethod.Put;
 12820                _request.Uri.Reset(resourceUri);
 12821                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 12822
 12823                // Add request headers
 12824                _request.Headers.SetValue("x-ms-blob-type", "BlockBlob");
 12825                _request.Headers.SetValue("Content-Length", contentLength.ToString(System.Globalization.CultureInfo.Inva
 12826                _request.Headers.SetValue("x-ms-version", version);
 12827                if (transactionalContentHash != null) { _request.Headers.SetValue("Content-MD5", System.Convert.ToBase64
 12828                if (blobContentType != null) { _request.Headers.SetValue("x-ms-blob-content-type", blobContentType); }
 12829                if (blobContentEncoding != null) { _request.Headers.SetValue("x-ms-blob-content-encoding", blobContentEn
 12830                if (blobContentLanguage != null) { _request.Headers.SetValue("x-ms-blob-content-language", blobContentLa
 12831                if (blobContentHash != null) { _request.Headers.SetValue("x-ms-blob-content-md5", System.Convert.ToBase6
 12832                if (blobCacheControl != null) { _request.Headers.SetValue("x-ms-blob-cache-control", blobCacheControl); 
 12833                if (metadata != null) {
 12834                    foreach (System.Collections.Generic.KeyValuePair<string, string> _pair in metadata)
 12835                    {
 12836                        _request.Headers.SetValue("x-ms-meta-" + _pair.Key, _pair.Value);
 12837                    }
 12838                }
 12839                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 12840                if (blobContentDisposition != null) { _request.Headers.SetValue("x-ms-blob-content-disposition", blobCon
 12841                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 12842                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 12843                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 12844                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 12845                if (tier != null) { _request.Headers.SetValue("x-ms-access-tier", tier.ToString()); }
 12846                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 12847                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 12848                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 12849                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 12850                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 12851                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 12852                if (blobTagsString != null) { _request.Headers.SetValue("x-ms-tags", blobTagsString); }
 12853
 12854                // Create the body
 12855                _request.Content = Azure.Core.RequestContent.Create(body);
 12856
 12857                return _message;
 12858            }
 12859
 12860            /// <summary>
 12861            /// Create the BlockBlob.UploadAsync response or throw a failure exception.
 12862            /// </summary>
 12863            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 12864            /// <param name="response">The raw Response.</param>
 12865            /// <returns>The BlockBlob.UploadAsync Azure.Response{Azure.Storage.Blobs.Models.BlobContentInfo}.</returns>
 12866            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobContentInfo> UploadAsync_CreateResponse(
 12867                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 12868                Azure.Response response)
 12869            {
 12870                // Process the response
 12871                switch (response.Status)
 12872                {
 12873                    case 201:
 12874                    {
 12875                        // Create the result
 12876                        Azure.Storage.Blobs.Models.BlobContentInfo _value = new Azure.Storage.Blobs.Models.BlobContentIn
 12877
 12878                        // Get response headers
 12879                        string _header;
 12880                        if (response.Headers.TryGetValue("ETag", out _header))
 12881                        {
 12882                            _value.ETag = new Azure.ETag(_header);
 12883                        }
 12884                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 12885                        {
 12886                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 12887                        }
 12888                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 12889                        {
 12890                            _value.ContentHash = System.Convert.FromBase64String(_header);
 12891                        }
 12892                        if (response.Headers.TryGetValue("x-ms-version-id", out _header))
 12893                        {
 12894                            _value.VersionId = _header;
 12895                        }
 12896                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 12897                        {
 12898                            _value.EncryptionKeySha256 = _header;
 12899                        }
 12900                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 12901                        {
 12902                            _value.EncryptionScope = _header;
 12903                        }
 12904                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 12905                        {
 12906                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 12907                        }
 12908
 12909                        // Create the response
 12910                        return Response.FromValue(_value, response);
 12911                    }
 12912                    default:
 12913                    {
 12914                        // Create the result
 12915                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 12916                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 12917
 12918                        throw _value.CreateException(clientDiagnostics, response);
 12919                    }
 12920                }
 12921            }
 12922            #endregion BlockBlob.UploadAsync
 12923
 12924            #region BlockBlob.StageBlockAsync
 12925            /// <summary>
 12926            /// The Stage Block operation creates a new block to be committed as part of a blob
 12927            /// </summary>
 12928            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 12929            /// <param name="pipeline">The pipeline used for sending requests.</param>
 12930            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 12931            /// <param name="blockId">A valid Base64 string value that identifies the block. Prior to encoding, the stri
 12932            /// <param name="contentLength">The length of the request.</param>
 12933            /// <param name="body">Initial data</param>
 12934            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 12935            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 12936            /// <param name="transactionalContentCrc64">Specify the transactional crc64 for the body, to be validated by
 12937            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 12938            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 12939            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 12940            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 12941            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 12942            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 12943            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 12944            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 12945            /// <param name="operationName">Operation name.</param>
 12946            /// <param name="cancellationToken">Cancellation token.</param>
 12947            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlockInfo}</returns>
 12948            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlockInfo>> S
 12949                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 12950                Azure.Core.Pipeline.HttpPipeline pipeline,
 12951                System.Uri resourceUri,
 12952                string blockId,
 12953                long contentLength,
 12954                System.IO.Stream body,
 12955                string version,
 12956                byte[] transactionalContentHash = default,
 12957                byte[] transactionalContentCrc64 = default,
 12958                int? timeout = default,
 12959                string leaseId = default,
 12960                string encryptionKey = default,
 12961                string encryptionKeySha256 = default,
 12962                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 12963                string encryptionScope = default,
 12964                string requestId = default,
 12965                bool async = true,
 12966                string operationName = "BlockBlobClient.StageBlock",
 12967                System.Threading.CancellationToken cancellationToken = default)
 12968            {
 12969                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 12970                try
 12971                {
 12972                    _scope.AddAttribute("url", resourceUri);
 12973                    _scope.Start();
 12974                    using (Azure.Core.HttpMessage _message = StageBlockAsync_CreateMessage(
 12975                        pipeline,
 12976                        resourceUri,
 12977                        blockId,
 12978                        contentLength,
 12979                        body,
 12980                        version,
 12981                        transactionalContentHash,
 12982                        transactionalContentCrc64,
 12983                        timeout,
 12984                        leaseId,
 12985                        encryptionKey,
 12986                        encryptionKeySha256,
 12987                        encryptionAlgorithm,
 12988                        encryptionScope,
 12989                        requestId))
 12990                    {
 12991                        if (async)
 12992                        {
 12993                            // Send the request asynchronously if we're being called via an async path
 12994                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 12995                        }
 12996                        else
 12997                        {
 12998                            // Send the request synchronously through the API that blocks if we're being called via a sy
 12999                            // (this is safe because the Task will complete before the user can call Wait)
 13000                            pipeline.Send(_message, cancellationToken);
 13001                        }
 13002                        Azure.Response _response = _message.Response;
 13003                        cancellationToken.ThrowIfCancellationRequested();
 13004                        return StageBlockAsync_CreateResponse(clientDiagnostics, _response);
 13005                    }
 13006                }
 13007                catch (System.Exception ex)
 13008                {
 13009                    _scope.Failed(ex);
 13010                    throw;
 13011                }
 13012                finally
 13013                {
 13014                    _scope.Dispose();
 13015                }
 13016            }
 13017
 13018            /// <summary>
 13019            /// Create the BlockBlob.StageBlockAsync request.
 13020            /// </summary>
 13021            /// <param name="pipeline">The pipeline used for sending requests.</param>
 13022            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 13023            /// <param name="blockId">A valid Base64 string value that identifies the block. Prior to encoding, the stri
 13024            /// <param name="contentLength">The length of the request.</param>
 13025            /// <param name="body">Initial data</param>
 13026            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 13027            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 13028            /// <param name="transactionalContentCrc64">Specify the transactional crc64 for the body, to be validated by
 13029            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 13030            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 13031            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 13032            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 13033            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 13034            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 13035            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 13036            /// <returns>The BlockBlob.StageBlockAsync Message.</returns>
 13037            internal static Azure.Core.HttpMessage StageBlockAsync_CreateMessage(
 13038                Azure.Core.Pipeline.HttpPipeline pipeline,
 13039                System.Uri resourceUri,
 13040                string blockId,
 13041                long contentLength,
 13042                System.IO.Stream body,
 13043                string version,
 13044                byte[] transactionalContentHash = default,
 13045                byte[] transactionalContentCrc64 = default,
 13046                int? timeout = default,
 13047                string leaseId = default,
 13048                string encryptionKey = default,
 13049                string encryptionKeySha256 = default,
 13050                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 13051                string encryptionScope = default,
 13052                string requestId = default)
 13053            {
 13054                // Validation
 13055                if (resourceUri == null)
 13056                {
 13057                    throw new System.ArgumentNullException(nameof(resourceUri));
 13058                }
 13059                if (blockId == null)
 13060                {
 13061                    throw new System.ArgumentNullException(nameof(blockId));
 13062                }
 13063                if (body == null)
 13064                {
 13065                    throw new System.ArgumentNullException(nameof(body));
 13066                }
 13067                if (version == null)
 13068                {
 13069                    throw new System.ArgumentNullException(nameof(version));
 13070                }
 13071
 13072                // Create the request
 13073                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 13074                Azure.Core.Request _request = _message.Request;
 13075
 13076                // Set the endpoint
 13077                _request.Method = Azure.Core.RequestMethod.Put;
 13078                _request.Uri.Reset(resourceUri);
 13079                _request.Uri.AppendQuery("comp", "block", escapeValue: false);
 13080                _request.Uri.AppendQuery("blockid", blockId);
 13081                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 13082
 13083                // Add request headers
 13084                _request.Headers.SetValue("Content-Length", contentLength.ToString(System.Globalization.CultureInfo.Inva
 13085                _request.Headers.SetValue("x-ms-version", version);
 13086                if (transactionalContentHash != null) { _request.Headers.SetValue("Content-MD5", System.Convert.ToBase64
 13087                if (transactionalContentCrc64 != null) { _request.Headers.SetValue("x-ms-content-crc64", System.Convert.
 13088                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 13089                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 13090                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 13091                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 13092                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 13093                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 13094
 13095                // Create the body
 13096                _request.Content = Azure.Core.RequestContent.Create(body);
 13097
 13098                return _message;
 13099            }
 13100
 13101            /// <summary>
 13102            /// Create the BlockBlob.StageBlockAsync response or throw a failure exception.
 13103            /// </summary>
 13104            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 13105            /// <param name="response">The raw Response.</param>
 13106            /// <returns>The BlockBlob.StageBlockAsync Azure.Response{Azure.Storage.Blobs.Models.BlockInfo}.</returns>
 13107            internal static Azure.Response<Azure.Storage.Blobs.Models.BlockInfo> StageBlockAsync_CreateResponse(
 13108                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 13109                Azure.Response response)
 13110            {
 13111                // Process the response
 13112                switch (response.Status)
 13113                {
 13114                    case 201:
 13115                    {
 13116                        // Create the result
 13117                        Azure.Storage.Blobs.Models.BlockInfo _value = new Azure.Storage.Blobs.Models.BlockInfo();
 13118
 13119                        // Get response headers
 13120                        string _header;
 13121                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 13122                        {
 13123                            _value.ContentHash = System.Convert.FromBase64String(_header);
 13124                        }
 13125                        if (response.Headers.TryGetValue("x-ms-content-crc64", out _header))
 13126                        {
 13127                            _value.ContentCrc64 = System.Convert.FromBase64String(_header);
 13128                        }
 13129                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 13130                        {
 13131                            _value.EncryptionKeySha256 = _header;
 13132                        }
 13133                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 13134                        {
 13135                            _value.EncryptionScope = _header;
 13136                        }
 13137
 13138                        // Create the response
 13139                        return Response.FromValue(_value, response);
 13140                    }
 13141                    default:
 13142                    {
 13143                        // Create the result
 13144                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 13145                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 13146
 13147                        throw _value.CreateException(clientDiagnostics, response);
 13148                    }
 13149                }
 13150            }
 13151            #endregion BlockBlob.StageBlockAsync
 13152
 13153            #region BlockBlob.StageBlockFromUriAsync
 13154            /// <summary>
 13155            /// The Stage Block operation creates a new block to be committed as part of a blob where the contents are r
 13156            /// </summary>
 13157            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 13158            /// <param name="pipeline">The pipeline used for sending requests.</param>
 13159            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 13160            /// <param name="blockId">A valid Base64 string value that identifies the block. Prior to encoding, the stri
 13161            /// <param name="contentLength">The length of the request.</param>
 13162            /// <param name="sourceUri">Specify a URL to the copy source.</param>
 13163            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 13164            /// <param name="sourceRange">Bytes of source data in the specified range.</param>
 13165            /// <param name="sourceContentHash">Specify the md5 calculated for the range of bytes that must be read from
 13166            /// <param name="sourceContentcrc64">Specify the crc64 calculated for the range of bytes that must be read f
 13167            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 13168            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 13169            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 13170            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 13171            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 13172            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 13173            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 13174            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 13175            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 13176            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 13177            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 13178            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 13179            /// <param name="operationName">Operation name.</param>
 13180            /// <param name="cancellationToken">Cancellation token.</param>
 13181            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlockInfo}</returns>
 13182            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlockInfo>> S
 13183                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 13184                Azure.Core.Pipeline.HttpPipeline pipeline,
 13185                System.Uri resourceUri,
 13186                string blockId,
 13187                long contentLength,
 13188                System.Uri sourceUri,
 13189                string version,
 13190                string sourceRange = default,
 13191                byte[] sourceContentHash = default,
 13192                byte[] sourceContentcrc64 = default,
 13193                int? timeout = default,
 13194                string encryptionKey = default,
 13195                string encryptionKeySha256 = default,
 13196                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 13197                string encryptionScope = default,
 13198                string leaseId = default,
 13199                System.DateTimeOffset? sourceIfModifiedSince = default,
 13200                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 13201                Azure.ETag? sourceIfMatch = default,
 13202                Azure.ETag? sourceIfNoneMatch = default,
 13203                string requestId = default,
 13204                bool async = true,
 13205                string operationName = "BlockBlobClient.StageBlockFromUri",
 13206                System.Threading.CancellationToken cancellationToken = default)
 13207            {
 13208                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 13209                try
 13210                {
 13211                    _scope.AddAttribute("url", resourceUri);
 13212                    _scope.Start();
 13213                    using (Azure.Core.HttpMessage _message = StageBlockFromUriAsync_CreateMessage(
 13214                        pipeline,
 13215                        resourceUri,
 13216                        blockId,
 13217                        contentLength,
 13218                        sourceUri,
 13219                        version,
 13220                        sourceRange,
 13221                        sourceContentHash,
 13222                        sourceContentcrc64,
 13223                        timeout,
 13224                        encryptionKey,
 13225                        encryptionKeySha256,
 13226                        encryptionAlgorithm,
 13227                        encryptionScope,
 13228                        leaseId,
 13229                        sourceIfModifiedSince,
 13230                        sourceIfUnmodifiedSince,
 13231                        sourceIfMatch,
 13232                        sourceIfNoneMatch,
 13233                        requestId))
 13234                    {
 13235                        if (async)
 13236                        {
 13237                            // Send the request asynchronously if we're being called via an async path
 13238                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 13239                        }
 13240                        else
 13241                        {
 13242                            // Send the request synchronously through the API that blocks if we're being called via a sy
 13243                            // (this is safe because the Task will complete before the user can call Wait)
 13244                            pipeline.Send(_message, cancellationToken);
 13245                        }
 13246                        Azure.Response _response = _message.Response;
 13247                        cancellationToken.ThrowIfCancellationRequested();
 13248                        return StageBlockFromUriAsync_CreateResponse(clientDiagnostics, _response);
 13249                    }
 13250                }
 13251                catch (System.Exception ex)
 13252                {
 13253                    _scope.Failed(ex);
 13254                    throw;
 13255                }
 13256                finally
 13257                {
 13258                    _scope.Dispose();
 13259                }
 13260            }
 13261
 13262            /// <summary>
 13263            /// Create the BlockBlob.StageBlockFromUriAsync request.
 13264            /// </summary>
 13265            /// <param name="pipeline">The pipeline used for sending requests.</param>
 13266            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 13267            /// <param name="blockId">A valid Base64 string value that identifies the block. Prior to encoding, the stri
 13268            /// <param name="contentLength">The length of the request.</param>
 13269            /// <param name="sourceUri">Specify a URL to the copy source.</param>
 13270            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 13271            /// <param name="sourceRange">Bytes of source data in the specified range.</param>
 13272            /// <param name="sourceContentHash">Specify the md5 calculated for the range of bytes that must be read from
 13273            /// <param name="sourceContentcrc64">Specify the crc64 calculated for the range of bytes that must be read f
 13274            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 13275            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 13276            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 13277            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 13278            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 13279            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 13280            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 13281            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 13282            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 13283            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 13284            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 13285            /// <returns>The BlockBlob.StageBlockFromUriAsync Message.</returns>
 13286            internal static Azure.Core.HttpMessage StageBlockFromUriAsync_CreateMessage(
 13287                Azure.Core.Pipeline.HttpPipeline pipeline,
 13288                System.Uri resourceUri,
 13289                string blockId,
 13290                long contentLength,
 13291                System.Uri sourceUri,
 13292                string version,
 13293                string sourceRange = default,
 13294                byte[] sourceContentHash = default,
 13295                byte[] sourceContentcrc64 = default,
 13296                int? timeout = default,
 13297                string encryptionKey = default,
 13298                string encryptionKeySha256 = default,
 13299                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 13300                string encryptionScope = default,
 13301                string leaseId = default,
 13302                System.DateTimeOffset? sourceIfModifiedSince = default,
 13303                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 13304                Azure.ETag? sourceIfMatch = default,
 13305                Azure.ETag? sourceIfNoneMatch = default,
 13306                string requestId = default)
 13307            {
 13308                // Validation
 13309                if (resourceUri == null)
 13310                {
 13311                    throw new System.ArgumentNullException(nameof(resourceUri));
 13312                }
 13313                if (blockId == null)
 13314                {
 13315                    throw new System.ArgumentNullException(nameof(blockId));
 13316                }
 13317                if (sourceUri == null)
 13318                {
 13319                    throw new System.ArgumentNullException(nameof(sourceUri));
 13320                }
 13321                if (version == null)
 13322                {
 13323                    throw new System.ArgumentNullException(nameof(version));
 13324                }
 13325
 13326                // Create the request
 13327                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 13328                Azure.Core.Request _request = _message.Request;
 13329
 13330                // Set the endpoint
 13331                _request.Method = Azure.Core.RequestMethod.Put;
 13332                _request.Uri.Reset(resourceUri);
 13333                _request.Uri.AppendQuery("comp", "block", escapeValue: false);
 13334                _request.Uri.AppendQuery("blockid", blockId);
 13335                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 13336
 13337                // Add request headers
 13338                _request.Headers.SetValue("Content-Length", contentLength.ToString(System.Globalization.CultureInfo.Inva
 13339                _request.Headers.SetValue("x-ms-copy-source", sourceUri.AbsoluteUri);
 13340                _request.Headers.SetValue("x-ms-version", version);
 13341                if (sourceRange != null) { _request.Headers.SetValue("x-ms-source-range", sourceRange); }
 13342                if (sourceContentHash != null) { _request.Headers.SetValue("x-ms-source-content-md5", System.Convert.ToB
 13343                if (sourceContentcrc64 != null) { _request.Headers.SetValue("x-ms-source-content-crc64", System.Convert.
 13344                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 13345                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 13346                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 13347                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 13348                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 13349                if (sourceIfModifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-modified-since", sourceIf
 13350                if (sourceIfUnmodifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-unmodified-since", sour
 13351                if (sourceIfMatch != null) { _request.Headers.SetValue("x-ms-source-if-match", sourceIfMatch.Value.ToStr
 13352                if (sourceIfNoneMatch != null) { _request.Headers.SetValue("x-ms-source-if-none-match", sourceIfNoneMatc
 13353                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 13354
 13355                return _message;
 13356            }
 13357
 13358            /// <summary>
 13359            /// Create the BlockBlob.StageBlockFromUriAsync response or throw a failure exception.
 13360            /// </summary>
 13361            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 13362            /// <param name="response">The raw Response.</param>
 13363            /// <returns>The BlockBlob.StageBlockFromUriAsync Azure.Response{Azure.Storage.Blobs.Models.BlockInfo}.</ret
 13364            internal static Azure.Response<Azure.Storage.Blobs.Models.BlockInfo> StageBlockFromUriAsync_CreateResponse(
 13365                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 13366                Azure.Response response)
 13367            {
 13368                // Process the response
 13369                switch (response.Status)
 13370                {
 13371                    case 201:
 13372                    {
 13373                        // Create the result
 13374                        Azure.Storage.Blobs.Models.BlockInfo _value = new Azure.Storage.Blobs.Models.BlockInfo();
 13375
 13376                        // Get response headers
 13377                        string _header;
 13378                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 13379                        {
 13380                            _value.ContentHash = System.Convert.FromBase64String(_header);
 13381                        }
 13382                        if (response.Headers.TryGetValue("x-ms-content-crc64", out _header))
 13383                        {
 13384                            _value.ContentCrc64 = System.Convert.FromBase64String(_header);
 13385                        }
 13386                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 13387                        {
 13388                            _value.EncryptionKeySha256 = _header;
 13389                        }
 13390                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 13391                        {
 13392                            _value.EncryptionScope = _header;
 13393                        }
 13394
 13395                        // Create the response
 13396                        return Response.FromValue(_value, response);
 13397                    }
 13398                    case 304:
 13399                    {
 13400                        // Create the result
 13401                        Azure.Storage.Blobs.Models.ConditionNotMetError _value = new Azure.Storage.Blobs.Models.Conditio
 13402
 13403                        // Get response headers
 13404                        string _header;
 13405                        if (response.Headers.TryGetValue("x-ms-error-code", out _header))
 13406                        {
 13407                            _value.ErrorCode = _header;
 13408                        }
 13409
 13410                        throw _value.CreateException(clientDiagnostics, response);
 13411                    }
 13412                    default:
 13413                    {
 13414                        // Create the result
 13415                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 13416                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 13417
 13418                        throw _value.CreateException(clientDiagnostics, response);
 13419                    }
 13420                }
 13421            }
 13422            #endregion BlockBlob.StageBlockFromUriAsync
 13423
 13424            #region BlockBlob.CommitBlockListAsync
 13425            /// <summary>
 13426            /// The Commit Block List operation writes a blob by specifying the list of block IDs that make up the blob.
 13427            /// </summary>
 13428            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 13429            /// <param name="pipeline">The pipeline used for sending requests.</param>
 13430            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 13431            /// <param name="blocks">A list of block IDs split between the committed block list, in the uncommitted bloc
 13432            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 13433            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 13434            /// <param name="blobCacheControl">Optional. Sets the blob's cache control. If specified, this property is s
 13435            /// <param name="blobContentType">Optional. Sets the blob's content type. If specified, this property is sto
 13436            /// <param name="blobContentEncoding">Optional. Sets the blob's content encoding. If specified, this propert
 13437            /// <param name="blobContentLanguage">Optional. Set the blob's content language. If specified, this property
 13438            /// <param name="blobContentHash">Optional. An MD5 hash of the blob content. Note that this hash is not vali
 13439            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 13440            /// <param name="transactionalContentCrc64">Specify the transactional crc64 for the body, to be validated by
 13441            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 13442            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 13443            /// <param name="blobContentDisposition">Optional. Sets the blob's Content-Disposition header.</param>
 13444            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 13445            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 13446            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 13447            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 13448            /// <param name="tier">Optional. Indicates the tier to be set on the blob.</param>
 13449            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 13450            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 13451            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 13452            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 13453            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 13454            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 13455            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 13456            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 13457            /// <param name="operationName">Operation name.</param>
 13458            /// <param name="cancellationToken">Cancellation token.</param>
 13459            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.BlobContentInfo}</returns>
 13460            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.BlobContentIn
 13461                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 13462                Azure.Core.Pipeline.HttpPipeline pipeline,
 13463                System.Uri resourceUri,
 13464                Azure.Storage.Blobs.Models.BlockLookupList blocks,
 13465                string version,
 13466                int? timeout = default,
 13467                string blobCacheControl = default,
 13468                string blobContentType = default,
 13469                string blobContentEncoding = default,
 13470                string blobContentLanguage = default,
 13471                byte[] blobContentHash = default,
 13472                byte[] transactionalContentHash = default,
 13473                byte[] transactionalContentCrc64 = default,
 13474                System.Collections.Generic.IDictionary<string, string> metadata = default,
 13475                string leaseId = default,
 13476                string blobContentDisposition = default,
 13477                string encryptionKey = default,
 13478                string encryptionKeySha256 = default,
 13479                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 13480                string encryptionScope = default,
 13481                Azure.Storage.Blobs.Models.AccessTier? tier = default,
 13482                System.DateTimeOffset? ifModifiedSince = default,
 13483                System.DateTimeOffset? ifUnmodifiedSince = default,
 13484                Azure.ETag? ifMatch = default,
 13485                Azure.ETag? ifNoneMatch = default,
 13486                string ifTags = default,
 13487                string requestId = default,
 13488                string blobTagsString = default,
 13489                bool async = true,
 13490                string operationName = "BlockBlobClient.CommitBlockList",
 13491                System.Threading.CancellationToken cancellationToken = default)
 13492            {
 13493                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 13494                try
 13495                {
 13496                    _scope.AddAttribute("url", resourceUri);
 13497                    _scope.Start();
 13498                    using (Azure.Core.HttpMessage _message = CommitBlockListAsync_CreateMessage(
 13499                        pipeline,
 13500                        resourceUri,
 13501                        blocks,
 13502                        version,
 13503                        timeout,
 13504                        blobCacheControl,
 13505                        blobContentType,
 13506                        blobContentEncoding,
 13507                        blobContentLanguage,
 13508                        blobContentHash,
 13509                        transactionalContentHash,
 13510                        transactionalContentCrc64,
 13511                        metadata,
 13512                        leaseId,
 13513                        blobContentDisposition,
 13514                        encryptionKey,
 13515                        encryptionKeySha256,
 13516                        encryptionAlgorithm,
 13517                        encryptionScope,
 13518                        tier,
 13519                        ifModifiedSince,
 13520                        ifUnmodifiedSince,
 13521                        ifMatch,
 13522                        ifNoneMatch,
 13523                        ifTags,
 13524                        requestId,
 13525                        blobTagsString))
 13526                    {
 13527                        if (async)
 13528                        {
 13529                            // Send the request asynchronously if we're being called via an async path
 13530                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 13531                        }
 13532                        else
 13533                        {
 13534                            // Send the request synchronously through the API that blocks if we're being called via a sy
 13535                            // (this is safe because the Task will complete before the user can call Wait)
 13536                            pipeline.Send(_message, cancellationToken);
 13537                        }
 13538                        Azure.Response _response = _message.Response;
 13539                        cancellationToken.ThrowIfCancellationRequested();
 13540                        return CommitBlockListAsync_CreateResponse(clientDiagnostics, _response);
 13541                    }
 13542                }
 13543                catch (System.Exception ex)
 13544                {
 13545                    _scope.Failed(ex);
 13546                    throw;
 13547                }
 13548                finally
 13549                {
 13550                    _scope.Dispose();
 13551                }
 13552            }
 13553
 13554            /// <summary>
 13555            /// Create the BlockBlob.CommitBlockListAsync request.
 13556            /// </summary>
 13557            /// <param name="pipeline">The pipeline used for sending requests.</param>
 13558            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 13559            /// <param name="blocks">A list of block IDs split between the committed block list, in the uncommitted bloc
 13560            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 13561            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 13562            /// <param name="blobCacheControl">Optional. Sets the blob's cache control. If specified, this property is s
 13563            /// <param name="blobContentType">Optional. Sets the blob's content type. If specified, this property is sto
 13564            /// <param name="blobContentEncoding">Optional. Sets the blob's content encoding. If specified, this propert
 13565            /// <param name="blobContentLanguage">Optional. Set the blob's content language. If specified, this property
 13566            /// <param name="blobContentHash">Optional. An MD5 hash of the blob content. Note that this hash is not vali
 13567            /// <param name="transactionalContentHash">Specify the transactional md5 for the body, to be validated by th
 13568            /// <param name="transactionalContentCrc64">Specify the transactional crc64 for the body, to be validated by
 13569            /// <param name="metadata">Optional. Specifies a user-defined name-value pair associated with the blob. If n
 13570            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 13571            /// <param name="blobContentDisposition">Optional. Sets the blob's Content-Disposition header.</param>
 13572            /// <param name="encryptionKey">Optional. Specifies the encryption key to use to encrypt the data provided i
 13573            /// <param name="encryptionKeySha256">The SHA-256 hash of the provided encryption key. Must be provided if t
 13574            /// <param name="encryptionAlgorithm">The algorithm used to produce the encryption key hash. Currently, the 
 13575            /// <param name="encryptionScope">Optional. Version 2019-07-07 and later.  Specifies the name of the encrypt
 13576            /// <param name="tier">Optional. Indicates the tier to be set on the blob.</param>
 13577            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 13578            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 13579            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 13580            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 13581            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 13582            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 13583            /// <param name="blobTagsString">Optional. A URL encoded query param string which specifies the tags to be c
 13584            /// <returns>The BlockBlob.CommitBlockListAsync Message.</returns>
 13585            internal static Azure.Core.HttpMessage CommitBlockListAsync_CreateMessage(
 13586                Azure.Core.Pipeline.HttpPipeline pipeline,
 13587                System.Uri resourceUri,
 13588                Azure.Storage.Blobs.Models.BlockLookupList blocks,
 13589                string version,
 13590                int? timeout = default,
 13591                string blobCacheControl = default,
 13592                string blobContentType = default,
 13593                string blobContentEncoding = default,
 13594                string blobContentLanguage = default,
 13595                byte[] blobContentHash = default,
 13596                byte[] transactionalContentHash = default,
 13597                byte[] transactionalContentCrc64 = default,
 13598                System.Collections.Generic.IDictionary<string, string> metadata = default,
 13599                string leaseId = default,
 13600                string blobContentDisposition = default,
 13601                string encryptionKey = default,
 13602                string encryptionKeySha256 = default,
 13603                Azure.Storage.Blobs.Models.EncryptionAlgorithmType? encryptionAlgorithm = default,
 13604                string encryptionScope = default,
 13605                Azure.Storage.Blobs.Models.AccessTier? tier = default,
 13606                System.DateTimeOffset? ifModifiedSince = default,
 13607                System.DateTimeOffset? ifUnmodifiedSince = default,
 13608                Azure.ETag? ifMatch = default,
 13609                Azure.ETag? ifNoneMatch = default,
 13610                string ifTags = default,
 13611                string requestId = default,
 13612                string blobTagsString = default)
 13613            {
 13614                // Validation
 13615                if (resourceUri == null)
 13616                {
 13617                    throw new System.ArgumentNullException(nameof(resourceUri));
 13618                }
 13619                if (blocks == null)
 13620                {
 13621                    throw new System.ArgumentNullException(nameof(blocks));
 13622                }
 13623                if (version == null)
 13624                {
 13625                    throw new System.ArgumentNullException(nameof(version));
 13626                }
 13627
 13628                // Create the request
 13629                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 13630                Azure.Core.Request _request = _message.Request;
 13631
 13632                // Set the endpoint
 13633                _request.Method = Azure.Core.RequestMethod.Put;
 13634                _request.Uri.Reset(resourceUri);
 13635                _request.Uri.AppendQuery("comp", "blocklist", escapeValue: false);
 13636                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 13637
 13638                // Add request headers
 13639                _request.Headers.SetValue("x-ms-version", version);
 13640                if (blobCacheControl != null) { _request.Headers.SetValue("x-ms-blob-cache-control", blobCacheControl); 
 13641                if (blobContentType != null) { _request.Headers.SetValue("x-ms-blob-content-type", blobContentType); }
 13642                if (blobContentEncoding != null) { _request.Headers.SetValue("x-ms-blob-content-encoding", blobContentEn
 13643                if (blobContentLanguage != null) { _request.Headers.SetValue("x-ms-blob-content-language", blobContentLa
 13644                if (blobContentHash != null) { _request.Headers.SetValue("x-ms-blob-content-md5", System.Convert.ToBase6
 13645                if (transactionalContentHash != null) { _request.Headers.SetValue("Content-MD5", System.Convert.ToBase64
 13646                if (transactionalContentCrc64 != null) { _request.Headers.SetValue("x-ms-content-crc64", System.Convert.
 13647                if (metadata != null) {
 13648                    foreach (System.Collections.Generic.KeyValuePair<string, string> _pair in metadata)
 13649                    {
 13650                        _request.Headers.SetValue("x-ms-meta-" + _pair.Key, _pair.Value);
 13651                    }
 13652                }
 13653                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 13654                if (blobContentDisposition != null) { _request.Headers.SetValue("x-ms-blob-content-disposition", blobCon
 13655                if (encryptionKey != null) { _request.Headers.SetValue("x-ms-encryption-key", encryptionKey); }
 13656                if (encryptionKeySha256 != null) { _request.Headers.SetValue("x-ms-encryption-key-sha256", encryptionKey
 13657                if (encryptionAlgorithm != null) { _request.Headers.SetValue("x-ms-encryption-algorithm", Azure.Storage.
 13658                if (encryptionScope != null) { _request.Headers.SetValue("x-ms-encryption-scope", encryptionScope); }
 13659                if (tier != null) { _request.Headers.SetValue("x-ms-access-tier", tier.ToString()); }
 13660                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 13661                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 13662                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 13663                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 13664                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 13665                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 13666                if (blobTagsString != null) { _request.Headers.SetValue("x-ms-tags", blobTagsString); }
 13667
 13668                // Create the body
 13669                System.Xml.Linq.XElement _body = Azure.Storage.Blobs.Models.BlockLookupList.ToXml(blocks, "BlockList", "
 13670                string _text = _body.ToString(System.Xml.Linq.SaveOptions.DisableFormatting);
 13671                _request.Headers.SetValue("Content-Type", "application/xml");
 13672                _request.Headers.SetValue("Content-Length", _text.Length.ToString(System.Globalization.CultureInfo.Invar
 13673                _request.Content = Azure.Core.RequestContent.Create(System.Text.Encoding.UTF8.GetBytes(_text));
 13674
 13675                return _message;
 13676            }
 13677
 13678            /// <summary>
 13679            /// Create the BlockBlob.CommitBlockListAsync response or throw a failure exception.
 13680            /// </summary>
 13681            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 13682            /// <param name="response">The raw Response.</param>
 13683            /// <returns>The BlockBlob.CommitBlockListAsync Azure.Response{Azure.Storage.Blobs.Models.BlobContentInfo}.<
 13684            internal static Azure.Response<Azure.Storage.Blobs.Models.BlobContentInfo> CommitBlockListAsync_CreateRespon
 13685                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 13686                Azure.Response response)
 13687            {
 13688                // Process the response
 13689                switch (response.Status)
 13690                {
 13691                    case 201:
 13692                    {
 13693                        // Create the result
 13694                        Azure.Storage.Blobs.Models.BlobContentInfo _value = new Azure.Storage.Blobs.Models.BlobContentIn
 13695
 13696                        // Get response headers
 13697                        string _header;
 13698                        if (response.Headers.TryGetValue("ETag", out _header))
 13699                        {
 13700                            _value.ETag = new Azure.ETag(_header);
 13701                        }
 13702                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 13703                        {
 13704                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 13705                        }
 13706                        if (response.Headers.TryGetValue("Content-MD5", out _header))
 13707                        {
 13708                            _value.ContentHash = System.Convert.FromBase64String(_header);
 13709                        }
 13710                        if (response.Headers.TryGetValue("x-ms-version-id", out _header))
 13711                        {
 13712                            _value.VersionId = _header;
 13713                        }
 13714                        if (response.Headers.TryGetValue("x-ms-encryption-key-sha256", out _header))
 13715                        {
 13716                            _value.EncryptionKeySha256 = _header;
 13717                        }
 13718                        if (response.Headers.TryGetValue("x-ms-encryption-scope", out _header))
 13719                        {
 13720                            _value.EncryptionScope = _header;
 13721                        }
 13722                        if (response.Headers.TryGetValue("x-ms-blob-sequence-number", out _header))
 13723                        {
 13724                            _value.BlobSequenceNumber = long.Parse(_header, System.Globalization.CultureInfo.InvariantCu
 13725                        }
 13726
 13727                        // Create the response
 13728                        return Response.FromValue(_value, response);
 13729                    }
 13730                    default:
 13731                    {
 13732                        // Create the result
 13733                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 13734                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 13735
 13736                        throw _value.CreateException(clientDiagnostics, response);
 13737                    }
 13738                }
 13739            }
 13740            #endregion BlockBlob.CommitBlockListAsync
 13741
 13742            #region BlockBlob.GetBlockListAsync
 13743            /// <summary>
 13744            /// The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blo
 13745            /// </summary>
 13746            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 13747            /// <param name="pipeline">The pipeline used for sending requests.</param>
 13748            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 13749            /// <param name="listType">Specifies whether to return the list of committed blocks, the list of uncommitted
 13750            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 13751            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 13752            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 13753            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 13754            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 13755            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 13756            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 13757            /// <param name="operationName">Operation name.</param>
 13758            /// <param name="cancellationToken">Cancellation token.</param>
 13759            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.GetBlockListOperation}</returns>
 13760            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.GetBlockListO
 13761                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 13762                Azure.Core.Pipeline.HttpPipeline pipeline,
 13763                System.Uri resourceUri,
 13764                Azure.Storage.Blobs.Models.BlockListType listType,
 13765                string version,
 13766                string snapshot = default,
 13767                int? timeout = default,
 13768                string leaseId = default,
 13769                string ifTags = default,
 13770                string requestId = default,
 13771                bool async = true,
 13772                string operationName = "BlockBlobClient.GetBlockList",
 13773                System.Threading.CancellationToken cancellationToken = default)
 13774            {
 13775                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 13776                try
 13777                {
 13778                    _scope.AddAttribute("url", resourceUri);
 13779                    _scope.Start();
 13780                    using (Azure.Core.HttpMessage _message = GetBlockListAsync_CreateMessage(
 13781                        pipeline,
 13782                        resourceUri,
 13783                        listType,
 13784                        version,
 13785                        snapshot,
 13786                        timeout,
 13787                        leaseId,
 13788                        ifTags,
 13789                        requestId))
 13790                    {
 13791                        if (async)
 13792                        {
 13793                            // Send the request asynchronously if we're being called via an async path
 13794                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 13795                        }
 13796                        else
 13797                        {
 13798                            // Send the request synchronously through the API that blocks if we're being called via a sy
 13799                            // (this is safe because the Task will complete before the user can call Wait)
 13800                            pipeline.Send(_message, cancellationToken);
 13801                        }
 13802                        Azure.Response _response = _message.Response;
 13803                        cancellationToken.ThrowIfCancellationRequested();
 13804                        return GetBlockListAsync_CreateResponse(clientDiagnostics, _response);
 13805                    }
 13806                }
 13807                catch (System.Exception ex)
 13808                {
 13809                    _scope.Failed(ex);
 13810                    throw;
 13811                }
 13812                finally
 13813                {
 13814                    _scope.Dispose();
 13815                }
 13816            }
 13817
 13818            /// <summary>
 13819            /// Create the BlockBlob.GetBlockListAsync request.
 13820            /// </summary>
 13821            /// <param name="pipeline">The pipeline used for sending requests.</param>
 13822            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 13823            /// <param name="listType">Specifies whether to return the list of committed blocks, the list of uncommitted
 13824            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 13825            /// <param name="snapshot">The snapshot parameter is an opaque DateTime value that, when present, specifies 
 13826            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 13827            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 13828            /// <param name="ifTags">Specify a SQL where clause on blob tags to operate only on blobs with a matching va
 13829            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 13830            /// <returns>The BlockBlob.GetBlockListAsync Message.</returns>
 13831            internal static Azure.Core.HttpMessage GetBlockListAsync_CreateMessage(
 13832                Azure.Core.Pipeline.HttpPipeline pipeline,
 13833                System.Uri resourceUri,
 13834                Azure.Storage.Blobs.Models.BlockListType listType,
 13835                string version,
 13836                string snapshot = default,
 13837                int? timeout = default,
 13838                string leaseId = default,
 13839                string ifTags = default,
 13840                string requestId = default)
 13841            {
 13842                // Validation
 13843                if (resourceUri == null)
 13844                {
 13845                    throw new System.ArgumentNullException(nameof(resourceUri));
 13846                }
 13847                if (version == null)
 13848                {
 13849                    throw new System.ArgumentNullException(nameof(version));
 13850                }
 13851
 13852                // Create the request
 13853                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 13854                Azure.Core.Request _request = _message.Request;
 13855
 13856                // Set the endpoint
 13857                _request.Method = Azure.Core.RequestMethod.Get;
 13858                _request.Uri.Reset(resourceUri);
 13859                _request.Uri.AppendQuery("comp", "blocklist", escapeValue: false);
 13860                _request.Uri.AppendQuery("blocklisttype", Azure.Storage.Blobs.BlobRestClient.Serialization.ToString(list
 13861                if (snapshot != null) { _request.Uri.AppendQuery("snapshot", snapshot); }
 13862                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 13863
 13864                // Add request headers
 13865                _request.Headers.SetValue("x-ms-version", version);
 13866                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 13867                if (ifTags != null) { _request.Headers.SetValue("x-ms-if-tags", ifTags); }
 13868                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 13869
 13870                return _message;
 13871            }
 13872
 13873            /// <summary>
 13874            /// Create the BlockBlob.GetBlockListAsync response or throw a failure exception.
 13875            /// </summary>
 13876            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 13877            /// <param name="response">The raw Response.</param>
 13878            /// <returns>The BlockBlob.GetBlockListAsync Azure.Response{Azure.Storage.Blobs.Models.GetBlockListOperation
 13879            internal static Azure.Response<Azure.Storage.Blobs.Models.GetBlockListOperation> GetBlockListAsync_CreateRes
 13880                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 13881                Azure.Response response)
 13882            {
 13883                // Process the response
 13884                switch (response.Status)
 13885                {
 13886                    case 200:
 13887                    {
 13888                        // Create the result
 13889                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 13890                        Azure.Storage.Blobs.Models.GetBlockListOperation _value = new Azure.Storage.Blobs.Models.GetBloc
 13891                        _value.Body = Azure.Storage.Blobs.Models.BlockList.FromXml(_xml.Root);
 13892
 13893                        // Get response headers
 13894                        string _header;
 13895                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 13896                        {
 13897                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 13898                        }
 13899                        if (response.Headers.TryGetValue("ETag", out _header))
 13900                        {
 13901                            _value.ETag = new Azure.ETag(_header);
 13902                        }
 13903                        if (response.Headers.TryGetValue("Content-Type", out _header))
 13904                        {
 13905                            _value.ContentType = _header;
 13906                        }
 13907                        if (response.Headers.TryGetValue("x-ms-blob-content-length", out _header))
 13908                        {
 13909                            _value.BlobContentLength = long.Parse(_header, System.Globalization.CultureInfo.InvariantCul
 13910                        }
 13911
 13912                        // Create the response
 13913                        return Response.FromValue(_value, response);
 13914                    }
 13915                    case 304:
 13916                    {
 13917                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.GetBlockListOperation>(response);
 13918                    }
 13919                    default:
 13920                    {
 13921                        // Create the result
 13922                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 13923                        Azure.Storage.Blobs.Models.StorageError _value = Azure.Storage.Blobs.Models.StorageError.FromXml
 13924
 13925                        throw _value.CreateException(clientDiagnostics, response);
 13926                    }
 13927                }
 13928            }
 13929            #endregion BlockBlob.GetBlockListAsync
 13930        }
 13931        #endregion BlockBlob operations
 13932
 13933        #region Directory operations
 13934        /// <summary>
 13935        /// Directory operations for Azure Blob Storage
 13936        /// </summary>
 13937        public static partial class Directory
 13938        {
 13939            #region Directory.CreateAsync
 13940            /// <summary>
 13941            /// Create a directory. By default, the destination is overwritten and if the destination already exists and
 13942            /// </summary>
 13943            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 13944            /// <param name="pipeline">The pipeline used for sending requests.</param>
 13945            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 13946            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 13947            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 13948            /// <param name="directoryProperties">Optional.  User-defined properties to be stored with the file or direc
 13949            /// <param name="posixPermissions">Optional and only valid if Hierarchical Namespace is enabled for the acco
 13950            /// <param name="posixUmask">Only valid if Hierarchical Namespace is enabled for the account. This umask res
 13951            /// <param name="cacheControl">Cache control for given resource</param>
 13952            /// <param name="contentType">Content type for given resource</param>
 13953            /// <param name="contentEncoding">Content encoding for given resource</param>
 13954            /// <param name="contentLanguage">Content language for given resource</param>
 13955            /// <param name="contentDisposition">Content disposition for given resource</param>
 13956            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 13957            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 13958            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 13959            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 13960            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 13961            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 13962            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 13963            /// <param name="operationName">Operation name.</param>
 13964            /// <param name="cancellationToken">Cancellation token.</param>
 13965            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.DirectoryCreateResult}</returns>
 13966            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.DirectoryCrea
 13967                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 13968                Azure.Core.Pipeline.HttpPipeline pipeline,
 13969                System.Uri resourceUri,
 13970                string version,
 13971                int? timeout = default,
 13972                string directoryProperties = default,
 13973                string posixPermissions = default,
 13974                string posixUmask = default,
 13975                string cacheControl = default,
 13976                string contentType = default,
 13977                string contentEncoding = default,
 13978                string contentLanguage = default,
 13979                string contentDisposition = default,
 13980                string leaseId = default,
 13981                System.DateTimeOffset? ifModifiedSince = default,
 13982                System.DateTimeOffset? ifUnmodifiedSince = default,
 13983                Azure.ETag? ifMatch = default,
 13984                Azure.ETag? ifNoneMatch = default,
 13985                string requestId = default,
 13986                bool async = true,
 13987                string operationName = "DirectoryClient.Create",
 13988                System.Threading.CancellationToken cancellationToken = default)
 13989            {
 13990                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 13991                try
 13992                {
 13993                    _scope.AddAttribute("url", resourceUri);
 13994                    _scope.Start();
 13995                    using (Azure.Core.HttpMessage _message = CreateAsync_CreateMessage(
 13996                        pipeline,
 13997                        resourceUri,
 13998                        version,
 13999                        timeout,
 14000                        directoryProperties,
 14001                        posixPermissions,
 14002                        posixUmask,
 14003                        cacheControl,
 14004                        contentType,
 14005                        contentEncoding,
 14006                        contentLanguage,
 14007                        contentDisposition,
 14008                        leaseId,
 14009                        ifModifiedSince,
 14010                        ifUnmodifiedSince,
 14011                        ifMatch,
 14012                        ifNoneMatch,
 14013                        requestId))
 14014                    {
 14015                        if (async)
 14016                        {
 14017                            // Send the request asynchronously if we're being called via an async path
 14018                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 14019                        }
 14020                        else
 14021                        {
 14022                            // Send the request synchronously through the API that blocks if we're being called via a sy
 14023                            // (this is safe because the Task will complete before the user can call Wait)
 14024                            pipeline.Send(_message, cancellationToken);
 14025                        }
 14026                        Azure.Response _response = _message.Response;
 14027                        cancellationToken.ThrowIfCancellationRequested();
 14028                        return CreateAsync_CreateResponse(clientDiagnostics, _response);
 14029                    }
 14030                }
 14031                catch (System.Exception ex)
 14032                {
 14033                    _scope.Failed(ex);
 14034                    throw;
 14035                }
 14036                finally
 14037                {
 14038                    _scope.Dispose();
 14039                }
 14040            }
 14041
 14042            /// <summary>
 14043            /// Create the Directory.CreateAsync request.
 14044            /// </summary>
 14045            /// <param name="pipeline">The pipeline used for sending requests.</param>
 14046            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 14047            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 14048            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 14049            /// <param name="directoryProperties">Optional.  User-defined properties to be stored with the file or direc
 14050            /// <param name="posixPermissions">Optional and only valid if Hierarchical Namespace is enabled for the acco
 14051            /// <param name="posixUmask">Only valid if Hierarchical Namespace is enabled for the account. This umask res
 14052            /// <param name="cacheControl">Cache control for given resource</param>
 14053            /// <param name="contentType">Content type for given resource</param>
 14054            /// <param name="contentEncoding">Content encoding for given resource</param>
 14055            /// <param name="contentLanguage">Content language for given resource</param>
 14056            /// <param name="contentDisposition">Content disposition for given resource</param>
 14057            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 14058            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 14059            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 14060            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 14061            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 14062            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 14063            /// <returns>The Directory.CreateAsync Message.</returns>
 14064            internal static Azure.Core.HttpMessage CreateAsync_CreateMessage(
 14065                Azure.Core.Pipeline.HttpPipeline pipeline,
 14066                System.Uri resourceUri,
 14067                string version,
 14068                int? timeout = default,
 14069                string directoryProperties = default,
 14070                string posixPermissions = default,
 14071                string posixUmask = default,
 14072                string cacheControl = default,
 14073                string contentType = default,
 14074                string contentEncoding = default,
 14075                string contentLanguage = default,
 14076                string contentDisposition = default,
 14077                string leaseId = default,
 14078                System.DateTimeOffset? ifModifiedSince = default,
 14079                System.DateTimeOffset? ifUnmodifiedSince = default,
 14080                Azure.ETag? ifMatch = default,
 14081                Azure.ETag? ifNoneMatch = default,
 14082                string requestId = default)
 14083            {
 14084                // Validation
 14085                if (resourceUri == null)
 14086                {
 14087                    throw new System.ArgumentNullException(nameof(resourceUri));
 14088                }
 14089                if (version == null)
 14090                {
 14091                    throw new System.ArgumentNullException(nameof(version));
 14092                }
 14093
 14094                // Create the request
 14095                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 14096                Azure.Core.Request _request = _message.Request;
 14097
 14098                // Set the endpoint
 14099                _request.Method = Azure.Core.RequestMethod.Put;
 14100                _request.Uri.Reset(resourceUri);
 14101                _request.Uri.AppendQuery("resource", "directory", escapeValue: false);
 14102                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 14103
 14104                // Add request headers
 14105                _request.Headers.SetValue("x-ms-version", version);
 14106                if (directoryProperties != null) { _request.Headers.SetValue("x-ms-properties", directoryProperties); }
 14107                if (posixPermissions != null) { _request.Headers.SetValue("x-ms-permissions", posixPermissions); }
 14108                if (posixUmask != null) { _request.Headers.SetValue("x-ms-umask", posixUmask); }
 14109                if (cacheControl != null) { _request.Headers.SetValue("x-ms-cache-control", cacheControl); }
 14110                if (contentType != null) { _request.Headers.SetValue("x-ms-content-type", contentType); }
 14111                if (contentEncoding != null) { _request.Headers.SetValue("x-ms-content-encoding", contentEncoding); }
 14112                if (contentLanguage != null) { _request.Headers.SetValue("x-ms-content-language", contentLanguage); }
 14113                if (contentDisposition != null) { _request.Headers.SetValue("x-ms-content-disposition", contentDispositi
 14114                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 14115                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 14116                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 14117                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 14118                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 14119                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 14120
 14121                return _message;
 14122            }
 14123
 14124            /// <summary>
 14125            /// Create the Directory.CreateAsync response or throw a failure exception.
 14126            /// </summary>
 14127            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 14128            /// <param name="response">The raw Response.</param>
 14129            /// <returns>The Directory.CreateAsync Azure.Response{Azure.Storage.Blobs.Models.DirectoryCreateResult}.</re
 14130            internal static Azure.Response<Azure.Storage.Blobs.Models.DirectoryCreateResult> CreateAsync_CreateResponse(
 14131                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 14132                Azure.Response response)
 14133            {
 14134                // Process the response
 14135                switch (response.Status)
 14136                {
 14137                    case 201:
 14138                    {
 14139                        // Create the result
 14140                        Azure.Storage.Blobs.Models.DirectoryCreateResult _value = new Azure.Storage.Blobs.Models.Directo
 14141
 14142                        // Get response headers
 14143                        string _header;
 14144                        if (response.Headers.TryGetValue("ETag", out _header))
 14145                        {
 14146                            _value.ETag = new Azure.ETag(_header);
 14147                        }
 14148                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 14149                        {
 14150                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 14151                        }
 14152                        if (response.Headers.TryGetValue("Content-Length", out _header))
 14153                        {
 14154                            _value.ContentLength = long.Parse(_header, System.Globalization.CultureInfo.InvariantCulture
 14155                        }
 14156
 14157                        // Create the response
 14158                        return Response.FromValue(_value, response);
 14159                    }
 14160                    default:
 14161                    {
 14162                        // Create the result
 14163                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 14164                        Azure.Storage.Blobs.Models.DataLakeStorageError _value = Azure.Storage.Blobs.Models.DataLakeStor
 14165
 14166                        throw _value.CreateException(clientDiagnostics, response);
 14167                    }
 14168                }
 14169            }
 14170            #endregion Directory.CreateAsync
 14171
 14172            #region Directory.RenameAsync
 14173            /// <summary>
 14174            /// Rename a directory. By default, the destination is overwritten and if the destination already exists and
 14175            /// </summary>
 14176            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 14177            /// <param name="pipeline">The pipeline used for sending requests.</param>
 14178            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 14179            /// <param name="renameSource">The file or directory to be renamed. The value must have the following format
 14180            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 14181            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 14182            /// <param name="marker">When renaming a directory, the number of paths that are renamed with each invocatio
 14183            /// <param name="pathRenameMode">Determines the behavior of the rename operation</param>
 14184            /// <param name="directoryProperties">Optional.  User-defined properties to be stored with the file or direc
 14185            /// <param name="posixPermissions">Optional and only valid if Hierarchical Namespace is enabled for the acco
 14186            /// <param name="posixUmask">Only valid if Hierarchical Namespace is enabled for the account. This umask res
 14187            /// <param name="cacheControl">Cache control for given resource</param>
 14188            /// <param name="contentType">Content type for given resource</param>
 14189            /// <param name="contentEncoding">Content encoding for given resource</param>
 14190            /// <param name="contentLanguage">Content language for given resource</param>
 14191            /// <param name="contentDisposition">Content disposition for given resource</param>
 14192            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 14193            /// <param name="sourceLeaseId">A lease ID for the source path. If specified, the source path must have an a
 14194            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 14195            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 14196            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 14197            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 14198            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 14199            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 14200            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 14201            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 14202            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 14203            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 14204            /// <param name="operationName">Operation name.</param>
 14205            /// <param name="cancellationToken">Cancellation token.</param>
 14206            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.DirectoryRenameResult}</returns>
 14207            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.DirectoryRena
 14208                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 14209                Azure.Core.Pipeline.HttpPipeline pipeline,
 14210                System.Uri resourceUri,
 14211                string renameSource,
 14212                string version,
 14213                int? timeout = default,
 14214                string marker = default,
 14215                Azure.Storage.Blobs.Models.PathRenameMode? pathRenameMode = default,
 14216                string directoryProperties = default,
 14217                string posixPermissions = default,
 14218                string posixUmask = default,
 14219                string cacheControl = default,
 14220                string contentType = default,
 14221                string contentEncoding = default,
 14222                string contentLanguage = default,
 14223                string contentDisposition = default,
 14224                string leaseId = default,
 14225                string sourceLeaseId = default,
 14226                System.DateTimeOffset? ifModifiedSince = default,
 14227                System.DateTimeOffset? ifUnmodifiedSince = default,
 14228                Azure.ETag? ifMatch = default,
 14229                Azure.ETag? ifNoneMatch = default,
 14230                System.DateTimeOffset? sourceIfModifiedSince = default,
 14231                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 14232                Azure.ETag? sourceIfMatch = default,
 14233                Azure.ETag? sourceIfNoneMatch = default,
 14234                string requestId = default,
 14235                bool async = true,
 14236                string operationName = "DirectoryClient.Rename",
 14237                System.Threading.CancellationToken cancellationToken = default)
 14238            {
 14239                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 14240                try
 14241                {
 14242                    _scope.AddAttribute("url", resourceUri);
 14243                    _scope.Start();
 14244                    using (Azure.Core.HttpMessage _message = RenameAsync_CreateMessage(
 14245                        pipeline,
 14246                        resourceUri,
 14247                        renameSource,
 14248                        version,
 14249                        timeout,
 14250                        marker,
 14251                        pathRenameMode,
 14252                        directoryProperties,
 14253                        posixPermissions,
 14254                        posixUmask,
 14255                        cacheControl,
 14256                        contentType,
 14257                        contentEncoding,
 14258                        contentLanguage,
 14259                        contentDisposition,
 14260                        leaseId,
 14261                        sourceLeaseId,
 14262                        ifModifiedSince,
 14263                        ifUnmodifiedSince,
 14264                        ifMatch,
 14265                        ifNoneMatch,
 14266                        sourceIfModifiedSince,
 14267                        sourceIfUnmodifiedSince,
 14268                        sourceIfMatch,
 14269                        sourceIfNoneMatch,
 14270                        requestId))
 14271                    {
 14272                        if (async)
 14273                        {
 14274                            // Send the request asynchronously if we're being called via an async path
 14275                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 14276                        }
 14277                        else
 14278                        {
 14279                            // Send the request synchronously through the API that blocks if we're being called via a sy
 14280                            // (this is safe because the Task will complete before the user can call Wait)
 14281                            pipeline.Send(_message, cancellationToken);
 14282                        }
 14283                        Azure.Response _response = _message.Response;
 14284                        cancellationToken.ThrowIfCancellationRequested();
 14285                        return RenameAsync_CreateResponse(clientDiagnostics, _response);
 14286                    }
 14287                }
 14288                catch (System.Exception ex)
 14289                {
 14290                    _scope.Failed(ex);
 14291                    throw;
 14292                }
 14293                finally
 14294                {
 14295                    _scope.Dispose();
 14296                }
 14297            }
 14298
 14299            /// <summary>
 14300            /// Create the Directory.RenameAsync request.
 14301            /// </summary>
 14302            /// <param name="pipeline">The pipeline used for sending requests.</param>
 14303            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 14304            /// <param name="renameSource">The file or directory to be renamed. The value must have the following format
 14305            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 14306            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 14307            /// <param name="marker">When renaming a directory, the number of paths that are renamed with each invocatio
 14308            /// <param name="pathRenameMode">Determines the behavior of the rename operation</param>
 14309            /// <param name="directoryProperties">Optional.  User-defined properties to be stored with the file or direc
 14310            /// <param name="posixPermissions">Optional and only valid if Hierarchical Namespace is enabled for the acco
 14311            /// <param name="posixUmask">Only valid if Hierarchical Namespace is enabled for the account. This umask res
 14312            /// <param name="cacheControl">Cache control for given resource</param>
 14313            /// <param name="contentType">Content type for given resource</param>
 14314            /// <param name="contentEncoding">Content encoding for given resource</param>
 14315            /// <param name="contentLanguage">Content language for given resource</param>
 14316            /// <param name="contentDisposition">Content disposition for given resource</param>
 14317            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 14318            /// <param name="sourceLeaseId">A lease ID for the source path. If specified, the source path must have an a
 14319            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 14320            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 14321            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 14322            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 14323            /// <param name="sourceIfModifiedSince">Specify this header value to operate only on a blob if it has been m
 14324            /// <param name="sourceIfUnmodifiedSince">Specify this header value to operate only on a blob if it has not 
 14325            /// <param name="sourceIfMatch">Specify an ETag value to operate only on blobs with a matching value.</param
 14326            /// <param name="sourceIfNoneMatch">Specify an ETag value to operate only on blobs without a matching value.
 14327            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 14328            /// <returns>The Directory.RenameAsync Message.</returns>
 14329            internal static Azure.Core.HttpMessage RenameAsync_CreateMessage(
 14330                Azure.Core.Pipeline.HttpPipeline pipeline,
 14331                System.Uri resourceUri,
 14332                string renameSource,
 14333                string version,
 14334                int? timeout = default,
 14335                string marker = default,
 14336                Azure.Storage.Blobs.Models.PathRenameMode? pathRenameMode = default,
 14337                string directoryProperties = default,
 14338                string posixPermissions = default,
 14339                string posixUmask = default,
 14340                string cacheControl = default,
 14341                string contentType = default,
 14342                string contentEncoding = default,
 14343                string contentLanguage = default,
 14344                string contentDisposition = default,
 14345                string leaseId = default,
 14346                string sourceLeaseId = default,
 14347                System.DateTimeOffset? ifModifiedSince = default,
 14348                System.DateTimeOffset? ifUnmodifiedSince = default,
 14349                Azure.ETag? ifMatch = default,
 14350                Azure.ETag? ifNoneMatch = default,
 14351                System.DateTimeOffset? sourceIfModifiedSince = default,
 14352                System.DateTimeOffset? sourceIfUnmodifiedSince = default,
 14353                Azure.ETag? sourceIfMatch = default,
 14354                Azure.ETag? sourceIfNoneMatch = default,
 14355                string requestId = default)
 14356            {
 14357                // Validation
 14358                if (resourceUri == null)
 14359                {
 14360                    throw new System.ArgumentNullException(nameof(resourceUri));
 14361                }
 14362                if (renameSource == null)
 14363                {
 14364                    throw new System.ArgumentNullException(nameof(renameSource));
 14365                }
 14366                if (version == null)
 14367                {
 14368                    throw new System.ArgumentNullException(nameof(version));
 14369                }
 14370
 14371                // Create the request
 14372                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 14373                Azure.Core.Request _request = _message.Request;
 14374
 14375                // Set the endpoint
 14376                _request.Method = Azure.Core.RequestMethod.Put;
 14377                _request.Uri.Reset(resourceUri);
 14378                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 14379                if (marker != null) { _request.Uri.AppendQuery("continuation", marker); }
 14380                if (pathRenameMode != null) { _request.Uri.AppendQuery("mode", Azure.Storage.Blobs.BlobRestClient.Serial
 14381
 14382                // Add request headers
 14383                _request.Headers.SetValue("x-ms-rename-source", renameSource);
 14384                _request.Headers.SetValue("x-ms-version", version);
 14385                if (directoryProperties != null) { _request.Headers.SetValue("x-ms-properties", directoryProperties); }
 14386                if (posixPermissions != null) { _request.Headers.SetValue("x-ms-permissions", posixPermissions); }
 14387                if (posixUmask != null) { _request.Headers.SetValue("x-ms-umask", posixUmask); }
 14388                if (cacheControl != null) { _request.Headers.SetValue("x-ms-cache-control", cacheControl); }
 14389                if (contentType != null) { _request.Headers.SetValue("x-ms-content-type", contentType); }
 14390                if (contentEncoding != null) { _request.Headers.SetValue("x-ms-content-encoding", contentEncoding); }
 14391                if (contentLanguage != null) { _request.Headers.SetValue("x-ms-content-language", contentLanguage); }
 14392                if (contentDisposition != null) { _request.Headers.SetValue("x-ms-content-disposition", contentDispositi
 14393                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 14394                if (sourceLeaseId != null) { _request.Headers.SetValue("x-ms-source-lease-id", sourceLeaseId); }
 14395                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 14396                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 14397                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 14398                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 14399                if (sourceIfModifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-modified-since", sourceIf
 14400                if (sourceIfUnmodifiedSince != null) { _request.Headers.SetValue("x-ms-source-if-unmodified-since", sour
 14401                if (sourceIfMatch != null) { _request.Headers.SetValue("x-ms-source-if-match", sourceIfMatch.Value.ToStr
 14402                if (sourceIfNoneMatch != null) { _request.Headers.SetValue("x-ms-source-if-none-match", sourceIfNoneMatc
 14403                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 14404
 14405                return _message;
 14406            }
 14407
 14408            /// <summary>
 14409            /// Create the Directory.RenameAsync response or throw a failure exception.
 14410            /// </summary>
 14411            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 14412            /// <param name="response">The raw Response.</param>
 14413            /// <returns>The Directory.RenameAsync Azure.Response{Azure.Storage.Blobs.Models.DirectoryRenameResult}.</re
 14414            internal static Azure.Response<Azure.Storage.Blobs.Models.DirectoryRenameResult> RenameAsync_CreateResponse(
 14415                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 14416                Azure.Response response)
 14417            {
 14418                // Process the response
 14419                switch (response.Status)
 14420                {
 14421                    case 201:
 14422                    {
 14423                        // Create the result
 14424                        Azure.Storage.Blobs.Models.DirectoryRenameResult _value = new Azure.Storage.Blobs.Models.Directo
 14425
 14426                        // Get response headers
 14427                        string _header;
 14428                        if (response.Headers.TryGetValue("x-ms-continuation", out _header))
 14429                        {
 14430                            _value.Marker = _header;
 14431                        }
 14432                        if (response.Headers.TryGetValue("ETag", out _header))
 14433                        {
 14434                            _value.ETag = new Azure.ETag(_header);
 14435                        }
 14436                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 14437                        {
 14438                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 14439                        }
 14440                        if (response.Headers.TryGetValue("Content-Length", out _header))
 14441                        {
 14442                            _value.ContentLength = long.Parse(_header, System.Globalization.CultureInfo.InvariantCulture
 14443                        }
 14444
 14445                        // Create the response
 14446                        return Response.FromValue(_value, response);
 14447                    }
 14448                    default:
 14449                    {
 14450                        // Create the result
 14451                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 14452                        Azure.Storage.Blobs.Models.DataLakeStorageError _value = Azure.Storage.Blobs.Models.DataLakeStor
 14453
 14454                        throw _value.CreateException(clientDiagnostics, response);
 14455                    }
 14456                }
 14457            }
 14458            #endregion Directory.RenameAsync
 14459
 14460            #region Directory.DeleteAsync
 14461            /// <summary>
 14462            /// Deletes the directory
 14463            /// </summary>
 14464            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 14465            /// <param name="pipeline">The pipeline used for sending requests.</param>
 14466            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 14467            /// <param name="recursiveDirectoryDelete">If "true", all paths beneath the directory will be deleted. If "f
 14468            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 14469            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 14470            /// <param name="marker">When renaming a directory, the number of paths that are renamed with each invocatio
 14471            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 14472            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 14473            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 14474            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 14475            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 14476            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 14477            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 14478            /// <param name="operationName">Operation name.</param>
 14479            /// <param name="cancellationToken">Cancellation token.</param>
 14480            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.DirectoryDeleteResult}</returns>
 14481            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.DirectoryDele
 14482                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 14483                Azure.Core.Pipeline.HttpPipeline pipeline,
 14484                System.Uri resourceUri,
 14485                bool recursiveDirectoryDelete,
 14486                string version,
 14487                int? timeout = default,
 14488                string marker = default,
 14489                string leaseId = default,
 14490                System.DateTimeOffset? ifModifiedSince = default,
 14491                System.DateTimeOffset? ifUnmodifiedSince = default,
 14492                Azure.ETag? ifMatch = default,
 14493                Azure.ETag? ifNoneMatch = default,
 14494                string requestId = default,
 14495                bool async = true,
 14496                string operationName = "DirectoryClient.Delete",
 14497                System.Threading.CancellationToken cancellationToken = default)
 14498            {
 14499                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 14500                try
 14501                {
 14502                    _scope.AddAttribute("url", resourceUri);
 14503                    _scope.Start();
 14504                    using (Azure.Core.HttpMessage _message = DeleteAsync_CreateMessage(
 14505                        pipeline,
 14506                        resourceUri,
 14507                        recursiveDirectoryDelete,
 14508                        version,
 14509                        timeout,
 14510                        marker,
 14511                        leaseId,
 14512                        ifModifiedSince,
 14513                        ifUnmodifiedSince,
 14514                        ifMatch,
 14515                        ifNoneMatch,
 14516                        requestId))
 14517                    {
 14518                        if (async)
 14519                        {
 14520                            // Send the request asynchronously if we're being called via an async path
 14521                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 14522                        }
 14523                        else
 14524                        {
 14525                            // Send the request synchronously through the API that blocks if we're being called via a sy
 14526                            // (this is safe because the Task will complete before the user can call Wait)
 14527                            pipeline.Send(_message, cancellationToken);
 14528                        }
 14529                        Azure.Response _response = _message.Response;
 14530                        cancellationToken.ThrowIfCancellationRequested();
 14531                        return DeleteAsync_CreateResponse(clientDiagnostics, _response);
 14532                    }
 14533                }
 14534                catch (System.Exception ex)
 14535                {
 14536                    _scope.Failed(ex);
 14537                    throw;
 14538                }
 14539                finally
 14540                {
 14541                    _scope.Dispose();
 14542                }
 14543            }
 14544
 14545            /// <summary>
 14546            /// Create the Directory.DeleteAsync request.
 14547            /// </summary>
 14548            /// <param name="pipeline">The pipeline used for sending requests.</param>
 14549            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 14550            /// <param name="recursiveDirectoryDelete">If "true", all paths beneath the directory will be deleted. If "f
 14551            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 14552            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 14553            /// <param name="marker">When renaming a directory, the number of paths that are renamed with each invocatio
 14554            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 14555            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 14556            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 14557            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 14558            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 14559            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 14560            /// <returns>The Directory.DeleteAsync Message.</returns>
 14561            internal static Azure.Core.HttpMessage DeleteAsync_CreateMessage(
 14562                Azure.Core.Pipeline.HttpPipeline pipeline,
 14563                System.Uri resourceUri,
 14564                bool recursiveDirectoryDelete,
 14565                string version,
 14566                int? timeout = default,
 14567                string marker = default,
 14568                string leaseId = default,
 14569                System.DateTimeOffset? ifModifiedSince = default,
 14570                System.DateTimeOffset? ifUnmodifiedSince = default,
 14571                Azure.ETag? ifMatch = default,
 14572                Azure.ETag? ifNoneMatch = default,
 14573                string requestId = default)
 14574            {
 14575                // Validation
 14576                if (resourceUri == null)
 14577                {
 14578                    throw new System.ArgumentNullException(nameof(resourceUri));
 14579                }
 14580                if (version == null)
 14581                {
 14582                    throw new System.ArgumentNullException(nameof(version));
 14583                }
 14584
 14585                // Create the request
 14586                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 14587                Azure.Core.Request _request = _message.Request;
 14588
 14589                // Set the endpoint
 14590                _request.Method = Azure.Core.RequestMethod.Delete;
 14591                _request.Uri.Reset(resourceUri);
 14592
 14593                #pragma warning disable CA1308 // Normalize strings to uppercase
 14594                _request.Uri.AppendQuery("recursive", recursiveDirectoryDelete.ToString(System.Globalization.CultureInfo
 14595                #pragma warning restore CA1308 // Normalize strings to uppercase
 14596
 14597                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 14598                if (marker != null) { _request.Uri.AppendQuery("continuation", marker); }
 14599
 14600                // Add request headers
 14601                _request.Headers.SetValue("x-ms-version", version);
 14602                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 14603                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 14604                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 14605                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 14606                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 14607                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 14608
 14609                return _message;
 14610            }
 14611
 14612            /// <summary>
 14613            /// Create the Directory.DeleteAsync response or throw a failure exception.
 14614            /// </summary>
 14615            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 14616            /// <param name="response">The raw Response.</param>
 14617            /// <returns>The Directory.DeleteAsync Azure.Response{Azure.Storage.Blobs.Models.DirectoryDeleteResult}.</re
 14618            internal static Azure.Response<Azure.Storage.Blobs.Models.DirectoryDeleteResult> DeleteAsync_CreateResponse(
 14619                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 14620                Azure.Response response)
 14621            {
 14622                // Process the response
 14623                switch (response.Status)
 14624                {
 14625                    case 200:
 14626                    {
 14627                        // Create the result
 14628                        Azure.Storage.Blobs.Models.DirectoryDeleteResult _value = new Azure.Storage.Blobs.Models.Directo
 14629
 14630                        // Get response headers
 14631                        string _header;
 14632                        if (response.Headers.TryGetValue("x-ms-continuation", out _header))
 14633                        {
 14634                            _value.Marker = _header;
 14635                        }
 14636
 14637                        // Create the response
 14638                        return Response.FromValue(_value, response);
 14639                    }
 14640                    default:
 14641                    {
 14642                        // Create the result
 14643                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 14644                        Azure.Storage.Blobs.Models.DataLakeStorageError _value = Azure.Storage.Blobs.Models.DataLakeStor
 14645
 14646                        throw _value.CreateException(clientDiagnostics, response);
 14647                    }
 14648                }
 14649            }
 14650            #endregion Directory.DeleteAsync
 14651
 14652            #region Directory.SetAccessControlAsync
 14653            /// <summary>
 14654            /// Set the owner, group, permissions, or access control list for a directory.
 14655            /// </summary>
 14656            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 14657            /// <param name="pipeline">The pipeline used for sending requests.</param>
 14658            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 14659            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 14660            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 14661            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 14662            /// <param name="owner">Optional. The owner of the blob or directory.</param>
 14663            /// <param name="group">Optional. The owning group of the blob or directory.</param>
 14664            /// <param name="posixPermissions">Optional and only valid if Hierarchical Namespace is enabled for the acco
 14665            /// <param name="posixAcl">Sets POSIX access control rights on files and directories. The value is a comma-s
 14666            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 14667            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 14668            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 14669            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 14670            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 14671            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 14672            /// <param name="operationName">Operation name.</param>
 14673            /// <param name="cancellationToken">Cancellation token.</param>
 14674            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.DirectorySetAccessControlResult}</returns>
 14675            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.DirectorySetA
 14676                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 14677                Azure.Core.Pipeline.HttpPipeline pipeline,
 14678                System.Uri resourceUri,
 14679                string version,
 14680                int? timeout = default,
 14681                string leaseId = default,
 14682                string owner = default,
 14683                string group = default,
 14684                string posixPermissions = default,
 14685                string posixAcl = default,
 14686                Azure.ETag? ifMatch = default,
 14687                Azure.ETag? ifNoneMatch = default,
 14688                System.DateTimeOffset? ifModifiedSince = default,
 14689                System.DateTimeOffset? ifUnmodifiedSince = default,
 14690                string requestId = default,
 14691                bool async = true,
 14692                string operationName = "DirectoryClient.SetAccessControl",
 14693                System.Threading.CancellationToken cancellationToken = default)
 14694            {
 14695                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 14696                try
 14697                {
 14698                    _scope.AddAttribute("url", resourceUri);
 14699                    _scope.Start();
 14700                    using (Azure.Core.HttpMessage _message = SetAccessControlAsync_CreateMessage(
 14701                        pipeline,
 14702                        resourceUri,
 14703                        version,
 14704                        timeout,
 14705                        leaseId,
 14706                        owner,
 14707                        group,
 14708                        posixPermissions,
 14709                        posixAcl,
 14710                        ifMatch,
 14711                        ifNoneMatch,
 14712                        ifModifiedSince,
 14713                        ifUnmodifiedSince,
 14714                        requestId))
 14715                    {
 14716                        if (async)
 14717                        {
 14718                            // Send the request asynchronously if we're being called via an async path
 14719                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 14720                        }
 14721                        else
 14722                        {
 14723                            // Send the request synchronously through the API that blocks if we're being called via a sy
 14724                            // (this is safe because the Task will complete before the user can call Wait)
 14725                            pipeline.Send(_message, cancellationToken);
 14726                        }
 14727                        Azure.Response _response = _message.Response;
 14728                        cancellationToken.ThrowIfCancellationRequested();
 14729                        return SetAccessControlAsync_CreateResponse(clientDiagnostics, _response);
 14730                    }
 14731                }
 14732                catch (System.Exception ex)
 14733                {
 14734                    _scope.Failed(ex);
 14735                    throw;
 14736                }
 14737                finally
 14738                {
 14739                    _scope.Dispose();
 14740                }
 14741            }
 14742
 14743            /// <summary>
 14744            /// Create the Directory.SetAccessControlAsync request.
 14745            /// </summary>
 14746            /// <param name="pipeline">The pipeline used for sending requests.</param>
 14747            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 14748            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 14749            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 14750            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 14751            /// <param name="owner">Optional. The owner of the blob or directory.</param>
 14752            /// <param name="group">Optional. The owning group of the blob or directory.</param>
 14753            /// <param name="posixPermissions">Optional and only valid if Hierarchical Namespace is enabled for the acco
 14754            /// <param name="posixAcl">Sets POSIX access control rights on files and directories. The value is a comma-s
 14755            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 14756            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 14757            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 14758            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 14759            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 14760            /// <returns>The Directory.SetAccessControlAsync Message.</returns>
 14761            internal static Azure.Core.HttpMessage SetAccessControlAsync_CreateMessage(
 14762                Azure.Core.Pipeline.HttpPipeline pipeline,
 14763                System.Uri resourceUri,
 14764                string version,
 14765                int? timeout = default,
 14766                string leaseId = default,
 14767                string owner = default,
 14768                string group = default,
 14769                string posixPermissions = default,
 14770                string posixAcl = default,
 14771                Azure.ETag? ifMatch = default,
 14772                Azure.ETag? ifNoneMatch = default,
 14773                System.DateTimeOffset? ifModifiedSince = default,
 14774                System.DateTimeOffset? ifUnmodifiedSince = default,
 14775                string requestId = default)
 14776            {
 14777                // Validation
 14778                if (resourceUri == null)
 14779                {
 14780                    throw new System.ArgumentNullException(nameof(resourceUri));
 14781                }
 14782                if (version == null)
 14783                {
 14784                    throw new System.ArgumentNullException(nameof(version));
 14785                }
 14786
 14787                // Create the request
 14788                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 14789                Azure.Core.Request _request = _message.Request;
 14790
 14791                // Set the endpoint
 14792                _request.Method = Azure.Core.RequestMethod.Patch;
 14793                _request.Uri.Reset(resourceUri);
 14794                _request.Uri.AppendQuery("action", "setAccessControl", escapeValue: false);
 14795                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 14796
 14797                // Add request headers
 14798                _request.Headers.SetValue("x-ms-version", version);
 14799                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 14800                if (owner != null) { _request.Headers.SetValue("x-ms-owner", owner); }
 14801                if (group != null) { _request.Headers.SetValue("x-ms-group", group); }
 14802                if (posixPermissions != null) { _request.Headers.SetValue("x-ms-permissions", posixPermissions); }
 14803                if (posixAcl != null) { _request.Headers.SetValue("x-ms-acl", posixAcl); }
 14804                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 14805                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 14806                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 14807                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 14808                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 14809
 14810                return _message;
 14811            }
 14812
 14813            /// <summary>
 14814            /// Create the Directory.SetAccessControlAsync response or throw a failure exception.
 14815            /// </summary>
 14816            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 14817            /// <param name="response">The raw Response.</param>
 14818            /// <returns>The Directory.SetAccessControlAsync Azure.Response{Azure.Storage.Blobs.Models.DirectorySetAcces
 14819            internal static Azure.Response<Azure.Storage.Blobs.Models.DirectorySetAccessControlResult> SetAccessControlA
 14820                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 14821                Azure.Response response)
 14822            {
 14823                // Process the response
 14824                switch (response.Status)
 14825                {
 14826                    case 200:
 14827                    {
 14828                        // Create the result
 14829                        Azure.Storage.Blobs.Models.DirectorySetAccessControlResult _value = new Azure.Storage.Blobs.Mode
 14830
 14831                        // Get response headers
 14832                        string _header;
 14833                        if (response.Headers.TryGetValue("ETag", out _header))
 14834                        {
 14835                            _value.ETag = new Azure.ETag(_header);
 14836                        }
 14837                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 14838                        {
 14839                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 14840                        }
 14841
 14842                        // Create the response
 14843                        return Response.FromValue(_value, response);
 14844                    }
 14845                    default:
 14846                    {
 14847                        // Create the result
 14848                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 14849                        Azure.Storage.Blobs.Models.DataLakeStorageError _value = Azure.Storage.Blobs.Models.DataLakeStor
 14850
 14851                        throw _value.CreateException(clientDiagnostics, response);
 14852                    }
 14853                }
 14854            }
 14855            #endregion Directory.SetAccessControlAsync
 14856
 14857            #region Directory.GetAccessControlAsync
 14858            /// <summary>
 14859            /// Get the owner, group, permissions, or access control list for a directory.
 14860            /// </summary>
 14861            /// <param name="clientDiagnostics">The ClientDiagnostics instance used for operation reporting.</param>
 14862            /// <param name="pipeline">The pipeline used for sending requests.</param>
 14863            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 14864            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 14865            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 14866            /// <param name="upn">Optional. Valid only when Hierarchical Namespace is enabled for the account. If "true"
 14867            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 14868            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 14869            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 14870            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 14871            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 14872            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 14873            /// <param name="async">Whether to invoke the operation asynchronously.  The default value is true.</param>
 14874            /// <param name="operationName">Operation name.</param>
 14875            /// <param name="cancellationToken">Cancellation token.</param>
 14876            /// <returns>Azure.Response{Azure.Storage.Blobs.Models.DirectoryGetAccessControlResult}</returns>
 14877            public static async System.Threading.Tasks.ValueTask<Azure.Response<Azure.Storage.Blobs.Models.DirectoryGetA
 14878                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 14879                Azure.Core.Pipeline.HttpPipeline pipeline,
 14880                System.Uri resourceUri,
 14881                string version,
 14882                int? timeout = default,
 14883                bool? upn = default,
 14884                string leaseId = default,
 14885                Azure.ETag? ifMatch = default,
 14886                Azure.ETag? ifNoneMatch = default,
 14887                System.DateTimeOffset? ifModifiedSince = default,
 14888                System.DateTimeOffset? ifUnmodifiedSince = default,
 14889                string requestId = default,
 14890                bool async = true,
 14891                string operationName = "DirectoryClient.GetAccessControl",
 14892                System.Threading.CancellationToken cancellationToken = default)
 14893            {
 14894                Azure.Core.Pipeline.DiagnosticScope _scope = clientDiagnostics.CreateScope(operationName);
 14895                try
 14896                {
 14897                    _scope.AddAttribute("url", resourceUri);
 14898                    _scope.Start();
 14899                    using (Azure.Core.HttpMessage _message = GetAccessControlAsync_CreateMessage(
 14900                        pipeline,
 14901                        resourceUri,
 14902                        version,
 14903                        timeout,
 14904                        upn,
 14905                        leaseId,
 14906                        ifMatch,
 14907                        ifNoneMatch,
 14908                        ifModifiedSince,
 14909                        ifUnmodifiedSince,
 14910                        requestId))
 14911                    {
 14912                        if (async)
 14913                        {
 14914                            // Send the request asynchronously if we're being called via an async path
 14915                            await pipeline.SendAsync(_message, cancellationToken).ConfigureAwait(false);
 14916                        }
 14917                        else
 14918                        {
 14919                            // Send the request synchronously through the API that blocks if we're being called via a sy
 14920                            // (this is safe because the Task will complete before the user can call Wait)
 14921                            pipeline.Send(_message, cancellationToken);
 14922                        }
 14923                        Azure.Response _response = _message.Response;
 14924                        cancellationToken.ThrowIfCancellationRequested();
 14925                        return GetAccessControlAsync_CreateResponse(clientDiagnostics, _response);
 14926                    }
 14927                }
 14928                catch (System.Exception ex)
 14929                {
 14930                    _scope.Failed(ex);
 14931                    throw;
 14932                }
 14933                finally
 14934                {
 14935                    _scope.Dispose();
 14936                }
 14937            }
 14938
 14939            /// <summary>
 14940            /// Create the Directory.GetAccessControlAsync request.
 14941            /// </summary>
 14942            /// <param name="pipeline">The pipeline used for sending requests.</param>
 14943            /// <param name="resourceUri">The URL of the service account, container, or blob that is the targe of the de
 14944            /// <param name="version">Specifies the version of the operation to use for this request.</param>
 14945            /// <param name="timeout">The timeout parameter is expressed in seconds. For more information, see <a href="
 14946            /// <param name="upn">Optional. Valid only when Hierarchical Namespace is enabled for the account. If "true"
 14947            /// <param name="leaseId">If specified, the operation only succeeds if the resource's lease is active and ma
 14948            /// <param name="ifMatch">Specify an ETag value to operate only on blobs with a matching value.</param>
 14949            /// <param name="ifNoneMatch">Specify an ETag value to operate only on blobs without a matching value.</para
 14950            /// <param name="ifModifiedSince">Specify this header value to operate only on a blob if it has been modifie
 14951            /// <param name="ifUnmodifiedSince">Specify this header value to operate only on a blob if it has not been m
 14952            /// <param name="requestId">Provides a client-generated, opaque value with a 1 KB character limit that is re
 14953            /// <returns>The Directory.GetAccessControlAsync Message.</returns>
 14954            internal static Azure.Core.HttpMessage GetAccessControlAsync_CreateMessage(
 14955                Azure.Core.Pipeline.HttpPipeline pipeline,
 14956                System.Uri resourceUri,
 14957                string version,
 14958                int? timeout = default,
 14959                bool? upn = default,
 14960                string leaseId = default,
 14961                Azure.ETag? ifMatch = default,
 14962                Azure.ETag? ifNoneMatch = default,
 14963                System.DateTimeOffset? ifModifiedSince = default,
 14964                System.DateTimeOffset? ifUnmodifiedSince = default,
 14965                string requestId = default)
 14966            {
 14967                // Validation
 14968                if (resourceUri == null)
 14969                {
 14970                    throw new System.ArgumentNullException(nameof(resourceUri));
 14971                }
 14972                if (version == null)
 14973                {
 14974                    throw new System.ArgumentNullException(nameof(version));
 14975                }
 14976
 14977                // Create the request
 14978                Azure.Core.HttpMessage _message = pipeline.CreateMessage();
 14979                Azure.Core.Request _request = _message.Request;
 14980
 14981                // Set the endpoint
 14982                _request.Method = Azure.Core.RequestMethod.Head;
 14983                _request.Uri.Reset(resourceUri);
 14984                _request.Uri.AppendQuery("action", "getAccessControl", escapeValue: false);
 14985                if (timeout != null) { _request.Uri.AppendQuery("timeout", timeout.Value.ToString(System.Globalization.C
 14986                if (upn != null) {
 14987                #pragma warning disable CA1308 // Normalize strings to uppercase
 14988                _request.Uri.AppendQuery("upn", upn.Value.ToString(System.Globalization.CultureInfo.InvariantCulture).To
 14989                #pragma warning restore CA1308 // Normalize strings to uppercase
 14990                }
 14991
 14992                // Add request headers
 14993                _request.Headers.SetValue("x-ms-version", version);
 14994                if (leaseId != null) { _request.Headers.SetValue("x-ms-lease-id", leaseId); }
 14995                if (ifMatch != null) { _request.Headers.SetValue("If-Match", ifMatch.Value.ToString()); }
 14996                if (ifNoneMatch != null) { _request.Headers.SetValue("If-None-Match", ifNoneMatch.Value.ToString()); }
 14997                if (ifModifiedSince != null) { _request.Headers.SetValue("If-Modified-Since", ifModifiedSince.Value.ToSt
 14998                if (ifUnmodifiedSince != null) { _request.Headers.SetValue("If-Unmodified-Since", ifUnmodifiedSince.Valu
 14999                if (requestId != null) { _request.Headers.SetValue("x-ms-client-request-id", requestId); }
 15000
 15001                return _message;
 15002            }
 15003
 15004            /// <summary>
 15005            /// Create the Directory.GetAccessControlAsync response or throw a failure exception.
 15006            /// </summary>
 15007            /// <param name="clientDiagnostics">The ClientDiagnostics instance to use.</param>
 15008            /// <param name="response">The raw Response.</param>
 15009            /// <returns>The Directory.GetAccessControlAsync Azure.Response{Azure.Storage.Blobs.Models.DirectoryGetAcces
 15010            internal static Azure.Response<Azure.Storage.Blobs.Models.DirectoryGetAccessControlResult> GetAccessControlA
 15011                Azure.Core.Pipeline.ClientDiagnostics clientDiagnostics,
 15012                Azure.Response response)
 15013            {
 15014                // Process the response
 15015                switch (response.Status)
 15016                {
 15017                    case 200:
 15018                    {
 15019                        // Create the result
 15020                        Azure.Storage.Blobs.Models.DirectoryGetAccessControlResult _value = new Azure.Storage.Blobs.Mode
 15021
 15022                        // Get response headers
 15023                        string _header;
 15024                        if (response.Headers.TryGetValue("ETag", out _header))
 15025                        {
 15026                            _value.ETag = new Azure.ETag(_header);
 15027                        }
 15028                        if (response.Headers.TryGetValue("Last-Modified", out _header))
 15029                        {
 15030                            _value.LastModified = System.DateTimeOffset.Parse(_header, System.Globalization.CultureInfo.
 15031                        }
 15032                        if (response.Headers.TryGetValue("x-ms-owner", out _header))
 15033                        {
 15034                            _value.XMSOwner = _header;
 15035                        }
 15036                        if (response.Headers.TryGetValue("x-ms-group", out _header))
 15037                        {
 15038                            _value.XMSGroup = _header;
 15039                        }
 15040                        if (response.Headers.TryGetValue("x-ms-permissions", out _header))
 15041                        {
 15042                            _value.XMSPermissions = _header;
 15043                        }
 15044                        if (response.Headers.TryGetValue("x-ms-acl", out _header))
 15045                        {
 15046                            _value.XMSAcl = _header;
 15047                        }
 15048
 15049                        // Create the response
 15050                        return Response.FromValue(_value, response);
 15051                    }
 15052                    case 304:
 15053                    {
 15054                        return new Azure.NoBodyResponse<Azure.Storage.Blobs.Models.DirectoryGetAccessControlResult>(resp
 15055                    }
 15056                    default:
 15057                    {
 15058                        // Create the result
 15059                        System.Xml.Linq.XDocument _xml = System.Xml.Linq.XDocument.Load(response.ContentStream, System.X
 15060                        Azure.Storage.Blobs.Models.DataLakeStorageError _value = Azure.Storage.Blobs.Models.DataLakeStor
 15061
 15062                        throw _value.CreateException(clientDiagnostics, response);
 15063                    }
 15064                }
 15065            }
 15066            #endregion Directory.GetAccessControlAsync
 15067        }
 15068        #endregion Directory operations
 15069    }
 15070}
 15071#endregion Service
 15072
 15073#region Models
 15074#region enum strings AccessTier
 15075namespace Azure.Storage.Blobs.Models
 15076{
 15077    /// <summary>
 15078    /// Indicates the tier to be set on the blob.
 15079    /// </summary>
 15080    public readonly struct AccessTier : System.IEquatable<AccessTier>
 15081    {
 15082        /// <summary>
 15083        /// The AccessTier value.
 15084        /// </summary>
 15085        private readonly string _value;
 15086
 15087        /// <summary>
 15088        /// Initializes a new instance of the <see cref="AccessTier"/> structure.
 15089        /// </summary>
 15090        /// <param name="value">The string value of the instance.</param>
 15091        public AccessTier(string value) { _value = value ?? throw new System.ArgumentNullException(nameof(value)); }
 15092
 15093        /// <summary>
 15094        /// P4
 15095        /// </summary>
 15096        public static Azure.Storage.Blobs.Models.AccessTier P4 { get; } = new AccessTier(@"P4");
 15097
 15098        /// <summary>
 15099        /// P6
 15100        /// </summary>
 15101        public static Azure.Storage.Blobs.Models.AccessTier P6 { get; } = new AccessTier(@"P6");
 15102
 15103        /// <summary>
 15104        /// P10
 15105        /// </summary>
 15106        public static Azure.Storage.Blobs.Models.AccessTier P10 { get; } = new AccessTier(@"P10");
 15107
 15108        /// <summary>
 15109        /// P15
 15110        /// </summary>
 15111        public static Azure.Storage.Blobs.Models.AccessTier P15 { get; } = new AccessTier(@"P15");
 15112
 15113        /// <summary>
 15114        /// P20
 15115        /// </summary>
 15116        public static Azure.Storage.Blobs.Models.AccessTier P20 { get; } = new AccessTier(@"P20");
 15117
 15118        /// <summary>
 15119        /// P30
 15120        /// </summary>
 15121        public static Azure.Storage.Blobs.Models.AccessTier P30 { get; } = new AccessTier(@"P30");
 15122
 15123        /// <summary>
 15124        /// P40
 15125        /// </summary>
 15126        public static Azure.Storage.Blobs.Models.AccessTier P40 { get; } = new AccessTier(@"P40");
 15127
 15128        /// <summary>
 15129        /// P50
 15130        /// </summary>
 15131        public static Azure.Storage.Blobs.Models.AccessTier P50 { get; } = new AccessTier(@"P50");
 15132
 15133        /// <summary>
 15134        /// P60
 15135        /// </summary>
 15136        public static Azure.Storage.Blobs.Models.AccessTier P60 { get; } = new AccessTier(@"P60");
 15137
 15138        /// <summary>
 15139        /// P70
 15140        /// </summary>
 15141        public static Azure.Storage.Blobs.Models.AccessTier P70 { get; } = new AccessTier(@"P70");
 15142
 15143        /// <summary>
 15144        /// P80
 15145        /// </summary>
 15146        public static Azure.Storage.Blobs.Models.AccessTier P80 { get; } = new AccessTier(@"P80");
 15147
 15148        /// <summary>
 15149        /// Hot
 15150        /// </summary>
 15151        public static Azure.Storage.Blobs.Models.AccessTier Hot { get; } = new AccessTier(@"Hot");
 15152
 15153        /// <summary>
 15154        /// Cool
 15155        /// </summary>
 15156        public static Azure.Storage.Blobs.Models.AccessTier Cool { get; } = new AccessTier(@"Cool");
 15157
 15158        /// <summary>
 15159        /// Archive
 15160        /// </summary>
 15161        public static Azure.Storage.Blobs.Models.AccessTier Archive { get; } = new AccessTier(@"Archive");
 15162
 15163        /// <summary>
 15164        /// Determines if two <see cref="AccessTier"/> values are the same.
 15165        /// </summary>
 15166        /// <param name="left">The first <see cref="AccessTier"/> to compare.</param>
 15167        /// <param name="right">The second <see cref="AccessTier"/> to compare.</param>
 15168        /// <returns>True if <paramref name="left"/> and <paramref name="right"/> are the same; otherwise, false.</retur
 15169        public static bool operator ==(Azure.Storage.Blobs.Models.AccessTier left, Azure.Storage.Blobs.Models.AccessTier
 15170
 15171        /// <summary>
 15172        /// Determines if two <see cref="AccessTier"/> values are different.
 15173        /// </summary>
 15174        /// <param name="left">The first <see cref="AccessTier"/> to compare.</param>
 15175        /// <param name="right">The second <see cref="AccessTier"/> to compare.</param>
 15176        /// <returns>True if <paramref name="left"/> and <paramref name="right"/> are different; otherwise, false.</retu
 15177        public static bool operator !=(Azure.Storage.Blobs.Models.AccessTier left, Azure.Storage.Blobs.Models.AccessTier
 15178
 15179        /// <summary>
 15180        /// Converts a string to a <see cref="AccessTier"/>.
 15181        /// </summary>
 15182        /// <param name="value">The string value to convert.</param>
 15183        /// <returns>The AccessTier value.</returns>
 15184        public static implicit operator AccessTier(string value) => new Azure.Storage.Blobs.Models.AccessTier(value);
 15185
 15186        /// <summary>
 15187        /// Check if two <see cref="AccessTier"/> instances are equal.
 15188        /// </summary>
 15189        /// <param name="obj">The instance to compare to.</param>
 15190        /// <returns>True if they're equal, false otherwise.</returns>
 15191        [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
 15192        public override bool Equals(object obj) => obj is Azure.Storage.Blobs.Models.AccessTier other && Equals(other);
 15193
 15194        /// <summary>
 15195        /// Check if two <see cref="AccessTier"/> instances are equal.
 15196        /// </summary>
 15197        /// <param name="other">The instance to compare to.</param>
 15198        /// <returns>True if they're equal, false otherwise.</returns>
 15199        public bool Equals(Azure.Storage.Blobs.Models.AccessTier other) => string.Equals(_value, other._value, System.St
 15200
 15201        /// <summary>
 15202        /// Get a hash code for the <see cref="AccessTier"/>.
 15203        /// </summary>
 15204        /// <returns>Hash code for the AccessTier.</returns>
 15205        [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
 15206        public override int GetHashCode() => _value?.GetHashCode() ?? 0;
 15207
 15208        /// <summary>
 15209        /// Convert the <see cref="AccessTier"/> to a string.
 15210        /// </summary>
 15211        /// <returns>String representation of the AccessTier.</returns>
 15212        public override string ToString() => _value;
 15213    }
 15214}
 15215#endregion enum strings AccessTier
 15216
 15217#region class AccountInfo
 15218namespace Azure.Storage.Blobs.Models
 15219{
 15220    /// <summary>
 15221    /// AccountInfo
 15222    /// </summary>
 15223    public partial class AccountInfo
 15224    {
 15225        /// <summary>
 15226        /// Identifies the sku name of the account
 15227        /// </summary>
 15228        public Azure.Storage.Blobs.Models.SkuName SkuName { get; internal set; }
 15229
 15230        /// <summary>
 15231        /// Identifies the account kind
 15232        /// </summary>
 15233        public Azure.Storage.Blobs.Models.AccountKind AccountKind { get; internal set; }
 15234
 15235        /// <summary>
 15236        /// Prevent direct instantiation of AccountInfo instances.
 15237        /// You can use BlobsModelFactory.AccountInfo instead.
 15238        /// </summary>
 15239        internal AccountInfo() { }
 15240    }
 15241
 15242    /// <summary>
 15243    /// BlobsModelFactory provides utilities for mocking.
 15244    /// </summary>
 15245    public static partial class BlobsModelFactory
 15246    {
 15247        /// <summary>
 15248        /// Creates a new AccountInfo instance for mocking.
 15249        /// </summary>
 15250        public static AccountInfo AccountInfo(
 15251            Azure.Storage.Blobs.Models.SkuName skuName,
 15252            Azure.Storage.Blobs.Models.AccountKind accountKind)
 15253        {
 15254            return new AccountInfo()
 15255            {
 15256                SkuName = skuName,
 15257                AccountKind = accountKind,
 15258            };
 15259        }
 15260    }
 15261}
 15262#endregion class AccountInfo
 15263
 15264#region enum AccountKind
 15265namespace Azure.Storage.Blobs.Models
 15266{
 15267    /// <summary>
 15268    /// Identifies the account kind
 15269    /// </summary>
 15270    public enum AccountKind
 15271    {
 15272        /// <summary>
 15273        /// Storage
 15274        /// </summary>
 15275        Storage,
 15276
 15277        /// <summary>
 15278        /// BlobStorage
 15279        /// </summary>
 15280        BlobStorage,
 15281
 15282        /// <summary>
 15283        /// StorageV2
 15284        /// </summary>
 15285        StorageV2,
 15286
 15287        /// <summary>
 15288        /// FileStorage
 15289        /// </summary>
 15290        FileStorage,
 15291
 15292        /// <summary>
 15293        /// BlockBlobStorage
 15294        /// </summary>
 15295        BlockBlobStorage
 15296    }
 15297}
 15298#endregion enum AccountKind
 15299
 15300#region class AppendBlobSealInternal
 15301namespace Azure.Storage.Blobs.Models
 15302{
 15303    /// <summary>
 15304    /// AppendBlobSealInternal
 15305    /// </summary>
 15306    internal partial class AppendBlobSealInternal
 15307    {
 15308        /// <summary>
 15309        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 15310        /// </summary>
 15311        public Azure.ETag ETag { get; internal set; }
 15312
 15313        /// <summary>
 15314        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 15315        /// </summary>
 15316        public System.DateTimeOffset LastModified { get; internal set; }
 15317
 15318        /// <summary>
 15319        /// If this blob has been sealed
 15320        /// </summary>
 15321        public bool IsSealed { get; internal set; }
 15322
 15323        /// <summary>
 15324        /// Prevent direct instantiation of AppendBlobSealInternal instances.
 15325        /// You can use BlobsModelFactory.AppendBlobSealInternal instead.
 15326        /// </summary>
 15327        internal AppendBlobSealInternal() { }
 15328    }
 15329}
 15330#endregion class AppendBlobSealInternal
 15331
 15332#region enum ArchiveStatus
 15333namespace Azure.Storage.Blobs.Models
 15334{
 15335    /// <summary>
 15336    /// ArchiveStatus values
 15337    /// </summary>
 15338    #pragma warning disable CA1717 // Only FlagsAttribute enums should have plural names
 15339    public enum ArchiveStatus
 15340    #pragma warning restore CA1717 // Only FlagsAttribute enums should have plural names
 15341    {
 15342        /// <summary>
 15343        /// rehydrate-pending-to-hot
 15344        /// </summary>
 15345        RehydratePendingToHot,
 15346
 15347        /// <summary>
 15348        /// rehydrate-pending-to-cool
 15349        /// </summary>
 15350        RehydratePendingToCool
 15351    }
 15352}
 15353
 15354namespace Azure.Storage.Blobs
 15355{
 15356    internal static partial class BlobRestClient
 15357    {
 15358        public static partial class Serialization
 15359        {
 15360            public static string ToString(Azure.Storage.Blobs.Models.ArchiveStatus value)
 15361            {
 15362                return value switch
 15363                {
 15364                    Azure.Storage.Blobs.Models.ArchiveStatus.RehydratePendingToHot => "rehydrate-pending-to-hot",
 15365                    Azure.Storage.Blobs.Models.ArchiveStatus.RehydratePendingToCool => "rehydrate-pending-to-cool",
 15366                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 15367                };
 15368            }
 15369
 15370            public static Azure.Storage.Blobs.Models.ArchiveStatus ParseArchiveStatus(string value)
 15371            {
 15372                return value switch
 15373                {
 15374                    "rehydrate-pending-to-hot" => Azure.Storage.Blobs.Models.ArchiveStatus.RehydratePendingToHot,
 15375                    "rehydrate-pending-to-cool" => Azure.Storage.Blobs.Models.ArchiveStatus.RehydratePendingToCool,
 15376                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 15377                };
 15378            }
 15379        }
 15380    }
 15381}
 15382#endregion enum ArchiveStatus
 15383
 15384#region class BlobGetAccessControlResult
 15385namespace Azure.Storage.Blobs.Models
 15386{
 15387    /// <summary>
 15388    /// Blob GetAccessControlResult
 15389    /// </summary>
 15390    internal partial class BlobGetAccessControlResult
 15391    {
 15392        /// <summary>
 15393        /// An HTTP entity tag associated with the file or directory.
 15394        /// </summary>
 15395        public Azure.ETag ETag { get; internal set; }
 15396
 15397        /// <summary>
 15398        /// The data and time the file or directory was last modified. Write operations on the file or directory update 
 15399        /// </summary>
 15400        public System.DateTimeOffset LastModified { get; internal set; }
 15401
 15402        /// <summary>
 15403        /// The owner of the file or directory. Included in the response if Hierarchical Namespace is enabled for the ac
 15404        /// </summary>
 15405        public string XMSOwner { get; internal set; }
 15406
 15407        /// <summary>
 15408        /// The owning group of the file or directory. Included in the response if Hierarchical Namespace is enabled for
 15409        /// </summary>
 15410        public string XMSGroup { get; internal set; }
 15411
 15412        /// <summary>
 15413        /// The POSIX access permissions for the file owner, the file owning group, and others. Included in the response
 15414        /// </summary>
 15415        public string XMSPermissions { get; internal set; }
 15416
 15417        /// <summary>
 15418        /// The POSIX access control list for the file or directory.  Included in the response only if the action is "ge
 15419        /// </summary>
 15420        public string XMSAcl { get; internal set; }
 15421
 15422        /// <summary>
 15423        /// Prevent direct instantiation of BlobGetAccessControlResult instances.
 15424        /// You can use BlobsModelFactory.BlobGetAccessControlResult instead.
 15425        /// </summary>
 15426        internal BlobGetAccessControlResult() { }
 15427    }
 15428}
 15429#endregion class BlobGetAccessControlResult
 15430
 15431#region class BlobQueryResult
 15432namespace Azure.Storage.Blobs.Models
 15433{
 15434    /// <summary>
 15435    /// Blob QueryResult
 15436    /// </summary>
 15437    internal partial class BlobQueryResult
 15438    {
 15439        /// <summary>
 15440        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 15441        /// </summary>
 15442        public System.DateTimeOffset LastModified { get; internal set; }
 15443
 15444        /// <summary>
 15445        /// x-ms-meta
 15446        /// </summary>
 15447        public System.Collections.Generic.IDictionary<string, string> Metadata { get; internal set; }
 15448
 15449        /// <summary>
 15450        /// The number of bytes present in the response body.
 15451        /// </summary>
 15452        public long ContentLength { get; internal set; }
 15453
 15454        /// <summary>
 15455        /// The media type of the body of the response. For Download Blob this is 'application/octet-stream'
 15456        /// </summary>
 15457        public string ContentType { get; internal set; }
 15458
 15459        /// <summary>
 15460        /// Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting
 15461        /// </summary>
 15462        public string ContentRange { get; internal set; }
 15463
 15464        /// <summary>
 15465        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 15466        /// </summary>
 15467        public Azure.ETag ETag { get; internal set; }
 15468
 15469        /// <summary>
 15470        /// If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so
 15471        /// </summary>
 15472        #pragma warning disable CA1819 // Properties should not return arrays
 15473        public byte[] ContentHash { get; internal set; }
 15474        #pragma warning restore CA1819 // Properties should not return arrays
 15475
 15476        /// <summary>
 15477        /// This header returns the value that was specified for the Content-Encoding request header
 15478        /// </summary>
 15479        public string ContentEncoding { get; internal set; }
 15480
 15481        /// <summary>
 15482        /// This header is returned if it was previously specified for the blob.
 15483        /// </summary>
 15484        public string CacheControl { get; internal set; }
 15485
 15486        /// <summary>
 15487        /// This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content
 15488        /// </summary>
 15489        public string ContentDisposition { get; internal set; }
 15490
 15491        /// <summary>
 15492        /// This header returns the value that was specified for the Content-Language request header.
 15493        /// </summary>
 15494        public string ContentLanguage { get; internal set; }
 15495
 15496        /// <summary>
 15497        /// The current sequence number for a page blob. This header is not returned for block blobs or append blobs
 15498        /// </summary>
 15499        public long BlobSequenceNumber { get; internal set; }
 15500
 15501        /// <summary>
 15502        /// The blob's type.
 15503        /// </summary>
 15504        public Azure.Storage.Blobs.Models.BlobType BlobType { get; internal set; }
 15505
 15506        /// <summary>
 15507        /// If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to true, then the re
 15508        /// </summary>
 15509        #pragma warning disable CA1819 // Properties should not return arrays
 15510        public byte[] ContentCrc64 { get; internal set; }
 15511        #pragma warning restore CA1819 // Properties should not return arrays
 15512
 15513        /// <summary>
 15514        /// Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This val
 15515        /// </summary>
 15516        public System.DateTimeOffset CopyCompletionTime { get; internal set; }
 15517
 15518        /// <summary>
 15519        /// Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal 
 15520        /// </summary>
 15521        public string CopyStatusDescription { get; internal set; }
 15522
 15523        /// <summary>
 15524        /// String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy ope
 15525        /// </summary>
 15526        public string CopyId { get; internal set; }
 15527
 15528        /// <summary>
 15529        /// Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operat
 15530        /// </summary>
 15531        public string CopyProgress { get; internal set; }
 15532
 15533        /// <summary>
 15534        /// URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operati
 15535        /// </summary>
 15536        public string CopySource { get; internal set; }
 15537
 15538        /// <summary>
 15539        /// State of the copy operation identified by x-ms-copy-id.
 15540        /// </summary>
 15541        public Azure.Storage.Blobs.Models.CopyStatus CopyStatus { get; internal set; }
 15542
 15543        /// <summary>
 15544        /// When a blob is leased, specifies whether the lease is of infinite or fixed duration.
 15545        /// </summary>
 15546        public Azure.Storage.Blobs.Models.LeaseDurationType LeaseDuration { get; internal set; }
 15547
 15548        /// <summary>
 15549        /// Lease state of the blob.
 15550        /// </summary>
 15551        public Azure.Storage.Blobs.Models.LeaseState LeaseState { get; internal set; }
 15552
 15553        /// <summary>
 15554        /// The current lease status of the blob.
 15555        /// </summary>
 15556        public Azure.Storage.Blobs.Models.LeaseStatus LeaseStatus { get; internal set; }
 15557
 15558        /// <summary>
 15559        /// Indicates that the service supports requests for partial blob content.
 15560        /// </summary>
 15561        public string AcceptRanges { get; internal set; }
 15562
 15563        /// <summary>
 15564        /// The number of committed blocks present in the blob. This header is returned only for append blobs.
 15565        /// </summary>
 15566        public int BlobCommittedBlockCount { get; internal set; }
 15567
 15568        /// <summary>
 15569        /// The value of this header is set to true if the blob data and application metadata are completely encrypted u
 15570        /// </summary>
 15571        public bool IsServerEncrypted { get; internal set; }
 15572
 15573        /// <summary>
 15574        /// The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob 
 15575        /// </summary>
 15576        public string EncryptionKeySha256 { get; internal set; }
 15577
 15578        /// <summary>
 15579        /// Returns the name of the encryption scope used to encrypt the blob contents and application metadata.  Note t
 15580        /// </summary>
 15581        public string EncryptionScope { get; internal set; }
 15582
 15583        /// <summary>
 15584        /// If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header
 15585        /// </summary>
 15586        #pragma warning disable CA1819 // Properties should not return arrays
 15587        public byte[] BlobContentMD5 { get; internal set; }
 15588        #pragma warning restore CA1819 // Properties should not return arrays
 15589
 15590        /// <summary>
 15591        /// Body
 15592        /// </summary>
 15593        public System.IO.Stream Body { get; internal set; }
 15594
 15595        /// <summary>
 15596        /// Creates a new BlobQueryResult instance
 15597        /// </summary>
 15598        public BlobQueryResult()
 15599        {
 15600            Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringComparer.OrdinalIgnoreCase
 15601        }
 15602    }
 15603}
 15604#endregion class BlobQueryResult
 15605
 15606#region class BlobRenameResult
 15607namespace Azure.Storage.Blobs.Models
 15608{
 15609    /// <summary>
 15610    /// Blob RenameResult
 15611    /// </summary>
 15612    internal partial class BlobRenameResult
 15613    {
 15614        /// <summary>
 15615        /// An HTTP entity tag associated with the file or directory.
 15616        /// </summary>
 15617        public Azure.ETag ETag { get; internal set; }
 15618
 15619        /// <summary>
 15620        /// The data and time the file or directory was last modified.  Write operations on the file or directory update
 15621        /// </summary>
 15622        public System.DateTimeOffset LastModified { get; internal set; }
 15623
 15624        /// <summary>
 15625        /// The size of the resource in bytes.
 15626        /// </summary>
 15627        public long ContentLength { get; internal set; }
 15628
 15629        /// <summary>
 15630        /// Prevent direct instantiation of BlobRenameResult instances.
 15631        /// You can use BlobsModelFactory.BlobRenameResult instead.
 15632        /// </summary>
 15633        internal BlobRenameResult() { }
 15634    }
 15635}
 15636#endregion class BlobRenameResult
 15637
 15638#region class BlobSetAccessControlResult
 15639namespace Azure.Storage.Blobs.Models
 15640{
 15641    /// <summary>
 15642    /// Blob SetAccessControlResult
 15643    /// </summary>
 15644    internal partial class BlobSetAccessControlResult
 15645    {
 15646        /// <summary>
 15647        /// An HTTP entity tag associated with the file or directory.
 15648        /// </summary>
 15649        public Azure.ETag ETag { get; internal set; }
 15650
 15651        /// <summary>
 15652        /// The data and time the file or directory was last modified. Write operations on the file or directory update 
 15653        /// </summary>
 15654        public System.DateTimeOffset LastModified { get; internal set; }
 15655
 15656        /// <summary>
 15657        /// Prevent direct instantiation of BlobSetAccessControlResult instances.
 15658        /// You can use BlobsModelFactory.BlobSetAccessControlResult instead.
 15659        /// </summary>
 15660        internal BlobSetAccessControlResult() { }
 15661    }
 15662}
 15663#endregion class BlobSetAccessControlResult
 15664
 15665#region class BlobAccessPolicy
 15666namespace Azure.Storage.Blobs.Models
 15667{
 15668    /// <summary>
 15669    /// An Access policy
 15670    /// </summary>
 15671    public partial class BlobAccessPolicy
 15672    {
 15673        /// <summary>
 15674        /// the date-time the policy is active
 15675        /// </summary>
 15676        public System.DateTimeOffset? PolicyStartsOn { get; set; }
 15677
 15678        /// <summary>
 15679        /// the date-time the policy expires
 15680        /// </summary>
 15681        public System.DateTimeOffset? PolicyExpiresOn { get; set; }
 15682
 15683        /// <summary>
 15684        /// the permissions for the acl policy
 15685        /// </summary>
 15686        public string Permissions { get; set; }
 15687
 15688        /// <summary>
 15689        /// Creates a new BlobAccessPolicy instance
 15690        /// </summary>
 15691        public BlobAccessPolicy() { }
 15692
 15693        /// <summary>
 15694        /// Serialize a BlobAccessPolicy instance as XML.
 15695        /// </summary>
 15696        /// <param name="value">The BlobAccessPolicy instance to serialize.</param>
 15697        /// <param name="name">An optional name to use for the root element instead of "AccessPolicy".</param>
 15698        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 15699        /// <returns>The serialized XML element.</returns>
 15700        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.BlobAccessPolicy value, string name = 
 15701        {
 15702            System.Diagnostics.Debug.Assert(value != null);
 15703            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 15704            if (value.PolicyStartsOn != null)
 15705            {
 15706                _element.Add(new System.Xml.Linq.XElement(
 15707                    System.Xml.Linq.XName.Get("Start", ""),
 15708                    value.PolicyStartsOn.Value.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffZ", System.Globalization.C
 15709            }
 15710            if (value.PolicyExpiresOn != null)
 15711            {
 15712                _element.Add(new System.Xml.Linq.XElement(
 15713                    System.Xml.Linq.XName.Get("Expiry", ""),
 15714                    value.PolicyExpiresOn.Value.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffZ", System.Globalization.
 15715            }
 15716            if (value.Permissions != null)
 15717            {
 15718                _element.Add(new System.Xml.Linq.XElement(
 15719                    System.Xml.Linq.XName.Get("Permission", ""),
 15720                    value.Permissions));
 15721            }
 15722            return _element;
 15723        }
 15724
 15725        /// <summary>
 15726        /// Deserializes XML into a new BlobAccessPolicy instance.
 15727        /// </summary>
 15728        /// <param name="element">The XML element to deserialize.</param>
 15729        /// <returns>A deserialized BlobAccessPolicy instance.</returns>
 15730        internal static Azure.Storage.Blobs.Models.BlobAccessPolicy FromXml(System.Xml.Linq.XElement element)
 15731        {
 15732            System.Diagnostics.Debug.Assert(element != null);
 15733            System.Xml.Linq.XElement _child;
 15734            Azure.Storage.Blobs.Models.BlobAccessPolicy _value = new Azure.Storage.Blobs.Models.BlobAccessPolicy();
 15735            _child = element.Element(System.Xml.Linq.XName.Get("Start", ""));
 15736            if (_child != null)
 15737            {
 15738                _value.PolicyStartsOn = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.Invar
 15739            }
 15740            _child = element.Element(System.Xml.Linq.XName.Get("Expiry", ""));
 15741            if (_child != null)
 15742            {
 15743                _value.PolicyExpiresOn = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.Inva
 15744            }
 15745            _child = element.Element(System.Xml.Linq.XName.Get("Permission", ""));
 15746            if (_child != null)
 15747            {
 15748                _value.Permissions = _child.Value;
 15749            }
 15750            CustomizeFromXml(element, _value);
 15751            return _value;
 15752        }
 15753
 15754        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobAccessPoli
 15755    }
 15756}
 15757#endregion class BlobAccessPolicy
 15758
 15759#region class BlobAnalyticsLogging
 15760namespace Azure.Storage.Blobs.Models
 15761{
 15762    /// <summary>
 15763    /// Azure Analytics Logging settings.
 15764    /// </summary>
 15765    public partial class BlobAnalyticsLogging
 15766    {
 15767        /// <summary>
 15768        /// The version of Storage Analytics to configure.
 15769        /// </summary>
 15770        public string Version { get; set; }
 15771
 15772        /// <summary>
 15773        /// Indicates whether all delete requests should be logged.
 15774        /// </summary>
 15775        public bool Delete { get; set; }
 15776
 15777        /// <summary>
 15778        /// Indicates whether all read requests should be logged.
 15779        /// </summary>
 15780        public bool Read { get; set; }
 15781
 15782        /// <summary>
 15783        /// Indicates whether all write requests should be logged.
 15784        /// </summary>
 15785        public bool Write { get; set; }
 15786
 15787        /// <summary>
 15788        /// the retention policy which determines how long the associated data should persist
 15789        /// </summary>
 15790        public Azure.Storage.Blobs.Models.BlobRetentionPolicy RetentionPolicy { get; set; }
 15791
 15792        /// <summary>
 15793        /// Creates a new BlobAnalyticsLogging instance
 15794        /// </summary>
 15795        public BlobAnalyticsLogging()
 15796            : this(false)
 15797        {
 15798        }
 15799
 15800        /// <summary>
 15801        /// Creates a new BlobAnalyticsLogging instance
 15802        /// </summary>
 15803        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 15804        internal BlobAnalyticsLogging(bool skipInitialization)
 15805        {
 15806            if (!skipInitialization)
 15807            {
 15808                RetentionPolicy = new Azure.Storage.Blobs.Models.BlobRetentionPolicy();
 15809            }
 15810        }
 15811
 15812        /// <summary>
 15813        /// Serialize a BlobAnalyticsLogging instance as XML.
 15814        /// </summary>
 15815        /// <param name="value">The BlobAnalyticsLogging instance to serialize.</param>
 15816        /// <param name="name">An optional name to use for the root element instead of "Logging".</param>
 15817        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 15818        /// <returns>The serialized XML element.</returns>
 15819        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.BlobAnalyticsLogging value, string nam
 15820        {
 15821            System.Diagnostics.Debug.Assert(value != null);
 15822            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 15823            _element.Add(new System.Xml.Linq.XElement(
 15824                System.Xml.Linq.XName.Get("Version", ""),
 15825                value.Version));
 15826            _element.Add(new System.Xml.Linq.XElement(
 15827                System.Xml.Linq.XName.Get("Delete", ""),
 15828                #pragma warning disable CA1308 // Normalize strings to uppercase
 15829                value.Delete.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLowerInvariant()));
 15830                #pragma warning restore CA1308 // Normalize strings to uppercase
 15831            _element.Add(new System.Xml.Linq.XElement(
 15832                System.Xml.Linq.XName.Get("Read", ""),
 15833                #pragma warning disable CA1308 // Normalize strings to uppercase
 15834                value.Read.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLowerInvariant()));
 15835                #pragma warning restore CA1308 // Normalize strings to uppercase
 15836            _element.Add(new System.Xml.Linq.XElement(
 15837                System.Xml.Linq.XName.Get("Write", ""),
 15838                #pragma warning disable CA1308 // Normalize strings to uppercase
 15839                value.Write.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLowerInvariant()));
 15840                #pragma warning restore CA1308 // Normalize strings to uppercase
 15841            _element.Add(Azure.Storage.Blobs.Models.BlobRetentionPolicy.ToXml(value.RetentionPolicy, "RetentionPolicy", 
 15842            return _element;
 15843        }
 15844
 15845        /// <summary>
 15846        /// Deserializes XML into a new BlobAnalyticsLogging instance.
 15847        /// </summary>
 15848        /// <param name="element">The XML element to deserialize.</param>
 15849        /// <returns>A deserialized BlobAnalyticsLogging instance.</returns>
 15850        internal static Azure.Storage.Blobs.Models.BlobAnalyticsLogging FromXml(System.Xml.Linq.XElement element)
 15851        {
 15852            System.Diagnostics.Debug.Assert(element != null);
 15853            System.Xml.Linq.XElement _child;
 15854            Azure.Storage.Blobs.Models.BlobAnalyticsLogging _value = new Azure.Storage.Blobs.Models.BlobAnalyticsLogging
 15855            _child = element.Element(System.Xml.Linq.XName.Get("Version", ""));
 15856            if (_child != null)
 15857            {
 15858                _value.Version = _child.Value;
 15859            }
 15860            _child = element.Element(System.Xml.Linq.XName.Get("Delete", ""));
 15861            if (_child != null)
 15862            {
 15863                _value.Delete = bool.Parse(_child.Value);
 15864            }
 15865            _child = element.Element(System.Xml.Linq.XName.Get("Read", ""));
 15866            if (_child != null)
 15867            {
 15868                _value.Read = bool.Parse(_child.Value);
 15869            }
 15870            _child = element.Element(System.Xml.Linq.XName.Get("Write", ""));
 15871            if (_child != null)
 15872            {
 15873                _value.Write = bool.Parse(_child.Value);
 15874            }
 15875            _child = element.Element(System.Xml.Linq.XName.Get("RetentionPolicy", ""));
 15876            if (_child != null)
 15877            {
 15878                _value.RetentionPolicy = Azure.Storage.Blobs.Models.BlobRetentionPolicy.FromXml(_child);
 15879            }
 15880            CustomizeFromXml(element, _value);
 15881            return _value;
 15882        }
 15883
 15884        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobAnalyticsL
 15885    }
 15886}
 15887#endregion class BlobAnalyticsLogging
 15888
 15889#region class BlobAppendInfo
 15890namespace Azure.Storage.Blobs.Models
 15891{
 15892    /// <summary>
 15893    /// BlobAppendInfo
 15894    /// </summary>
 15895    public partial class BlobAppendInfo
 15896    {
 15897        /// <summary>
 15898        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 15899        /// </summary>
 15900        public Azure.ETag ETag { get; internal set; }
 15901
 15902        /// <summary>
 15903        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 15904        /// </summary>
 15905        public System.DateTimeOffset LastModified { get; internal set; }
 15906
 15907        /// <summary>
 15908        /// If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so
 15909        /// </summary>
 15910        #pragma warning disable CA1819 // Properties should not return arrays
 15911        public byte[] ContentHash { get; internal set; }
 15912        #pragma warning restore CA1819 // Properties should not return arrays
 15913
 15914        /// <summary>
 15915        /// This header is returned so that the client can check for message content integrity. The value of this header
 15916        /// </summary>
 15917        #pragma warning disable CA1819 // Properties should not return arrays
 15918        public byte[] ContentCrc64 { get; internal set; }
 15919        #pragma warning restore CA1819 // Properties should not return arrays
 15920
 15921        /// <summary>
 15922        /// This response header is returned only for append operations. It returns the offset at which the block was co
 15923        /// </summary>
 15924        public string BlobAppendOffset { get; internal set; }
 15925
 15926        /// <summary>
 15927        /// The number of committed blocks present in the blob. This header is returned only for append blobs.
 15928        /// </summary>
 15929        public int BlobCommittedBlockCount { get; internal set; }
 15930
 15931        /// <summary>
 15932        /// The value of this header is set to true if the contents of the request are successfully encrypted using the 
 15933        /// </summary>
 15934        public bool IsServerEncrypted { get; internal set; }
 15935
 15936        /// <summary>
 15937        /// The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the bloc
 15938        /// </summary>
 15939        public string EncryptionKeySha256 { get; internal set; }
 15940
 15941        /// <summary>
 15942        /// Returns the name of the encryption scope used to encrypt the blob contents and application metadata.  Note t
 15943        /// </summary>
 15944        public string EncryptionScope { get; internal set; }
 15945
 15946        /// <summary>
 15947        /// Prevent direct instantiation of BlobAppendInfo instances.
 15948        /// You can use BlobsModelFactory.BlobAppendInfo instead.
 15949        /// </summary>
 15950        internal BlobAppendInfo() { }
 15951    }
 15952
 15953    /// <summary>
 15954    /// BlobsModelFactory provides utilities for mocking.
 15955    /// </summary>
 15956    public static partial class BlobsModelFactory
 15957    {
 15958        /// <summary>
 15959        /// Creates a new BlobAppendInfo instance for mocking.
 15960        /// </summary>
 15961        public static BlobAppendInfo BlobAppendInfo(
 15962            Azure.ETag eTag,
 15963            System.DateTimeOffset lastModified,
 15964            byte[] contentHash,
 15965            byte[] contentCrc64,
 15966            string blobAppendOffset,
 15967            int blobCommittedBlockCount,
 15968            bool isServerEncrypted,
 15969            string encryptionKeySha256,
 15970            string encryptionScope)
 15971        {
 15972            return new BlobAppendInfo()
 15973            {
 15974                ETag = eTag,
 15975                LastModified = lastModified,
 15976                ContentHash = contentHash,
 15977                ContentCrc64 = contentCrc64,
 15978                BlobAppendOffset = blobAppendOffset,
 15979                BlobCommittedBlockCount = blobCommittedBlockCount,
 15980                IsServerEncrypted = isServerEncrypted,
 15981                EncryptionKeySha256 = encryptionKeySha256,
 15982                EncryptionScope = encryptionScope,
 15983            };
 15984        }
 15985    }
 15986}
 15987#endregion class BlobAppendInfo
 15988
 15989#region class BlobBatchResult
 15990namespace Azure.Storage.Blobs.Models
 15991{
 15992    /// <summary>
 15993    /// BlobBatchResult
 15994    /// </summary>
 15995    internal partial class BlobBatchResult
 15996    {
 15997        /// <summary>
 15998        /// The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchrespo
 15999        /// </summary>
 16000        public string ContentType { get; internal set; }
 16001
 16002        /// <summary>
 16003        /// Content
 16004        /// </summary>
 16005        public System.IO.Stream Content { get; internal set; }
 16006
 16007        /// <summary>
 16008        /// Prevent direct instantiation of BlobBatchResult instances.
 16009        /// You can use BlobsModelFactory.BlobBatchResult instead.
 16010        /// </summary>
 16011        internal BlobBatchResult() { }
 16012    }
 16013}
 16014#endregion class BlobBatchResult
 16015
 16016#region struct BlobBlock
 16017namespace Azure.Storage.Blobs.Models
 16018{
 16019    /// <summary>
 16020    /// Represents a single block in a block blob.  It describes the block's ID and size.
 16021    /// </summary>
 16022    public readonly partial struct BlobBlock: System.IEquatable<BlobBlock>
 16023    {
 16024        /// <summary>
 16025        /// The base64 encoded block ID.
 16026        /// </summary>
 16027        public string Name { get; }
 16028
 16029        /// <summary>
 16030        /// The block size in bytes.
 16031        /// </summary>
 16032        public int Size { get; }
 16033
 16034        /// <summary>
 16035        /// Prevent direct instantiation of BlobBlock instances.
 16036        /// You can use BlobsModelFactory.BlobBlock instead.
 16037        /// </summary>
 16038        internal BlobBlock(
 16039            string name,
 16040            int size)
 16041            {
 16042                Name = name;
 16043                Size = size;
 16044            }
 16045
 16046        /// <summary>
 16047        /// Check if two BlobBlock instances are equal.
 16048        /// </summary>
 16049        /// <param name="other">The instance to compare to.</param>
 16050        /// <returns>True if they're equal, false otherwise.</returns>
 16051        [System.ComponentModel.EditorBrowsable((System.ComponentModel.EditorBrowsableState.Never))]
 16052        public bool Equals(BlobBlock other)
 16053        {
 16054            if (!System.StringComparer.Ordinal.Equals(Name, other.Name))
 16055            {
 16056                return false;
 16057            }
 16058            if (!Size.Equals(other.Size))
 16059            {
 16060                return false;
 16061            }
 16062
 16063            return true;
 16064        }
 16065
 16066        /// <summary>
 16067        /// Check if two BlobBlock instances are equal.
 16068        /// </summary>
 16069        /// <param name="obj">The instance to compare to.</param>
 16070        /// <returns>True if they're equal, false otherwise.</returns>
 16071        [System.ComponentModel.EditorBrowsable((System.ComponentModel.EditorBrowsableState.Never))]
 16072        public override bool Equals(object obj) => obj is BlobBlock && Equals((BlobBlock)obj);
 16073
 16074        /// <summary>
 16075        /// Get a hash code for the BlobBlock.
 16076        /// </summary>
 16077        [System.ComponentModel.EditorBrowsable((System.ComponentModel.EditorBrowsableState.Never))]
 16078        public override int GetHashCode()
 16079        {
 16080            var hashCode = new Azure.Core.HashCodeBuilder();
 16081            if (Name != null)
 16082            {
 16083                hashCode.Add(Name, System.StringComparer.Ordinal);
 16084            }
 16085            hashCode.Add(Size);
 16086
 16087            return hashCode.ToHashCode();
 16088        }
 16089
 16090        /// <summary>
 16091        /// Deserializes XML into a new BlobBlock instance.
 16092        /// </summary>
 16093        /// <param name="element">The XML element to deserialize.</param>
 16094        /// <returns>A deserialized BlobBlock instance.</returns>
 16095        internal static Azure.Storage.Blobs.Models.BlobBlock FromXml(System.Xml.Linq.XElement element)
 16096        {
 16097            System.Diagnostics.Debug.Assert(element != null);
 16098            System.Xml.Linq.XElement _child;
 16099            string name = default;
 16100            int size = default;
 16101            _child = element.Element(System.Xml.Linq.XName.Get("Name", ""));
 16102            if (_child != null)
 16103            {
 16104                name = _child.Value;
 16105            }
 16106            _child = element.Element(System.Xml.Linq.XName.Get("Size", ""));
 16107            if (_child != null)
 16108            {
 16109                size = int.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 16110            }
 16111            Azure.Storage.Blobs.Models.BlobBlock _value = new Azure.Storage.Blobs.Models.BlobBlock(name, size);
 16112            CustomizeFromXml(element, _value);
 16113            return _value;
 16114        }
 16115
 16116        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobBlock valu
 16117    }
 16118
 16119    /// <summary>
 16120    /// BlobsModelFactory provides utilities for mocking.
 16121    /// </summary>
 16122    public static partial class BlobsModelFactory
 16123    {
 16124        /// <summary>
 16125        /// Creates a new BlobBlock instance for mocking.
 16126        /// </summary>
 16127        public static BlobBlock BlobBlock(
 16128            string name,
 16129            int size)
 16130        {
 16131            return new BlobBlock(name, size);
 16132        }
 16133    }
 16134}
 16135#endregion struct BlobBlock
 16136
 16137#region class BlobContainerAccessPolicy
 16138namespace Azure.Storage.Blobs.Models
 16139{
 16140    /// <summary>
 16141    /// BlobContainerAccessPolicy
 16142    /// </summary>
 16143    public partial class BlobContainerAccessPolicy
 16144    {
 16145        /// <summary>
 16146        /// Indicated whether data in the container may be accessed publicly and the level of access
 16147        /// </summary>
 16148        public Azure.Storage.Blobs.Models.PublicAccessType BlobPublicAccess { get; internal set; }
 16149
 16150        /// <summary>
 16151        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 16152        /// </summary>
 16153        public Azure.ETag ETag { get; internal set; }
 16154
 16155        /// <summary>
 16156        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 16157        /// </summary>
 16158        public System.DateTimeOffset LastModified { get; internal set; }
 16159
 16160        /// <summary>
 16161        /// a collection of signed identifiers
 16162        /// </summary>
 16163        public System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobSignedIdentifier> SignedIdentifiers
 16164
 16165        /// <summary>
 16166        /// Creates a new BlobContainerAccessPolicy instance
 16167        /// </summary>
 16168        public BlobContainerAccessPolicy()
 16169        {
 16170            SignedIdentifiers = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobSignedIdentifier>();
 16171        }
 16172    }
 16173
 16174    /// <summary>
 16175    /// BlobsModelFactory provides utilities for mocking.
 16176    /// </summary>
 16177    public static partial class BlobsModelFactory
 16178    {
 16179        /// <summary>
 16180        /// Creates a new BlobContainerAccessPolicy instance for mocking.
 16181        /// </summary>
 16182        public static BlobContainerAccessPolicy BlobContainerAccessPolicy(
 16183            Azure.Storage.Blobs.Models.PublicAccessType blobPublicAccess,
 16184            Azure.ETag eTag,
 16185            System.DateTimeOffset lastModified,
 16186            System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobSignedIdentifier> signedIdentifiers)
 16187        {
 16188            return new BlobContainerAccessPolicy()
 16189            {
 16190                BlobPublicAccess = blobPublicAccess,
 16191                ETag = eTag,
 16192                LastModified = lastModified,
 16193                SignedIdentifiers = signedIdentifiers,
 16194            };
 16195        }
 16196    }
 16197}
 16198#endregion class BlobContainerAccessPolicy
 16199
 16200#region class BlobContainerInfo
 16201namespace Azure.Storage.Blobs.Models
 16202{
 16203    /// <summary>
 16204    /// BlobContainerInfo
 16205    /// </summary>
 16206    public partial class BlobContainerInfo
 16207    {
 16208        /// <summary>
 16209        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 16210        /// </summary>
 16211        public Azure.ETag ETag { get; internal set; }
 16212
 16213        /// <summary>
 16214        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 16215        /// </summary>
 16216        public System.DateTimeOffset LastModified { get; internal set; }
 16217
 16218        /// <summary>
 16219        /// Prevent direct instantiation of BlobContainerInfo instances.
 16220        /// You can use BlobsModelFactory.BlobContainerInfo instead.
 16221        /// </summary>
 16222        internal BlobContainerInfo() { }
 16223    }
 16224
 16225    /// <summary>
 16226    /// BlobsModelFactory provides utilities for mocking.
 16227    /// </summary>
 16228    public static partial class BlobsModelFactory
 16229    {
 16230        /// <summary>
 16231        /// Creates a new BlobContainerInfo instance for mocking.
 16232        /// </summary>
 16233        public static BlobContainerInfo BlobContainerInfo(
 16234            Azure.ETag eTag,
 16235            System.DateTimeOffset lastModified)
 16236        {
 16237            return new BlobContainerInfo()
 16238            {
 16239                ETag = eTag,
 16240                LastModified = lastModified,
 16241            };
 16242        }
 16243    }
 16244}
 16245#endregion class BlobContainerInfo
 16246
 16247#region class BlobContainerItem
 16248namespace Azure.Storage.Blobs.Models
 16249{
 16250    /// <summary>
 16251    /// An Azure Storage container
 16252    /// </summary>
 16253    public partial class BlobContainerItem
 16254    {
 16255        /// <summary>
 16256        /// Name
 16257        /// </summary>
 16258        public string Name { get; internal set; }
 16259
 16260        /// <summary>
 16261        /// Deleted
 16262        /// </summary>
 16263        public bool? IsDeleted { get; internal set; }
 16264
 16265        /// <summary>
 16266        /// Version
 16267        /// </summary>
 16268        public string VersionId { get; internal set; }
 16269
 16270        /// <summary>
 16271        /// Properties of a container
 16272        /// </summary>
 16273        public Azure.Storage.Blobs.Models.BlobContainerProperties Properties { get; internal set; }
 16274
 16275        /// <summary>
 16276        /// Creates a new BlobContainerItem instance
 16277        /// </summary>
 16278        internal BlobContainerItem()
 16279            : this(false)
 16280        {
 16281        }
 16282
 16283        /// <summary>
 16284        /// Creates a new BlobContainerItem instance
 16285        /// </summary>
 16286        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 16287        internal BlobContainerItem(bool skipInitialization)
 16288        {
 16289            if (!skipInitialization)
 16290            {
 16291                Properties = new Azure.Storage.Blobs.Models.BlobContainerProperties();
 16292            }
 16293        }
 16294
 16295        /// <summary>
 16296        /// Deserializes XML into a new BlobContainerItem instance.
 16297        /// </summary>
 16298        /// <param name="element">The XML element to deserialize.</param>
 16299        /// <returns>A deserialized BlobContainerItem instance.</returns>
 16300        internal static Azure.Storage.Blobs.Models.BlobContainerItem FromXml(System.Xml.Linq.XElement element)
 16301        {
 16302            System.Diagnostics.Debug.Assert(element != null);
 16303            System.Xml.Linq.XElement _child;
 16304            Azure.Storage.Blobs.Models.BlobContainerItem _value = new Azure.Storage.Blobs.Models.BlobContainerItem(true)
 16305            _child = element.Element(System.Xml.Linq.XName.Get("Name", ""));
 16306            if (_child != null)
 16307            {
 16308                _value.Name = _child.Value;
 16309            }
 16310            _child = element.Element(System.Xml.Linq.XName.Get("Deleted", ""));
 16311            if (_child != null)
 16312            {
 16313                _value.IsDeleted = bool.Parse(_child.Value);
 16314            }
 16315            _child = element.Element(System.Xml.Linq.XName.Get("Version", ""));
 16316            if (_child != null)
 16317            {
 16318                _value.VersionId = _child.Value;
 16319            }
 16320            _child = element.Element(System.Xml.Linq.XName.Get("Properties", ""));
 16321            if (_child != null)
 16322            {
 16323                _value.Properties = Azure.Storage.Blobs.Models.BlobContainerProperties.FromXml(_child);
 16324            }
 16325            CustomizeFromXml(element, _value);
 16326            return _value;
 16327        }
 16328
 16329        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobContainerI
 16330    }
 16331
 16332    /// <summary>
 16333    /// BlobsModelFactory provides utilities for mocking.
 16334    /// </summary>
 16335    public static partial class BlobsModelFactory
 16336    {
 16337        /// <summary>
 16338        /// Creates a new BlobContainerItem instance for mocking.
 16339        /// </summary>
 16340        public static BlobContainerItem BlobContainerItem(
 16341            string name,
 16342            Azure.Storage.Blobs.Models.BlobContainerProperties properties,
 16343            bool? isDeleted = default,
 16344            string versionId = default)
 16345        {
 16346            return new BlobContainerItem()
 16347            {
 16348                Name = name,
 16349                Properties = properties,
 16350                IsDeleted = isDeleted,
 16351                VersionId = versionId,
 16352            };
 16353        }
 16354    }
 16355}
 16356#endregion class BlobContainerItem
 16357
 16358#region class BlobContainerProperties
 16359namespace Azure.Storage.Blobs.Models
 16360{
 16361    /// <summary>
 16362    /// Properties of a container
 16363    /// </summary>
 16364    public partial class BlobContainerProperties
 16365    {
 16366        /// <summary>
 16367        /// Last-Modified
 16368        /// </summary>
 16369        public System.DateTimeOffset LastModified { get; internal set; }
 16370
 16371        /// <summary>
 16372        /// LeaseStatus
 16373        /// </summary>
 16374        public Azure.Storage.Blobs.Models.LeaseStatus? LeaseStatus { get; internal set; }
 16375
 16376        /// <summary>
 16377        /// LeaseState
 16378        /// </summary>
 16379        public Azure.Storage.Blobs.Models.LeaseState? LeaseState { get; internal set; }
 16380
 16381        /// <summary>
 16382        /// LeaseDuration
 16383        /// </summary>
 16384        public Azure.Storage.Blobs.Models.LeaseDurationType? LeaseDuration { get; internal set; }
 16385
 16386        /// <summary>
 16387        /// PublicAccess
 16388        /// </summary>
 16389        public Azure.Storage.Blobs.Models.PublicAccessType? PublicAccess { get; internal set; }
 16390
 16391        /// <summary>
 16392        /// HasImmutabilityPolicy
 16393        /// </summary>
 16394        public bool? HasImmutabilityPolicy { get; internal set; }
 16395
 16396        /// <summary>
 16397        /// HasLegalHold
 16398        /// </summary>
 16399        public bool? HasLegalHold { get; internal set; }
 16400
 16401        /// <summary>
 16402        /// DefaultEncryptionScope
 16403        /// </summary>
 16404        public string DefaultEncryptionScope { get; internal set; }
 16405
 16406        /// <summary>
 16407        /// DenyEncryptionScopeOverride
 16408        /// </summary>
 16409        public bool? PreventEncryptionScopeOverride { get; internal set; }
 16410
 16411        /// <summary>
 16412        /// DeletedTime
 16413        /// </summary>
 16414        public System.DateTimeOffset? DeletedOn { get; internal set; }
 16415
 16416        /// <summary>
 16417        /// RemainingRetentionDays
 16418        /// </summary>
 16419        public int? RemainingRetentionDays { get; internal set; }
 16420
 16421        /// <summary>
 16422        /// ETag
 16423        /// </summary>
 16424        public Azure.ETag ETag { get; internal set; }
 16425
 16426        /// <summary>
 16427        /// Metadata
 16428        /// </summary>
 16429        public System.Collections.Generic.IDictionary<string, string> Metadata { get; internal set; }
 16430
 16431        /// <summary>
 16432        /// Creates a new BlobContainerProperties instance
 16433        /// </summary>
 16434        internal BlobContainerProperties()
 16435            : this(false)
 16436        {
 16437        }
 16438
 16439        /// <summary>
 16440        /// Creates a new BlobContainerProperties instance
 16441        /// </summary>
 16442        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 16443        internal BlobContainerProperties(bool skipInitialization)
 16444        {
 16445            if (!skipInitialization)
 16446            {
 16447                Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringComparer.OrdinalIgnore
 16448            }
 16449        }
 16450
 16451        /// <summary>
 16452        /// Deserializes XML into a new BlobContainerProperties instance.
 16453        /// </summary>
 16454        /// <param name="element">The XML element to deserialize.</param>
 16455        /// <returns>A deserialized BlobContainerProperties instance.</returns>
 16456        internal static Azure.Storage.Blobs.Models.BlobContainerProperties FromXml(System.Xml.Linq.XElement element)
 16457        {
 16458            System.Diagnostics.Debug.Assert(element != null);
 16459            System.Xml.Linq.XElement _child;
 16460            Azure.Storage.Blobs.Models.BlobContainerProperties _value = new Azure.Storage.Blobs.Models.BlobContainerProp
 16461            _child = element.Element(System.Xml.Linq.XName.Get("Last-Modified", ""));
 16462            if (_child != null)
 16463            {
 16464                _value.LastModified = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.Invaria
 16465            }
 16466            _child = element.Element(System.Xml.Linq.XName.Get("LeaseStatus", ""));
 16467            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 16468            {
 16469                _value.LeaseStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseStatus(_child.Value);
 16470            }
 16471            _child = element.Element(System.Xml.Linq.XName.Get("LeaseState", ""));
 16472            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 16473            {
 16474                _value.LeaseState = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseState(_child.Value);
 16475            }
 16476            _child = element.Element(System.Xml.Linq.XName.Get("LeaseDuration", ""));
 16477            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 16478            {
 16479                _value.LeaseDuration = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseDurationType(_child.Va
 16480            }
 16481            _child = element.Element(System.Xml.Linq.XName.Get("PublicAccess", ""));
 16482            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 16483            {
 16484                _value.PublicAccess = Azure.Storage.Blobs.BlobRestClient.Serialization.ParsePublicAccessType(_child?.Val
 16485            }
 16486            _child = element.Element(System.Xml.Linq.XName.Get("HasImmutabilityPolicy", ""));
 16487            if (_child != null)
 16488            {
 16489                _value.HasImmutabilityPolicy = bool.Parse(_child.Value);
 16490            }
 16491            _child = element.Element(System.Xml.Linq.XName.Get("HasLegalHold", ""));
 16492            if (_child != null)
 16493            {
 16494                _value.HasLegalHold = bool.Parse(_child.Value);
 16495            }
 16496            _child = element.Element(System.Xml.Linq.XName.Get("DefaultEncryptionScope", ""));
 16497            if (_child != null)
 16498            {
 16499                _value.DefaultEncryptionScope = _child.Value;
 16500            }
 16501            _child = element.Element(System.Xml.Linq.XName.Get("DenyEncryptionScopeOverride", ""));
 16502            if (_child != null)
 16503            {
 16504                _value.PreventEncryptionScopeOverride = bool.Parse(_child.Value);
 16505            }
 16506            _child = element.Element(System.Xml.Linq.XName.Get("DeletedTime", ""));
 16507            if (_child != null)
 16508            {
 16509                _value.DeletedOn = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.InvariantC
 16510            }
 16511            _child = element.Element(System.Xml.Linq.XName.Get("RemainingRetentionDays", ""));
 16512            if (_child != null)
 16513            {
 16514                _value.RemainingRetentionDays = int.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCultur
 16515            }
 16516            _child = element.Element(System.Xml.Linq.XName.Get("Etag", ""));
 16517            if (_child != null)
 16518            {
 16519                _value.ETag = new Azure.ETag(_child.Value);
 16520            }
 16521            _value.Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringComparer.OrdinalIgn
 16522            _child = element.Element(System.Xml.Linq.XName.Get("Metadata", ""));
 16523            if (_child != null)
 16524            {
 16525                foreach (System.Xml.Linq.XElement _pair in _child.Elements())
 16526                {
 16527                    _value.Metadata[_pair.Name.LocalName] = _pair.Value;
 16528                }
 16529            }
 16530            CustomizeFromXml(element, _value);
 16531            return _value;
 16532        }
 16533
 16534        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobContainerP
 16535    }
 16536
 16537    /// <summary>
 16538    /// BlobsModelFactory provides utilities for mocking.
 16539    /// </summary>
 16540    public static partial class BlobsModelFactory
 16541    {
 16542        /// <summary>
 16543        /// Creates a new BlobContainerProperties instance for mocking.
 16544        /// </summary>
 16545        public static BlobContainerProperties BlobContainerProperties(
 16546            System.DateTimeOffset lastModified,
 16547            Azure.ETag eTag,
 16548            Azure.Storage.Blobs.Models.LeaseState? leaseState = default,
 16549            Azure.Storage.Blobs.Models.LeaseDurationType? leaseDuration = default,
 16550            Azure.Storage.Blobs.Models.PublicAccessType? publicAccess = default,
 16551            bool? hasImmutabilityPolicy = default,
 16552            Azure.Storage.Blobs.Models.LeaseStatus? leaseStatus = default,
 16553            string defaultEncryptionScope = default,
 16554            bool? preventEncryptionScopeOverride = default,
 16555            System.DateTimeOffset? deletedOn = default,
 16556            int? remainingRetentionDays = default,
 16557            System.Collections.Generic.IDictionary<string, string> metadata = default,
 16558            bool? hasLegalHold = default)
 16559        {
 16560            return new BlobContainerProperties()
 16561            {
 16562                LastModified = lastModified,
 16563                ETag = eTag,
 16564                LeaseState = leaseState,
 16565                LeaseDuration = leaseDuration,
 16566                PublicAccess = publicAccess,
 16567                HasImmutabilityPolicy = hasImmutabilityPolicy,
 16568                LeaseStatus = leaseStatus,
 16569                DefaultEncryptionScope = defaultEncryptionScope,
 16570                PreventEncryptionScopeOverride = preventEncryptionScopeOverride,
 16571                DeletedOn = deletedOn,
 16572                RemainingRetentionDays = remainingRetentionDays,
 16573                Metadata = metadata,
 16574                HasLegalHold = hasLegalHold,
 16575            };
 16576        }
 16577    }
 16578}
 16579#endregion class BlobContainerProperties
 16580
 16581#region class BlobContainersSegment
 16582namespace Azure.Storage.Blobs.Models
 16583{
 16584    /// <summary>
 16585    /// An enumeration of containers
 16586    /// </summary>
 16587    internal partial class BlobContainersSegment
 16588    {
 16589        /// <summary>
 16590        /// ServiceEndpoint
 16591        /// </summary>
 16592        public string ServiceEndpoint { get; internal set; }
 16593
 16594        /// <summary>
 16595        /// Prefix
 16596        /// </summary>
 16597        public string Prefix { get; internal set; }
 16598
 16599        /// <summary>
 16600        /// Marker
 16601        /// </summary>
 16602        public string Marker { get; internal set; }
 16603
 16604        /// <summary>
 16605        /// MaxResults
 16606        /// </summary>
 16607        public int? MaxResults { get; internal set; }
 16608
 16609        /// <summary>
 16610        /// NextMarker
 16611        /// </summary>
 16612        public string NextMarker { get; internal set; }
 16613
 16614        /// <summary>
 16615        /// BlobContainerItems
 16616        /// </summary>
 16617        public System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobContainerItem> BlobContainerItems {
 16618
 16619        /// <summary>
 16620        /// Creates a new BlobContainersSegment instance
 16621        /// </summary>
 16622        public BlobContainersSegment()
 16623            : this(false)
 16624        {
 16625        }
 16626
 16627        /// <summary>
 16628        /// Creates a new BlobContainersSegment instance
 16629        /// </summary>
 16630        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 16631        internal BlobContainersSegment(bool skipInitialization)
 16632        {
 16633            if (!skipInitialization)
 16634            {
 16635                BlobContainerItems = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobContainerItem>()
 16636            }
 16637        }
 16638
 16639        /// <summary>
 16640        /// Deserializes XML into a new BlobContainersSegment instance.
 16641        /// </summary>
 16642        /// <param name="element">The XML element to deserialize.</param>
 16643        /// <returns>A deserialized BlobContainersSegment instance.</returns>
 16644        internal static Azure.Storage.Blobs.Models.BlobContainersSegment FromXml(System.Xml.Linq.XElement element)
 16645        {
 16646            System.Diagnostics.Debug.Assert(element != null);
 16647            System.Xml.Linq.XElement _child;
 16648            System.Xml.Linq.XAttribute _attribute;
 16649            Azure.Storage.Blobs.Models.BlobContainersSegment _value = new Azure.Storage.Blobs.Models.BlobContainersSegme
 16650            _attribute = element.Attribute(System.Xml.Linq.XName.Get("ServiceEndpoint", ""));
 16651            if (_attribute != null)
 16652            {
 16653                _value.ServiceEndpoint = _attribute.Value;
 16654            }
 16655            _child = element.Element(System.Xml.Linq.XName.Get("Prefix", ""));
 16656            if (_child != null)
 16657            {
 16658                _value.Prefix = _child.Value;
 16659            }
 16660            _child = element.Element(System.Xml.Linq.XName.Get("Marker", ""));
 16661            if (_child != null)
 16662            {
 16663                _value.Marker = _child.Value;
 16664            }
 16665            _child = element.Element(System.Xml.Linq.XName.Get("MaxResults", ""));
 16666            if (_child != null)
 16667            {
 16668                _value.MaxResults = int.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 16669            }
 16670            _child = element.Element(System.Xml.Linq.XName.Get("NextMarker", ""));
 16671            if (_child != null)
 16672            {
 16673                _value.NextMarker = _child.Value;
 16674            }
 16675            _child = element.Element(System.Xml.Linq.XName.Get("Containers", ""));
 16676            if (_child != null)
 16677            {
 16678                _value.BlobContainerItems = System.Linq.Enumerable.ToList(
 16679                    System.Linq.Enumerable.Select(
 16680                        _child.Elements(System.Xml.Linq.XName.Get("Container", "")),
 16681                        e => Azure.Storage.Blobs.Models.BlobContainerItem.FromXml(e)));
 16682            }
 16683            else
 16684            {
 16685                _value.BlobContainerItems = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobContainer
 16686            }
 16687            CustomizeFromXml(element, _value);
 16688            return _value;
 16689        }
 16690
 16691        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobContainers
 16692    }
 16693}
 16694#endregion class BlobContainersSegment
 16695
 16696#region class BlobContentInfo
 16697namespace Azure.Storage.Blobs.Models
 16698{
 16699    /// <summary>
 16700    /// BlobContentInfo
 16701    /// </summary>
 16702    public partial class BlobContentInfo
 16703    {
 16704        /// <summary>
 16705        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 16706        /// </summary>
 16707        public Azure.ETag ETag { get; internal set; }
 16708
 16709        /// <summary>
 16710        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 16711        /// </summary>
 16712        public System.DateTimeOffset LastModified { get; internal set; }
 16713
 16714        /// <summary>
 16715        /// If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so
 16716        /// </summary>
 16717        #pragma warning disable CA1819 // Properties should not return arrays
 16718        public byte[] ContentHash { get; internal set; }
 16719        #pragma warning restore CA1819 // Properties should not return arrays
 16720
 16721        /// <summary>
 16722        /// A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicat
 16723        /// </summary>
 16724        public string VersionId { get; internal set; }
 16725
 16726        /// <summary>
 16727        /// The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob 
 16728        /// </summary>
 16729        public string EncryptionKeySha256 { get; internal set; }
 16730
 16731        /// <summary>
 16732        /// Returns the name of the encryption scope used to encrypt the blob contents and application metadata.  Note t
 16733        /// </summary>
 16734        public string EncryptionScope { get; internal set; }
 16735
 16736        /// <summary>
 16737        /// The current sequence number for the page blob.  This is only returned for page blobs.
 16738        /// </summary>
 16739        public long BlobSequenceNumber { get; internal set; }
 16740
 16741        /// <summary>
 16742        /// Prevent direct instantiation of BlobContentInfo instances.
 16743        /// You can use BlobsModelFactory.BlobContentInfo instead.
 16744        /// </summary>
 16745        internal BlobContentInfo() { }
 16746    }
 16747
 16748    /// <summary>
 16749    /// BlobsModelFactory provides utilities for mocking.
 16750    /// </summary>
 16751    public static partial class BlobsModelFactory
 16752    {
 16753        /// <summary>
 16754        /// Creates a new BlobContentInfo instance for mocking.
 16755        /// </summary>
 16756        public static BlobContentInfo BlobContentInfo(
 16757            Azure.ETag eTag,
 16758            System.DateTimeOffset lastModified,
 16759            byte[] contentHash,
 16760            string versionId,
 16761            string encryptionKeySha256,
 16762            string encryptionScope,
 16763            long blobSequenceNumber)
 16764        {
 16765            return new BlobContentInfo()
 16766            {
 16767                ETag = eTag,
 16768                LastModified = lastModified,
 16769                ContentHash = contentHash,
 16770                VersionId = versionId,
 16771                EncryptionKeySha256 = encryptionKeySha256,
 16772                EncryptionScope = encryptionScope,
 16773                BlobSequenceNumber = blobSequenceNumber,
 16774            };
 16775        }
 16776    }
 16777}
 16778#endregion class BlobContentInfo
 16779
 16780#region class BlobCopyInfo
 16781namespace Azure.Storage.Blobs.Models
 16782{
 16783    /// <summary>
 16784    /// BlobCopyInfo
 16785    /// </summary>
 16786    public partial class BlobCopyInfo
 16787    {
 16788        /// <summary>
 16789        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 16790        /// </summary>
 16791        public Azure.ETag ETag { get; internal set; }
 16792
 16793        /// <summary>
 16794        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 16795        /// </summary>
 16796        public System.DateTimeOffset LastModified { get; internal set; }
 16797
 16798        /// <summary>
 16799        /// A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicat
 16800        /// </summary>
 16801        public string VersionId { get; internal set; }
 16802
 16803        /// <summary>
 16804        /// String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy ope
 16805        /// </summary>
 16806        public string CopyId { get; internal set; }
 16807
 16808        /// <summary>
 16809        /// State of the copy operation identified by x-ms-copy-id.
 16810        /// </summary>
 16811        public Azure.Storage.Blobs.Models.CopyStatus CopyStatus { get; internal set; }
 16812
 16813        /// <summary>
 16814        /// Prevent direct instantiation of BlobCopyInfo instances.
 16815        /// You can use BlobsModelFactory.BlobCopyInfo instead.
 16816        /// </summary>
 16817        internal BlobCopyInfo() { }
 16818    }
 16819
 16820    /// <summary>
 16821    /// BlobsModelFactory provides utilities for mocking.
 16822    /// </summary>
 16823    public static partial class BlobsModelFactory
 16824    {
 16825        /// <summary>
 16826        /// Creates a new BlobCopyInfo instance for mocking.
 16827        /// </summary>
 16828        public static BlobCopyInfo BlobCopyInfo(
 16829            Azure.ETag eTag,
 16830            System.DateTimeOffset lastModified,
 16831            string versionId,
 16832            string copyId,
 16833            Azure.Storage.Blobs.Models.CopyStatus copyStatus)
 16834        {
 16835            return new BlobCopyInfo()
 16836            {
 16837                ETag = eTag,
 16838                LastModified = lastModified,
 16839                VersionId = versionId,
 16840                CopyId = copyId,
 16841                CopyStatus = copyStatus,
 16842            };
 16843        }
 16844    }
 16845}
 16846#endregion class BlobCopyInfo
 16847
 16848#region class BlobCorsRule
 16849namespace Azure.Storage.Blobs.Models
 16850{
 16851    /// <summary>
 16852    /// CORS is an HTTP feature that enables a web application running under one domain to access resources in another d
 16853    /// </summary>
 16854    public partial class BlobCorsRule
 16855    {
 16856        /// <summary>
 16857        /// The origin domains that are permitted to make a request against the storage service via CORS. The origin dom
 16858        /// </summary>
 16859        public string AllowedOrigins { get; set; }
 16860
 16861        /// <summary>
 16862        /// The methods (HTTP request verbs) that the origin domain may use for a CORS request. (comma separated)
 16863        /// </summary>
 16864        public string AllowedMethods { get; set; }
 16865
 16866        /// <summary>
 16867        /// the request headers that the origin domain may specify on the CORS request.
 16868        /// </summary>
 16869        public string AllowedHeaders { get; set; }
 16870
 16871        /// <summary>
 16872        /// The response headers that may be sent in the response to the CORS request and exposed by the browser to the 
 16873        /// </summary>
 16874        public string ExposedHeaders { get; set; }
 16875
 16876        /// <summary>
 16877        /// The maximum amount time that a browser should cache the preflight OPTIONS request.
 16878        /// </summary>
 16879        public int MaxAgeInSeconds { get; set; }
 16880
 16881        /// <summary>
 16882        /// Creates a new BlobCorsRule instance
 16883        /// </summary>
 16884        public BlobCorsRule() { }
 16885
 16886        /// <summary>
 16887        /// Serialize a BlobCorsRule instance as XML.
 16888        /// </summary>
 16889        /// <param name="value">The BlobCorsRule instance to serialize.</param>
 16890        /// <param name="name">An optional name to use for the root element instead of "CorsRule".</param>
 16891        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 16892        /// <returns>The serialized XML element.</returns>
 16893        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.BlobCorsRule value, string name = "Cor
 16894        {
 16895            System.Diagnostics.Debug.Assert(value != null);
 16896            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 16897            _element.Add(new System.Xml.Linq.XElement(
 16898                System.Xml.Linq.XName.Get("AllowedOrigins", ""),
 16899                value.AllowedOrigins));
 16900            _element.Add(new System.Xml.Linq.XElement(
 16901                System.Xml.Linq.XName.Get("AllowedMethods", ""),
 16902                value.AllowedMethods));
 16903            _element.Add(new System.Xml.Linq.XElement(
 16904                System.Xml.Linq.XName.Get("AllowedHeaders", ""),
 16905                value.AllowedHeaders));
 16906            _element.Add(new System.Xml.Linq.XElement(
 16907                System.Xml.Linq.XName.Get("ExposedHeaders", ""),
 16908                value.ExposedHeaders));
 16909            _element.Add(new System.Xml.Linq.XElement(
 16910                System.Xml.Linq.XName.Get("MaxAgeInSeconds", ""),
 16911                value.MaxAgeInSeconds.ToString(System.Globalization.CultureInfo.InvariantCulture)));
 16912            return _element;
 16913        }
 16914
 16915        /// <summary>
 16916        /// Deserializes XML into a new BlobCorsRule instance.
 16917        /// </summary>
 16918        /// <param name="element">The XML element to deserialize.</param>
 16919        /// <returns>A deserialized BlobCorsRule instance.</returns>
 16920        internal static Azure.Storage.Blobs.Models.BlobCorsRule FromXml(System.Xml.Linq.XElement element)
 16921        {
 16922            System.Diagnostics.Debug.Assert(element != null);
 16923            System.Xml.Linq.XElement _child;
 16924            Azure.Storage.Blobs.Models.BlobCorsRule _value = new Azure.Storage.Blobs.Models.BlobCorsRule();
 16925            _child = element.Element(System.Xml.Linq.XName.Get("AllowedOrigins", ""));
 16926            if (_child != null)
 16927            {
 16928                _value.AllowedOrigins = _child.Value;
 16929            }
 16930            _child = element.Element(System.Xml.Linq.XName.Get("AllowedMethods", ""));
 16931            if (_child != null)
 16932            {
 16933                _value.AllowedMethods = _child.Value;
 16934            }
 16935            _child = element.Element(System.Xml.Linq.XName.Get("AllowedHeaders", ""));
 16936            if (_child != null)
 16937            {
 16938                _value.AllowedHeaders = _child.Value;
 16939            }
 16940            _child = element.Element(System.Xml.Linq.XName.Get("ExposedHeaders", ""));
 16941            if (_child != null)
 16942            {
 16943                _value.ExposedHeaders = _child.Value;
 16944            }
 16945            _child = element.Element(System.Xml.Linq.XName.Get("MaxAgeInSeconds", ""));
 16946            if (_child != null)
 16947            {
 16948                _value.MaxAgeInSeconds = int.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 16949            }
 16950            CustomizeFromXml(element, _value);
 16951            return _value;
 16952        }
 16953
 16954        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobCorsRule v
 16955    }
 16956}
 16957#endregion class BlobCorsRule
 16958
 16959#region enum strings BlobErrorCode
 16960namespace Azure.Storage.Blobs.Models
 16961{
 16962    /// <summary>
 16963    /// Error codes returned by the service
 16964    /// </summary>
 16965    public readonly struct BlobErrorCode : System.IEquatable<BlobErrorCode>
 16966    {
 16967        /// <summary>
 16968        /// The BlobErrorCode value.
 16969        /// </summary>
 16970        private readonly string _value;
 16971
 16972        /// <summary>
 16973        /// Initializes a new instance of the <see cref="BlobErrorCode"/> structure.
 16974        /// </summary>
 16975        /// <param name="value">The string value of the instance.</param>
 16976        public BlobErrorCode(string value) { _value = value ?? throw new System.ArgumentNullException(nameof(value)); }
 16977
 16978        /// <summary>
 16979        /// AccountAlreadyExists
 16980        /// </summary>
 16981        public static Azure.Storage.Blobs.Models.BlobErrorCode AccountAlreadyExists { get; } = new BlobErrorCode(@"Accou
 16982
 16983        /// <summary>
 16984        /// AccountBeingCreated
 16985        /// </summary>
 16986        public static Azure.Storage.Blobs.Models.BlobErrorCode AccountBeingCreated { get; } = new BlobErrorCode(@"Accoun
 16987
 16988        /// <summary>
 16989        /// AccountIsDisabled
 16990        /// </summary>
 16991        public static Azure.Storage.Blobs.Models.BlobErrorCode AccountIsDisabled { get; } = new BlobErrorCode(@"AccountI
 16992
 16993        /// <summary>
 16994        /// AuthenticationFailed
 16995        /// </summary>
 16996        public static Azure.Storage.Blobs.Models.BlobErrorCode AuthenticationFailed { get; } = new BlobErrorCode(@"Authe
 16997
 16998        /// <summary>
 16999        /// AuthorizationFailure
 17000        /// </summary>
 17001        public static Azure.Storage.Blobs.Models.BlobErrorCode AuthorizationFailure { get; } = new BlobErrorCode(@"Autho
 17002
 17003        /// <summary>
 17004        /// ConditionHeadersNotSupported
 17005        /// </summary>
 17006        public static Azure.Storage.Blobs.Models.BlobErrorCode ConditionHeadersNotSupported { get; } = new BlobErrorCode
 17007
 17008        /// <summary>
 17009        /// ConditionNotMet
 17010        /// </summary>
 17011        public static Azure.Storage.Blobs.Models.BlobErrorCode ConditionNotMet { get; } = new BlobErrorCode(@"ConditionN
 17012
 17013        /// <summary>
 17014        /// EmptyMetadataKey
 17015        /// </summary>
 17016        public static Azure.Storage.Blobs.Models.BlobErrorCode EmptyMetadataKey { get; } = new BlobErrorCode(@"EmptyMeta
 17017
 17018        /// <summary>
 17019        /// InsufficientAccountPermissions
 17020        /// </summary>
 17021        public static Azure.Storage.Blobs.Models.BlobErrorCode InsufficientAccountPermissions { get; } = new BlobErrorCo
 17022
 17023        /// <summary>
 17024        /// InternalError
 17025        /// </summary>
 17026        public static Azure.Storage.Blobs.Models.BlobErrorCode InternalError { get; } = new BlobErrorCode(@"InternalErro
 17027
 17028        /// <summary>
 17029        /// InvalidAuthenticationInfo
 17030        /// </summary>
 17031        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidAuthenticationInfo { get; } = new BlobErrorCode(@"
 17032
 17033        /// <summary>
 17034        /// InvalidHeaderValue
 17035        /// </summary>
 17036        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidHeaderValue { get; } = new BlobErrorCode(@"Invalid
 17037
 17038        /// <summary>
 17039        /// InvalidHttpVerb
 17040        /// </summary>
 17041        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidHttpVerb { get; } = new BlobErrorCode(@"InvalidHtt
 17042
 17043        /// <summary>
 17044        /// InvalidInput
 17045        /// </summary>
 17046        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidInput { get; } = new BlobErrorCode(@"InvalidInput"
 17047
 17048        /// <summary>
 17049        /// InvalidMd5
 17050        /// </summary>
 17051        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidMd5 { get; } = new BlobErrorCode(@"InvalidMd5");
 17052
 17053        /// <summary>
 17054        /// InvalidMetadata
 17055        /// </summary>
 17056        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidMetadata { get; } = new BlobErrorCode(@"InvalidMet
 17057
 17058        /// <summary>
 17059        /// InvalidQueryParameterValue
 17060        /// </summary>
 17061        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidQueryParameterValue { get; } = new BlobErrorCode(@
 17062
 17063        /// <summary>
 17064        /// InvalidRange
 17065        /// </summary>
 17066        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidRange { get; } = new BlobErrorCode(@"InvalidRange"
 17067
 17068        /// <summary>
 17069        /// InvalidResourceName
 17070        /// </summary>
 17071        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidResourceName { get; } = new BlobErrorCode(@"Invali
 17072
 17073        /// <summary>
 17074        /// InvalidUri
 17075        /// </summary>
 17076        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidUri { get; } = new BlobErrorCode(@"InvalidUri");
 17077
 17078        /// <summary>
 17079        /// InvalidXmlDocument
 17080        /// </summary>
 17081        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidXmlDocument { get; } = new BlobErrorCode(@"Invalid
 17082
 17083        /// <summary>
 17084        /// InvalidXmlNodeValue
 17085        /// </summary>
 17086        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidXmlNodeValue { get; } = new BlobErrorCode(@"Invali
 17087
 17088        /// <summary>
 17089        /// Md5Mismatch
 17090        /// </summary>
 17091        public static Azure.Storage.Blobs.Models.BlobErrorCode Md5Mismatch { get; } = new BlobErrorCode(@"Md5Mismatch");
 17092
 17093        /// <summary>
 17094        /// MetadataTooLarge
 17095        /// </summary>
 17096        public static Azure.Storage.Blobs.Models.BlobErrorCode MetadataTooLarge { get; } = new BlobErrorCode(@"MetadataT
 17097
 17098        /// <summary>
 17099        /// MissingContentLengthHeader
 17100        /// </summary>
 17101        public static Azure.Storage.Blobs.Models.BlobErrorCode MissingContentLengthHeader { get; } = new BlobErrorCode(@
 17102
 17103        /// <summary>
 17104        /// MissingRequiredQueryParameter
 17105        /// </summary>
 17106        public static Azure.Storage.Blobs.Models.BlobErrorCode MissingRequiredQueryParameter { get; } = new BlobErrorCod
 17107
 17108        /// <summary>
 17109        /// MissingRequiredHeader
 17110        /// </summary>
 17111        public static Azure.Storage.Blobs.Models.BlobErrorCode MissingRequiredHeader { get; } = new BlobErrorCode(@"Miss
 17112
 17113        /// <summary>
 17114        /// MissingRequiredXmlNode
 17115        /// </summary>
 17116        public static Azure.Storage.Blobs.Models.BlobErrorCode MissingRequiredXmlNode { get; } = new BlobErrorCode(@"Mis
 17117
 17118        /// <summary>
 17119        /// MultipleConditionHeadersNotSupported
 17120        /// </summary>
 17121        public static Azure.Storage.Blobs.Models.BlobErrorCode MultipleConditionHeadersNotSupported { get; } = new BlobE
 17122
 17123        /// <summary>
 17124        /// OperationTimedOut
 17125        /// </summary>
 17126        public static Azure.Storage.Blobs.Models.BlobErrorCode OperationTimedOut { get; } = new BlobErrorCode(@"Operatio
 17127
 17128        /// <summary>
 17129        /// OutOfRangeInput
 17130        /// </summary>
 17131        public static Azure.Storage.Blobs.Models.BlobErrorCode OutOfRangeInput { get; } = new BlobErrorCode(@"OutOfRange
 17132
 17133        /// <summary>
 17134        /// OutOfRangeQueryParameterValue
 17135        /// </summary>
 17136        public static Azure.Storage.Blobs.Models.BlobErrorCode OutOfRangeQueryParameterValue { get; } = new BlobErrorCod
 17137
 17138        /// <summary>
 17139        /// RequestBodyTooLarge
 17140        /// </summary>
 17141        public static Azure.Storage.Blobs.Models.BlobErrorCode RequestBodyTooLarge { get; } = new BlobErrorCode(@"Reques
 17142
 17143        /// <summary>
 17144        /// ResourceTypeMismatch
 17145        /// </summary>
 17146        public static Azure.Storage.Blobs.Models.BlobErrorCode ResourceTypeMismatch { get; } = new BlobErrorCode(@"Resou
 17147
 17148        /// <summary>
 17149        /// RequestUrlFailedToParse
 17150        /// </summary>
 17151        public static Azure.Storage.Blobs.Models.BlobErrorCode RequestUrlFailedToParse { get; } = new BlobErrorCode(@"Re
 17152
 17153        /// <summary>
 17154        /// ResourceAlreadyExists
 17155        /// </summary>
 17156        public static Azure.Storage.Blobs.Models.BlobErrorCode ResourceAlreadyExists { get; } = new BlobErrorCode(@"Reso
 17157
 17158        /// <summary>
 17159        /// ResourceNotFound
 17160        /// </summary>
 17161        public static Azure.Storage.Blobs.Models.BlobErrorCode ResourceNotFound { get; } = new BlobErrorCode(@"ResourceN
 17162
 17163        /// <summary>
 17164        /// ServerBusy
 17165        /// </summary>
 17166        public static Azure.Storage.Blobs.Models.BlobErrorCode ServerBusy { get; } = new BlobErrorCode(@"ServerBusy");
 17167
 17168        /// <summary>
 17169        /// UnsupportedHeader
 17170        /// </summary>
 17171        public static Azure.Storage.Blobs.Models.BlobErrorCode UnsupportedHeader { get; } = new BlobErrorCode(@"Unsuppor
 17172
 17173        /// <summary>
 17174        /// UnsupportedXmlNode
 17175        /// </summary>
 17176        public static Azure.Storage.Blobs.Models.BlobErrorCode UnsupportedXmlNode { get; } = new BlobErrorCode(@"Unsuppo
 17177
 17178        /// <summary>
 17179        /// UnsupportedQueryParameter
 17180        /// </summary>
 17181        public static Azure.Storage.Blobs.Models.BlobErrorCode UnsupportedQueryParameter { get; } = new BlobErrorCode(@"
 17182
 17183        /// <summary>
 17184        /// UnsupportedHttpVerb
 17185        /// </summary>
 17186        public static Azure.Storage.Blobs.Models.BlobErrorCode UnsupportedHttpVerb { get; } = new BlobErrorCode(@"Unsupp
 17187
 17188        /// <summary>
 17189        /// AppendPositionConditionNotMet
 17190        /// </summary>
 17191        public static Azure.Storage.Blobs.Models.BlobErrorCode AppendPositionConditionNotMet { get; } = new BlobErrorCod
 17192
 17193        /// <summary>
 17194        /// BlobAlreadyExists
 17195        /// </summary>
 17196        public static Azure.Storage.Blobs.Models.BlobErrorCode BlobAlreadyExists { get; } = new BlobErrorCode(@"BlobAlre
 17197
 17198        /// <summary>
 17199        /// BlobNotFound
 17200        /// </summary>
 17201        public static Azure.Storage.Blobs.Models.BlobErrorCode BlobNotFound { get; } = new BlobErrorCode(@"BlobNotFound"
 17202
 17203        /// <summary>
 17204        /// BlobOverwritten
 17205        /// </summary>
 17206        public static Azure.Storage.Blobs.Models.BlobErrorCode BlobOverwritten { get; } = new BlobErrorCode(@"BlobOverwr
 17207
 17208        /// <summary>
 17209        /// BlobTierInadequateForContentLength
 17210        /// </summary>
 17211        public static Azure.Storage.Blobs.Models.BlobErrorCode BlobTierInadequateForContentLength { get; } = new BlobErr
 17212
 17213        /// <summary>
 17214        /// BlockCountExceedsLimit
 17215        /// </summary>
 17216        public static Azure.Storage.Blobs.Models.BlobErrorCode BlockCountExceedsLimit { get; } = new BlobErrorCode(@"Blo
 17217
 17218        /// <summary>
 17219        /// BlockListTooLong
 17220        /// </summary>
 17221        public static Azure.Storage.Blobs.Models.BlobErrorCode BlockListTooLong { get; } = new BlobErrorCode(@"BlockList
 17222
 17223        /// <summary>
 17224        /// CannotChangeToLowerTier
 17225        /// </summary>
 17226        public static Azure.Storage.Blobs.Models.BlobErrorCode CannotChangeToLowerTier { get; } = new BlobErrorCode(@"Ca
 17227
 17228        /// <summary>
 17229        /// CannotVerifyCopySource
 17230        /// </summary>
 17231        public static Azure.Storage.Blobs.Models.BlobErrorCode CannotVerifyCopySource { get; } = new BlobErrorCode(@"Can
 17232
 17233        /// <summary>
 17234        /// ContainerAlreadyExists
 17235        /// </summary>
 17236        public static Azure.Storage.Blobs.Models.BlobErrorCode ContainerAlreadyExists { get; } = new BlobErrorCode(@"Con
 17237
 17238        /// <summary>
 17239        /// ContainerBeingDeleted
 17240        /// </summary>
 17241        public static Azure.Storage.Blobs.Models.BlobErrorCode ContainerBeingDeleted { get; } = new BlobErrorCode(@"Cont
 17242
 17243        /// <summary>
 17244        /// ContainerDisabled
 17245        /// </summary>
 17246        public static Azure.Storage.Blobs.Models.BlobErrorCode ContainerDisabled { get; } = new BlobErrorCode(@"Containe
 17247
 17248        /// <summary>
 17249        /// ContainerNotFound
 17250        /// </summary>
 17251        public static Azure.Storage.Blobs.Models.BlobErrorCode ContainerNotFound { get; } = new BlobErrorCode(@"Containe
 17252
 17253        /// <summary>
 17254        /// ContentLengthLargerThanTierLimit
 17255        /// </summary>
 17256        public static Azure.Storage.Blobs.Models.BlobErrorCode ContentLengthLargerThanTierLimit { get; } = new BlobError
 17257
 17258        /// <summary>
 17259        /// CopyAcrossAccountsNotSupported
 17260        /// </summary>
 17261        public static Azure.Storage.Blobs.Models.BlobErrorCode CopyAcrossAccountsNotSupported { get; } = new BlobErrorCo
 17262
 17263        /// <summary>
 17264        /// CopyIdMismatch
 17265        /// </summary>
 17266        public static Azure.Storage.Blobs.Models.BlobErrorCode CopyIdMismatch { get; } = new BlobErrorCode(@"CopyIdMisma
 17267
 17268        /// <summary>
 17269        /// FeatureVersionMismatch
 17270        /// </summary>
 17271        public static Azure.Storage.Blobs.Models.BlobErrorCode FeatureVersionMismatch { get; } = new BlobErrorCode(@"Fea
 17272
 17273        /// <summary>
 17274        /// IncrementalCopyBlobMismatch
 17275        /// </summary>
 17276        public static Azure.Storage.Blobs.Models.BlobErrorCode IncrementalCopyBlobMismatch { get; } = new BlobErrorCode(
 17277
 17278        /// <summary>
 17279        /// IncrementalCopyOfEralierVersionSnapshotNotAllowed
 17280        /// </summary>
 17281        public static Azure.Storage.Blobs.Models.BlobErrorCode IncrementalCopyOfEralierVersionSnapshotNotAllowed { get; 
 17282
 17283        /// <summary>
 17284        /// IncrementalCopySourceMustBeSnapshot
 17285        /// </summary>
 17286        public static Azure.Storage.Blobs.Models.BlobErrorCode IncrementalCopySourceMustBeSnapshot { get; } = new BlobEr
 17287
 17288        /// <summary>
 17289        /// InfiniteLeaseDurationRequired
 17290        /// </summary>
 17291        public static Azure.Storage.Blobs.Models.BlobErrorCode InfiniteLeaseDurationRequired { get; } = new BlobErrorCod
 17292
 17293        /// <summary>
 17294        /// InvalidBlobOrBlock
 17295        /// </summary>
 17296        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidBlobOrBlock { get; } = new BlobErrorCode(@"Invalid
 17297
 17298        /// <summary>
 17299        /// InvalidBlobTier
 17300        /// </summary>
 17301        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidBlobTier { get; } = new BlobErrorCode(@"InvalidBlo
 17302
 17303        /// <summary>
 17304        /// InvalidBlobType
 17305        /// </summary>
 17306        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidBlobType { get; } = new BlobErrorCode(@"InvalidBlo
 17307
 17308        /// <summary>
 17309        /// InvalidBlockId
 17310        /// </summary>
 17311        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidBlockId { get; } = new BlobErrorCode(@"InvalidBloc
 17312
 17313        /// <summary>
 17314        /// InvalidBlockList
 17315        /// </summary>
 17316        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidBlockList { get; } = new BlobErrorCode(@"InvalidBl
 17317
 17318        /// <summary>
 17319        /// InvalidOperation
 17320        /// </summary>
 17321        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidOperation { get; } = new BlobErrorCode(@"InvalidOp
 17322
 17323        /// <summary>
 17324        /// InvalidPageRange
 17325        /// </summary>
 17326        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidPageRange { get; } = new BlobErrorCode(@"InvalidPa
 17327
 17328        /// <summary>
 17329        /// InvalidSourceBlobType
 17330        /// </summary>
 17331        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidSourceBlobType { get; } = new BlobErrorCode(@"Inva
 17332
 17333        /// <summary>
 17334        /// InvalidSourceBlobUrl
 17335        /// </summary>
 17336        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidSourceBlobUrl { get; } = new BlobErrorCode(@"Inval
 17337
 17338        /// <summary>
 17339        /// InvalidVersionForPageBlobOperation
 17340        /// </summary>
 17341        public static Azure.Storage.Blobs.Models.BlobErrorCode InvalidVersionForPageBlobOperation { get; } = new BlobErr
 17342
 17343        /// <summary>
 17344        /// LeaseAlreadyPresent
 17345        /// </summary>
 17346        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseAlreadyPresent { get; } = new BlobErrorCode(@"LeaseA
 17347
 17348        /// <summary>
 17349        /// LeaseAlreadyBroken
 17350        /// </summary>
 17351        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseAlreadyBroken { get; } = new BlobErrorCode(@"LeaseAl
 17352
 17353        /// <summary>
 17354        /// LeaseIdMismatchWithBlobOperation
 17355        /// </summary>
 17356        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseIdMismatchWithBlobOperation { get; } = new BlobError
 17357
 17358        /// <summary>
 17359        /// LeaseIdMismatchWithContainerOperation
 17360        /// </summary>
 17361        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseIdMismatchWithContainerOperation { get; } = new Blob
 17362
 17363        /// <summary>
 17364        /// LeaseIdMismatchWithLeaseOperation
 17365        /// </summary>
 17366        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseIdMismatchWithLeaseOperation { get; } = new BlobErro
 17367
 17368        /// <summary>
 17369        /// LeaseIdMissing
 17370        /// </summary>
 17371        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseIdMissing { get; } = new BlobErrorCode(@"LeaseIdMiss
 17372
 17373        /// <summary>
 17374        /// LeaseIsBreakingAndCannotBeAcquired
 17375        /// </summary>
 17376        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseIsBreakingAndCannotBeAcquired { get; } = new BlobErr
 17377
 17378        /// <summary>
 17379        /// LeaseIsBreakingAndCannotBeChanged
 17380        /// </summary>
 17381        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseIsBreakingAndCannotBeChanged { get; } = new BlobErro
 17382
 17383        /// <summary>
 17384        /// LeaseIsBrokenAndCannotBeRenewed
 17385        /// </summary>
 17386        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseIsBrokenAndCannotBeRenewed { get; } = new BlobErrorC
 17387
 17388        /// <summary>
 17389        /// LeaseLost
 17390        /// </summary>
 17391        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseLost { get; } = new BlobErrorCode(@"LeaseLost");
 17392
 17393        /// <summary>
 17394        /// LeaseNotPresentWithBlobOperation
 17395        /// </summary>
 17396        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseNotPresentWithBlobOperation { get; } = new BlobError
 17397
 17398        /// <summary>
 17399        /// LeaseNotPresentWithContainerOperation
 17400        /// </summary>
 17401        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseNotPresentWithContainerOperation { get; } = new Blob
 17402
 17403        /// <summary>
 17404        /// LeaseNotPresentWithLeaseOperation
 17405        /// </summary>
 17406        public static Azure.Storage.Blobs.Models.BlobErrorCode LeaseNotPresentWithLeaseOperation { get; } = new BlobErro
 17407
 17408        /// <summary>
 17409        /// MaxBlobSizeConditionNotMet
 17410        /// </summary>
 17411        public static Azure.Storage.Blobs.Models.BlobErrorCode MaxBlobSizeConditionNotMet { get; } = new BlobErrorCode(@
 17412
 17413        /// <summary>
 17414        /// NoAuthenticationInformation
 17415        /// </summary>
 17416        public static Azure.Storage.Blobs.Models.BlobErrorCode NoAuthenticationInformation { get; } = new BlobErrorCode(
 17417
 17418        /// <summary>
 17419        /// NoPendingCopyOperation
 17420        /// </summary>
 17421        public static Azure.Storage.Blobs.Models.BlobErrorCode NoPendingCopyOperation { get; } = new BlobErrorCode(@"NoP
 17422
 17423        /// <summary>
 17424        /// OperationNotAllowedOnIncrementalCopyBlob
 17425        /// </summary>
 17426        public static Azure.Storage.Blobs.Models.BlobErrorCode OperationNotAllowedOnIncrementalCopyBlob { get; } = new B
 17427
 17428        /// <summary>
 17429        /// PendingCopyOperation
 17430        /// </summary>
 17431        public static Azure.Storage.Blobs.Models.BlobErrorCode PendingCopyOperation { get; } = new BlobErrorCode(@"Pendi
 17432
 17433        /// <summary>
 17434        /// PreviousSnapshotCannotBeNewer
 17435        /// </summary>
 17436        public static Azure.Storage.Blobs.Models.BlobErrorCode PreviousSnapshotCannotBeNewer { get; } = new BlobErrorCod
 17437
 17438        /// <summary>
 17439        /// PreviousSnapshotNotFound
 17440        /// </summary>
 17441        public static Azure.Storage.Blobs.Models.BlobErrorCode PreviousSnapshotNotFound { get; } = new BlobErrorCode(@"P
 17442
 17443        /// <summary>
 17444        /// PreviousSnapshotOperationNotSupported
 17445        /// </summary>
 17446        public static Azure.Storage.Blobs.Models.BlobErrorCode PreviousSnapshotOperationNotSupported { get; } = new Blob
 17447
 17448        /// <summary>
 17449        /// SequenceNumberConditionNotMet
 17450        /// </summary>
 17451        public static Azure.Storage.Blobs.Models.BlobErrorCode SequenceNumberConditionNotMet { get; } = new BlobErrorCod
 17452
 17453        /// <summary>
 17454        /// SequenceNumberIncrementTooLarge
 17455        /// </summary>
 17456        public static Azure.Storage.Blobs.Models.BlobErrorCode SequenceNumberIncrementTooLarge { get; } = new BlobErrorC
 17457
 17458        /// <summary>
 17459        /// SnapshotCountExceeded
 17460        /// </summary>
 17461        public static Azure.Storage.Blobs.Models.BlobErrorCode SnapshotCountExceeded { get; } = new BlobErrorCode(@"Snap
 17462
 17463        /// <summary>
 17464        /// SnaphotOperationRateExceeded
 17465        /// </summary>
 17466        public static Azure.Storage.Blobs.Models.BlobErrorCode SnaphotOperationRateExceeded { get; } = new BlobErrorCode
 17467
 17468        /// <summary>
 17469        /// SnapshotsPresent
 17470        /// </summary>
 17471        public static Azure.Storage.Blobs.Models.BlobErrorCode SnapshotsPresent { get; } = new BlobErrorCode(@"Snapshots
 17472
 17473        /// <summary>
 17474        /// SourceConditionNotMet
 17475        /// </summary>
 17476        public static Azure.Storage.Blobs.Models.BlobErrorCode SourceConditionNotMet { get; } = new BlobErrorCode(@"Sour
 17477
 17478        /// <summary>
 17479        /// SystemInUse
 17480        /// </summary>
 17481        public static Azure.Storage.Blobs.Models.BlobErrorCode SystemInUse { get; } = new BlobErrorCode(@"SystemInUse");
 17482
 17483        /// <summary>
 17484        /// TargetConditionNotMet
 17485        /// </summary>
 17486        public static Azure.Storage.Blobs.Models.BlobErrorCode TargetConditionNotMet { get; } = new BlobErrorCode(@"Targ
 17487
 17488        /// <summary>
 17489        /// UnauthorizedBlobOverwrite
 17490        /// </summary>
 17491        public static Azure.Storage.Blobs.Models.BlobErrorCode UnauthorizedBlobOverwrite { get; } = new BlobErrorCode(@"
 17492
 17493        /// <summary>
 17494        /// BlobBeingRehydrated
 17495        /// </summary>
 17496        public static Azure.Storage.Blobs.Models.BlobErrorCode BlobBeingRehydrated { get; } = new BlobErrorCode(@"BlobBe
 17497
 17498        /// <summary>
 17499        /// BlobArchived
 17500        /// </summary>
 17501        public static Azure.Storage.Blobs.Models.BlobErrorCode BlobArchived { get; } = new BlobErrorCode(@"BlobArchived"
 17502
 17503        /// <summary>
 17504        /// BlobNotArchived
 17505        /// </summary>
 17506        public static Azure.Storage.Blobs.Models.BlobErrorCode BlobNotArchived { get; } = new BlobErrorCode(@"BlobNotArc
 17507
 17508        /// <summary>
 17509        /// AuthorizationSourceIPMismatch
 17510        /// </summary>
 17511        public static Azure.Storage.Blobs.Models.BlobErrorCode AuthorizationSourceIPMismatch { get; } = new BlobErrorCod
 17512
 17513        /// <summary>
 17514        /// AuthorizationProtocolMismatch
 17515        /// </summary>
 17516        public static Azure.Storage.Blobs.Models.BlobErrorCode AuthorizationProtocolMismatch { get; } = new BlobErrorCod
 17517
 17518        /// <summary>
 17519        /// AuthorizationPermissionMismatch
 17520        /// </summary>
 17521        public static Azure.Storage.Blobs.Models.BlobErrorCode AuthorizationPermissionMismatch { get; } = new BlobErrorC
 17522
 17523        /// <summary>
 17524        /// AuthorizationServiceMismatch
 17525        /// </summary>
 17526        public static Azure.Storage.Blobs.Models.BlobErrorCode AuthorizationServiceMismatch { get; } = new BlobErrorCode
 17527
 17528        /// <summary>
 17529        /// AuthorizationResourceTypeMismatch
 17530        /// </summary>
 17531        public static Azure.Storage.Blobs.Models.BlobErrorCode AuthorizationResourceTypeMismatch { get; } = new BlobErro
 17532
 17533        /// <summary>
 17534        /// Determines if two <see cref="BlobErrorCode"/> values are the same.
 17535        /// </summary>
 17536        /// <param name="left">The first <see cref="BlobErrorCode"/> to compare.</param>
 17537        /// <param name="right">The second <see cref="BlobErrorCode"/> to compare.</param>
 17538        /// <returns>True if <paramref name="left"/> and <paramref name="right"/> are the same; otherwise, false.</retur
 17539        public static bool operator ==(Azure.Storage.Blobs.Models.BlobErrorCode left, Azure.Storage.Blobs.Models.BlobErr
 17540
 17541        /// <summary>
 17542        /// Determines if two <see cref="BlobErrorCode"/> values are different.
 17543        /// </summary>
 17544        /// <param name="left">The first <see cref="BlobErrorCode"/> to compare.</param>
 17545        /// <param name="right">The second <see cref="BlobErrorCode"/> to compare.</param>
 17546        /// <returns>True if <paramref name="left"/> and <paramref name="right"/> are different; otherwise, false.</retu
 17547        public static bool operator !=(Azure.Storage.Blobs.Models.BlobErrorCode left, Azure.Storage.Blobs.Models.BlobErr
 17548
 17549        /// <summary>
 17550        /// Converts a string to a <see cref="BlobErrorCode"/>.
 17551        /// </summary>
 17552        /// <param name="value">The string value to convert.</param>
 17553        /// <returns>The BlobErrorCode value.</returns>
 17554        public static implicit operator BlobErrorCode(string value) => new Azure.Storage.Blobs.Models.BlobErrorCode(valu
 17555
 17556        /// <summary>
 17557        /// Check if two <see cref="BlobErrorCode"/> instances are equal.
 17558        /// </summary>
 17559        /// <param name="obj">The instance to compare to.</param>
 17560        /// <returns>True if they're equal, false otherwise.</returns>
 17561        [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
 17562        public override bool Equals(object obj) => obj is Azure.Storage.Blobs.Models.BlobErrorCode other && Equals(other
 17563
 17564        /// <summary>
 17565        /// Check if two <see cref="BlobErrorCode"/> instances are equal.
 17566        /// </summary>
 17567        /// <param name="other">The instance to compare to.</param>
 17568        /// <returns>True if they're equal, false otherwise.</returns>
 17569        public bool Equals(Azure.Storage.Blobs.Models.BlobErrorCode other) => string.Equals(_value, other._value, System
 17570
 17571        /// <summary>
 17572        /// Get a hash code for the <see cref="BlobErrorCode"/>.
 17573        /// </summary>
 17574        /// <returns>Hash code for the BlobErrorCode.</returns>
 17575        [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
 17576        public override int GetHashCode() => _value?.GetHashCode() ?? 0;
 17577
 17578        /// <summary>
 17579        /// Convert the <see cref="BlobErrorCode"/> to a string.
 17580        /// </summary>
 17581        /// <returns>String representation of the BlobErrorCode.</returns>
 17582        public override string ToString() => _value;
 17583    }
 17584}
 17585#endregion enum strings BlobErrorCode
 17586
 17587#region enum strings BlobExpiryOptions
 17588namespace Azure.Storage.Blobs.Models
 17589{
 17590    /// <summary>
 17591    /// Required. Indicates mode of the expiry time
 17592    /// </summary>
 17593    internal readonly struct BlobExpiryOptions : System.IEquatable<BlobExpiryOptions>
 17594    {
 17595        /// <summary>
 17596        /// The BlobExpiryOptions value.
 17597        /// </summary>
 17598        private readonly string _value;
 17599
 17600        /// <summary>
 17601        /// Initializes a new instance of the <see cref="BlobExpiryOptions"/> structure.
 17602        /// </summary>
 17603        /// <param name="value">The string value of the instance.</param>
 17604        public BlobExpiryOptions(string value) { _value = value ?? throw new System.ArgumentNullException(nameof(value))
 17605
 17606        /// <summary>
 17607        /// NeverExpire
 17608        /// </summary>
 17609        public static Azure.Storage.Blobs.Models.BlobExpiryOptions NeverExpire { get; } = new BlobExpiryOptions(@"NeverE
 17610
 17611        /// <summary>
 17612        /// RelativeToCreation
 17613        /// </summary>
 17614        public static Azure.Storage.Blobs.Models.BlobExpiryOptions RelativeToCreation { get; } = new BlobExpiryOptions(@
 17615
 17616        /// <summary>
 17617        /// RelativeToNow
 17618        /// </summary>
 17619        public static Azure.Storage.Blobs.Models.BlobExpiryOptions RelativeToNow { get; } = new BlobExpiryOptions(@"Rela
 17620
 17621        /// <summary>
 17622        /// Absolute
 17623        /// </summary>
 17624        public static Azure.Storage.Blobs.Models.BlobExpiryOptions Absolute { get; } = new BlobExpiryOptions(@"Absolute"
 17625
 17626        /// <summary>
 17627        /// Determines if two <see cref="BlobExpiryOptions"/> values are the same.
 17628        /// </summary>
 17629        /// <param name="left">The first <see cref="BlobExpiryOptions"/> to compare.</param>
 17630        /// <param name="right">The second <see cref="BlobExpiryOptions"/> to compare.</param>
 17631        /// <returns>True if <paramref name="left"/> and <paramref name="right"/> are the same; otherwise, false.</retur
 17632        public static bool operator ==(Azure.Storage.Blobs.Models.BlobExpiryOptions left, Azure.Storage.Blobs.Models.Blo
 17633
 17634        /// <summary>
 17635        /// Determines if two <see cref="BlobExpiryOptions"/> values are different.
 17636        /// </summary>
 17637        /// <param name="left">The first <see cref="BlobExpiryOptions"/> to compare.</param>
 17638        /// <param name="right">The second <see cref="BlobExpiryOptions"/> to compare.</param>
 17639        /// <returns>True if <paramref name="left"/> and <paramref name="right"/> are different; otherwise, false.</retu
 17640        public static bool operator !=(Azure.Storage.Blobs.Models.BlobExpiryOptions left, Azure.Storage.Blobs.Models.Blo
 17641
 17642        /// <summary>
 17643        /// Converts a string to a <see cref="BlobExpiryOptions"/>.
 17644        /// </summary>
 17645        /// <param name="value">The string value to convert.</param>
 17646        /// <returns>The BlobExpiryOptions value.</returns>
 17647        public static implicit operator BlobExpiryOptions(string value) => new Azure.Storage.Blobs.Models.BlobExpiryOpti
 17648
 17649        /// <summary>
 17650        /// Check if two <see cref="BlobExpiryOptions"/> instances are equal.
 17651        /// </summary>
 17652        /// <param name="obj">The instance to compare to.</param>
 17653        /// <returns>True if they're equal, false otherwise.</returns>
 17654        [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
 17655        public override bool Equals(object obj) => obj is Azure.Storage.Blobs.Models.BlobExpiryOptions other && Equals(o
 17656
 17657        /// <summary>
 17658        /// Check if two <see cref="BlobExpiryOptions"/> instances are equal.
 17659        /// </summary>
 17660        /// <param name="other">The instance to compare to.</param>
 17661        /// <returns>True if they're equal, false otherwise.</returns>
 17662        public bool Equals(Azure.Storage.Blobs.Models.BlobExpiryOptions other) => string.Equals(_value, other._value, Sy
 17663
 17664        /// <summary>
 17665        /// Get a hash code for the <see cref="BlobExpiryOptions"/>.
 17666        /// </summary>
 17667        /// <returns>Hash code for the BlobExpiryOptions.</returns>
 17668        [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
 17669        public override int GetHashCode() => _value?.GetHashCode() ?? 0;
 17670
 17671        /// <summary>
 17672        /// Convert the <see cref="BlobExpiryOptions"/> to a string.
 17673        /// </summary>
 17674        /// <returns>String representation of the BlobExpiryOptions.</returns>
 17675        public override string ToString() => _value;
 17676    }
 17677}
 17678#endregion enum strings BlobExpiryOptions
 17679
 17680#region class BlobGeoReplication
 17681namespace Azure.Storage.Blobs.Models
 17682{
 17683    /// <summary>
 17684    /// Geo-Replication information for the Secondary Storage Service
 17685    /// </summary>
 17686    public partial class BlobGeoReplication
 17687    {
 17688        /// <summary>
 17689        /// The status of the secondary location
 17690        /// </summary>
 17691        public Azure.Storage.Blobs.Models.BlobGeoReplicationStatus Status { get; internal set; }
 17692
 17693        /// <summary>
 17694        /// A GMT date/time value, to the second. All primary writes preceding this value are guaranteed to be available
 17695        /// </summary>
 17696        public System.DateTimeOffset? LastSyncedOn { get; internal set; }
 17697
 17698        /// <summary>
 17699        /// Prevent direct instantiation of BlobGeoReplication instances.
 17700        /// You can use BlobsModelFactory.BlobGeoReplication instead.
 17701        /// </summary>
 17702        internal BlobGeoReplication() { }
 17703
 17704        /// <summary>
 17705        /// Deserializes XML into a new BlobGeoReplication instance.
 17706        /// </summary>
 17707        /// <param name="element">The XML element to deserialize.</param>
 17708        /// <returns>A deserialized BlobGeoReplication instance.</returns>
 17709        internal static Azure.Storage.Blobs.Models.BlobGeoReplication FromXml(System.Xml.Linq.XElement element)
 17710        {
 17711            System.Diagnostics.Debug.Assert(element != null);
 17712            System.Xml.Linq.XElement _child;
 17713            Azure.Storage.Blobs.Models.BlobGeoReplication _value = new Azure.Storage.Blobs.Models.BlobGeoReplication();
 17714            _child = element.Element(System.Xml.Linq.XName.Get("Status", ""));
 17715            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 17716            {
 17717                _value.Status = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseBlobGeoReplicationStatus(_child.Va
 17718            }
 17719            _child = element.Element(System.Xml.Linq.XName.Get("LastSyncTime", ""));
 17720            if (_child != null)
 17721            {
 17722                _value.LastSyncedOn = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.Invaria
 17723            }
 17724            CustomizeFromXml(element, _value);
 17725            return _value;
 17726        }
 17727
 17728        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobGeoReplica
 17729    }
 17730
 17731    /// <summary>
 17732    /// BlobsModelFactory provides utilities for mocking.
 17733    /// </summary>
 17734    public static partial class BlobsModelFactory
 17735    {
 17736        /// <summary>
 17737        /// Creates a new BlobGeoReplication instance for mocking.
 17738        /// </summary>
 17739        public static BlobGeoReplication BlobGeoReplication(
 17740            Azure.Storage.Blobs.Models.BlobGeoReplicationStatus status,
 17741            System.DateTimeOffset? lastSyncedOn = default)
 17742        {
 17743            return new BlobGeoReplication()
 17744            {
 17745                Status = status,
 17746                LastSyncedOn = lastSyncedOn,
 17747            };
 17748        }
 17749    }
 17750}
 17751#endregion class BlobGeoReplication
 17752
 17753#region enum BlobGeoReplicationStatus
 17754namespace Azure.Storage.Blobs.Models
 17755{
 17756    /// <summary>
 17757    /// The status of the secondary location
 17758    /// </summary>
 17759    #pragma warning disable CA1717 // Only FlagsAttribute enums should have plural names
 17760    public enum BlobGeoReplicationStatus
 17761    #pragma warning restore CA1717 // Only FlagsAttribute enums should have plural names
 17762    {
 17763        /// <summary>
 17764        /// live
 17765        /// </summary>
 17766        Live,
 17767
 17768        /// <summary>
 17769        /// bootstrap
 17770        /// </summary>
 17771        Bootstrap,
 17772
 17773        /// <summary>
 17774        /// unavailable
 17775        /// </summary>
 17776        Unavailable
 17777    }
 17778}
 17779
 17780namespace Azure.Storage.Blobs
 17781{
 17782    internal static partial class BlobRestClient
 17783    {
 17784        public static partial class Serialization
 17785        {
 17786            public static string ToString(Azure.Storage.Blobs.Models.BlobGeoReplicationStatus value)
 17787            {
 17788                return value switch
 17789                {
 17790                    Azure.Storage.Blobs.Models.BlobGeoReplicationStatus.Live => "live",
 17791                    Azure.Storage.Blobs.Models.BlobGeoReplicationStatus.Bootstrap => "bootstrap",
 17792                    Azure.Storage.Blobs.Models.BlobGeoReplicationStatus.Unavailable => "unavailable",
 17793                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 17794                };
 17795            }
 17796
 17797            public static Azure.Storage.Blobs.Models.BlobGeoReplicationStatus ParseBlobGeoReplicationStatus(string value
 17798            {
 17799                return value switch
 17800                {
 17801                    "live" => Azure.Storage.Blobs.Models.BlobGeoReplicationStatus.Live,
 17802                    "bootstrap" => Azure.Storage.Blobs.Models.BlobGeoReplicationStatus.Bootstrap,
 17803                    "unavailable" => Azure.Storage.Blobs.Models.BlobGeoReplicationStatus.Unavailable,
 17804                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 17805                };
 17806            }
 17807        }
 17808    }
 17809}
 17810#endregion enum BlobGeoReplicationStatus
 17811
 17812#region class BlobInfo
 17813namespace Azure.Storage.Blobs.Models
 17814{
 17815    /// <summary>
 17816    /// BlobInfo
 17817    /// </summary>
 17818    public partial class BlobInfo
 17819    {
 17820        /// <summary>
 17821        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 17822        /// </summary>
 17823        public Azure.ETag ETag { get; internal set; }
 17824
 17825        /// <summary>
 17826        /// Returns the date and time the blob was last modified. Any operation that modifies the blob, including an upd
 17827        /// </summary>
 17828        public System.DateTimeOffset LastModified { get; internal set; }
 17829
 17830        /// <summary>
 17831        /// Prevent direct instantiation of BlobInfo instances.
 17832        /// You can use BlobsModelFactory.BlobInfo instead.
 17833        /// </summary>
 17834        internal BlobInfo() { }
 17835    }
 17836
 17837    /// <summary>
 17838    /// BlobsModelFactory provides utilities for mocking.
 17839    /// </summary>
 17840    public static partial class BlobsModelFactory
 17841    {
 17842        /// <summary>
 17843        /// Creates a new BlobInfo instance for mocking.
 17844        /// </summary>
 17845        public static BlobInfo BlobInfo(
 17846            Azure.ETag eTag,
 17847            System.DateTimeOffset lastModified)
 17848        {
 17849            return new BlobInfo()
 17850            {
 17851                ETag = eTag,
 17852                LastModified = lastModified,
 17853            };
 17854        }
 17855    }
 17856}
 17857#endregion class BlobInfo
 17858
 17859#region class BlobItemInternal
 17860namespace Azure.Storage.Blobs.Models
 17861{
 17862    /// <summary>
 17863    /// An Azure Storage blob
 17864    /// </summary>
 17865    internal partial class BlobItemInternal
 17866    {
 17867        /// <summary>
 17868        /// Name
 17869        /// </summary>
 17870        public string Name { get; internal set; }
 17871
 17872        /// <summary>
 17873        /// Deleted
 17874        /// </summary>
 17875        public bool Deleted { get; internal set; }
 17876
 17877        /// <summary>
 17878        /// Snapshot
 17879        /// </summary>
 17880        public string Snapshot { get; internal set; }
 17881
 17882        /// <summary>
 17883        /// VersionId
 17884        /// </summary>
 17885        public string VersionId { get; internal set; }
 17886
 17887        /// <summary>
 17888        /// IsCurrentVersion
 17889        /// </summary>
 17890        public bool? IsCurrentVersion { get; internal set; }
 17891
 17892        /// <summary>
 17893        /// Properties of a blob
 17894        /// </summary>
 17895        public Azure.Storage.Blobs.Models.BlobItemProperties Properties { get; internal set; }
 17896
 17897        /// <summary>
 17898        /// Metadata
 17899        /// </summary>
 17900        public System.Collections.Generic.IDictionary<string, string> Metadata { get; internal set; }
 17901
 17902        /// <summary>
 17903        /// Blob tags
 17904        /// </summary>
 17905        public Azure.Storage.Blobs.Models.BlobTags BlobTags { get; internal set; }
 17906
 17907        /// <summary>
 17908        /// ObjectReplicationMetadata
 17909        /// </summary>
 17910        public System.Collections.Generic.IDictionary<string, string> ObjectReplicationMetadata { get; internal set; }
 17911
 17912        /// <summary>
 17913        /// Creates a new BlobItemInternal instance
 17914        /// </summary>
 17915        public BlobItemInternal()
 17916            : this(false)
 17917        {
 17918        }
 17919
 17920        /// <summary>
 17921        /// Creates a new BlobItemInternal instance
 17922        /// </summary>
 17923        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 17924        internal BlobItemInternal(bool skipInitialization)
 17925        {
 17926            if (!skipInitialization)
 17927            {
 17928                Properties = new Azure.Storage.Blobs.Models.BlobItemProperties();
 17929                Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringComparer.OrdinalIgnore
 17930                BlobTags = new Azure.Storage.Blobs.Models.BlobTags();
 17931                ObjectReplicationMetadata = new System.Collections.Generic.Dictionary<string, string>(System.StringCompa
 17932            }
 17933        }
 17934
 17935        /// <summary>
 17936        /// Deserializes XML into a new BlobItemInternal instance.
 17937        /// </summary>
 17938        /// <param name="element">The XML element to deserialize.</param>
 17939        /// <returns>A deserialized BlobItemInternal instance.</returns>
 17940        internal static Azure.Storage.Blobs.Models.BlobItemInternal FromXml(System.Xml.Linq.XElement element)
 17941        {
 17942            System.Diagnostics.Debug.Assert(element != null);
 17943            System.Xml.Linq.XElement _child;
 17944            Azure.Storage.Blobs.Models.BlobItemInternal _value = new Azure.Storage.Blobs.Models.BlobItemInternal(true);
 17945            _child = element.Element(System.Xml.Linq.XName.Get("Name", ""));
 17946            if (_child != null)
 17947            {
 17948                _value.Name = _child.Value;
 17949            }
 17950            _child = element.Element(System.Xml.Linq.XName.Get("Deleted", ""));
 17951            if (_child != null)
 17952            {
 17953                _value.Deleted = bool.Parse(_child.Value);
 17954            }
 17955            _child = element.Element(System.Xml.Linq.XName.Get("Snapshot", ""));
 17956            if (_child != null)
 17957            {
 17958                _value.Snapshot = _child.Value;
 17959            }
 17960            _child = element.Element(System.Xml.Linq.XName.Get("VersionId", ""));
 17961            if (_child != null)
 17962            {
 17963                _value.VersionId = _child.Value;
 17964            }
 17965            _child = element.Element(System.Xml.Linq.XName.Get("IsCurrentVersion", ""));
 17966            if (_child != null)
 17967            {
 17968                _value.IsCurrentVersion = bool.Parse(_child.Value);
 17969            }
 17970            _child = element.Element(System.Xml.Linq.XName.Get("Properties", ""));
 17971            if (_child != null)
 17972            {
 17973                _value.Properties = Azure.Storage.Blobs.Models.BlobItemProperties.FromXml(_child);
 17974            }
 17975            _value.Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringComparer.OrdinalIgn
 17976            _child = element.Element(System.Xml.Linq.XName.Get("Metadata", ""));
 17977            if (_child != null)
 17978            {
 17979                foreach (System.Xml.Linq.XElement _pair in _child.Elements())
 17980                {
 17981                    _value.Metadata[_pair.Name.LocalName] = _pair.Value;
 17982                }
 17983            }
 17984            _child = element.Element(System.Xml.Linq.XName.Get("Tags", ""));
 17985            if (_child != null)
 17986            {
 17987                _value.BlobTags = Azure.Storage.Blobs.Models.BlobTags.FromXml(_child);
 17988            }
 17989            _value.ObjectReplicationMetadata = new System.Collections.Generic.Dictionary<string, string>(System.StringCo
 17990            _child = element.Element(System.Xml.Linq.XName.Get("OrMetadata", ""));
 17991            if (_child != null)
 17992            {
 17993                foreach (System.Xml.Linq.XElement _pair in _child.Elements())
 17994                {
 17995                    _value.ObjectReplicationMetadata[_pair.Name.LocalName] = _pair.Value;
 17996                }
 17997            }
 17998            CustomizeFromXml(element, _value);
 17999            return _value;
 18000        }
 18001
 18002        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobItemIntern
 18003    }
 18004}
 18005#endregion class BlobItemInternal
 18006
 18007#region class BlobItemProperties
 18008namespace Azure.Storage.Blobs.Models
 18009{
 18010    /// <summary>
 18011    /// Properties of a blob
 18012    /// </summary>
 18013    public partial class BlobItemProperties
 18014    {
 18015        /// <summary>
 18016        /// Last-Modified
 18017        /// </summary>
 18018        public System.DateTimeOffset? LastModified { get; internal set; }
 18019
 18020        /// <summary>
 18021        /// Size in bytes
 18022        /// </summary>
 18023        public long? ContentLength { get; internal set; }
 18024
 18025        /// <summary>
 18026        /// Content-Type
 18027        /// </summary>
 18028        public string ContentType { get; internal set; }
 18029
 18030        /// <summary>
 18031        /// Content-Encoding
 18032        /// </summary>
 18033        public string ContentEncoding { get; internal set; }
 18034
 18035        /// <summary>
 18036        /// Content-Language
 18037        /// </summary>
 18038        public string ContentLanguage { get; internal set; }
 18039
 18040        /// <summary>
 18041        /// Content-MD5
 18042        /// </summary>
 18043        #pragma warning disable CA1819 // Properties should not return arrays
 18044        public byte[] ContentHash { get; internal set; }
 18045        #pragma warning restore CA1819 // Properties should not return arrays
 18046
 18047        /// <summary>
 18048        /// Content-Disposition
 18049        /// </summary>
 18050        public string ContentDisposition { get; internal set; }
 18051
 18052        /// <summary>
 18053        /// Cache-Control
 18054        /// </summary>
 18055        public string CacheControl { get; internal set; }
 18056
 18057        /// <summary>
 18058        /// x-ms-blob-sequence-number
 18059        /// </summary>
 18060        public long? BlobSequenceNumber { get; internal set; }
 18061
 18062        /// <summary>
 18063        /// BlobType
 18064        /// </summary>
 18065        public Azure.Storage.Blobs.Models.BlobType? BlobType { get; internal set; }
 18066
 18067        /// <summary>
 18068        /// LeaseStatus
 18069        /// </summary>
 18070        public Azure.Storage.Blobs.Models.LeaseStatus? LeaseStatus { get; internal set; }
 18071
 18072        /// <summary>
 18073        /// LeaseState
 18074        /// </summary>
 18075        public Azure.Storage.Blobs.Models.LeaseState? LeaseState { get; internal set; }
 18076
 18077        /// <summary>
 18078        /// LeaseDuration
 18079        /// </summary>
 18080        public Azure.Storage.Blobs.Models.LeaseDurationType? LeaseDuration { get; internal set; }
 18081
 18082        /// <summary>
 18083        /// CopyId
 18084        /// </summary>
 18085        public string CopyId { get; internal set; }
 18086
 18087        /// <summary>
 18088        /// CopyStatus
 18089        /// </summary>
 18090        public Azure.Storage.Blobs.Models.CopyStatus? CopyStatus { get; internal set; }
 18091
 18092        /// <summary>
 18093        /// CopySource
 18094        /// </summary>
 18095        public System.Uri CopySource { get; internal set; }
 18096
 18097        /// <summary>
 18098        /// CopyProgress
 18099        /// </summary>
 18100        public string CopyProgress { get; internal set; }
 18101
 18102        /// <summary>
 18103        /// CopyStatusDescription
 18104        /// </summary>
 18105        public string CopyStatusDescription { get; internal set; }
 18106
 18107        /// <summary>
 18108        /// ServerEncrypted
 18109        /// </summary>
 18110        public bool? ServerEncrypted { get; internal set; }
 18111
 18112        /// <summary>
 18113        /// IncrementalCopy
 18114        /// </summary>
 18115        public bool? IncrementalCopy { get; internal set; }
 18116
 18117        /// <summary>
 18118        /// DestinationSnapshot
 18119        /// </summary>
 18120        public string DestinationSnapshot { get; internal set; }
 18121
 18122        /// <summary>
 18123        /// RemainingRetentionDays
 18124        /// </summary>
 18125        public int? RemainingRetentionDays { get; internal set; }
 18126
 18127        /// <summary>
 18128        /// AccessTier
 18129        /// </summary>
 18130        public Azure.Storage.Blobs.Models.AccessTier? AccessTier { get; internal set; }
 18131
 18132        /// <summary>
 18133        /// AccessTierInferred
 18134        /// </summary>
 18135        public bool AccessTierInferred { get; internal set; }
 18136
 18137        /// <summary>
 18138        /// ArchiveStatus
 18139        /// </summary>
 18140        public Azure.Storage.Blobs.Models.ArchiveStatus? ArchiveStatus { get; internal set; }
 18141
 18142        /// <summary>
 18143        /// CustomerProvidedKeySha256
 18144        /// </summary>
 18145        public string CustomerProvidedKeySha256 { get; internal set; }
 18146
 18147        /// <summary>
 18148        /// The name of the encryption scope under which the blob is encrypted.
 18149        /// </summary>
 18150        public string EncryptionScope { get; internal set; }
 18151
 18152        /// <summary>
 18153        /// TagCount
 18154        /// </summary>
 18155        public long? TagCount { get; internal set; }
 18156
 18157        /// <summary>
 18158        /// Expiry-Time
 18159        /// </summary>
 18160        public System.DateTimeOffset? ExpiresOn { get; internal set; }
 18161
 18162        /// <summary>
 18163        /// Sealed
 18164        /// </summary>
 18165        public bool? IsSealed { get; internal set; }
 18166
 18167        /// <summary>
 18168        /// If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid va
 18169        /// </summary>
 18170        public Azure.Storage.Blobs.Models.RehydratePriority? RehydratePriority { get; internal set; }
 18171
 18172        /// <summary>
 18173        /// ETag
 18174        /// </summary>
 18175        public Azure.ETag? ETag { get; internal set; }
 18176
 18177        /// <summary>
 18178        /// CreatedOn
 18179        /// </summary>
 18180        public System.DateTimeOffset? CreatedOn { get; internal set; }
 18181
 18182        /// <summary>
 18183        /// CopyCompletedOn
 18184        /// </summary>
 18185        public System.DateTimeOffset? CopyCompletedOn { get; internal set; }
 18186
 18187        /// <summary>
 18188        /// DeletedOn
 18189        /// </summary>
 18190        public System.DateTimeOffset? DeletedOn { get; internal set; }
 18191
 18192        /// <summary>
 18193        /// AccessTierChangedOn
 18194        /// </summary>
 18195        public System.DateTimeOffset? AccessTierChangedOn { get; internal set; }
 18196
 18197        /// <summary>
 18198        /// Prevent direct instantiation of BlobItemProperties instances.
 18199        /// You can use BlobsModelFactory.BlobItemProperties instead.
 18200        /// </summary>
 18201        internal BlobItemProperties() { }
 18202
 18203        /// <summary>
 18204        /// Deserializes XML into a new BlobItemProperties instance.
 18205        /// </summary>
 18206        /// <param name="element">The XML element to deserialize.</param>
 18207        /// <returns>A deserialized BlobItemProperties instance.</returns>
 18208        internal static Azure.Storage.Blobs.Models.BlobItemProperties FromXml(System.Xml.Linq.XElement element)
 18209        {
 18210            System.Diagnostics.Debug.Assert(element != null);
 18211            System.Xml.Linq.XElement _child;
 18212            Azure.Storage.Blobs.Models.BlobItemProperties _value = new Azure.Storage.Blobs.Models.BlobItemProperties();
 18213            _child = element.Element(System.Xml.Linq.XName.Get("Last-Modified", ""));
 18214            if (_child != null)
 18215            {
 18216                _value.LastModified = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.Invaria
 18217            }
 18218            _child = element.Element(System.Xml.Linq.XName.Get("Content-Length", ""));
 18219            if (_child != null)
 18220            {
 18221                _value.ContentLength = long.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 18222            }
 18223            _child = element.Element(System.Xml.Linq.XName.Get("Content-Type", ""));
 18224            if (_child != null)
 18225            {
 18226                _value.ContentType = _child.Value;
 18227            }
 18228            _child = element.Element(System.Xml.Linq.XName.Get("Content-Encoding", ""));
 18229            if (_child != null)
 18230            {
 18231                _value.ContentEncoding = _child.Value;
 18232            }
 18233            _child = element.Element(System.Xml.Linq.XName.Get("Content-Language", ""));
 18234            if (_child != null)
 18235            {
 18236                _value.ContentLanguage = _child.Value;
 18237            }
 18238            _child = element.Element(System.Xml.Linq.XName.Get("Content-MD5", ""));
 18239            if (_child != null)
 18240            {
 18241                _value.ContentHash = System.Convert.FromBase64String(_child.Value);
 18242            }
 18243            _child = element.Element(System.Xml.Linq.XName.Get("Content-Disposition", ""));
 18244            if (_child != null)
 18245            {
 18246                _value.ContentDisposition = _child.Value;
 18247            }
 18248            _child = element.Element(System.Xml.Linq.XName.Get("Cache-Control", ""));
 18249            if (_child != null)
 18250            {
 18251                _value.CacheControl = _child.Value;
 18252            }
 18253            _child = element.Element(System.Xml.Linq.XName.Get("x-ms-blob-sequence-number", ""));
 18254            if (_child != null)
 18255            {
 18256                _value.BlobSequenceNumber = long.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 18257            }
 18258            _child = element.Element(System.Xml.Linq.XName.Get("BlobType", ""));
 18259            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 18260            {
 18261                _value.BlobType = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseBlobType(_child.Value);
 18262            }
 18263            _child = element.Element(System.Xml.Linq.XName.Get("LeaseStatus", ""));
 18264            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 18265            {
 18266                _value.LeaseStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseStatus(_child.Value);
 18267            }
 18268            _child = element.Element(System.Xml.Linq.XName.Get("LeaseState", ""));
 18269            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 18270            {
 18271                _value.LeaseState = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseState(_child.Value);
 18272            }
 18273            _child = element.Element(System.Xml.Linq.XName.Get("LeaseDuration", ""));
 18274            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 18275            {
 18276                _value.LeaseDuration = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseLeaseDurationType(_child.Va
 18277            }
 18278            _child = element.Element(System.Xml.Linq.XName.Get("CopyId", ""));
 18279            if (_child != null)
 18280            {
 18281                _value.CopyId = _child.Value;
 18282            }
 18283            _child = element.Element(System.Xml.Linq.XName.Get("CopyStatus", ""));
 18284            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 18285            {
 18286                _value.CopyStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseCopyStatus(_child.Value);
 18287            }
 18288            _child = element.Element(System.Xml.Linq.XName.Get("CopySource", ""));
 18289            if (_child != null)
 18290            {
 18291                _value.CopySource = new System.Uri(_child.Value);
 18292            }
 18293            _child = element.Element(System.Xml.Linq.XName.Get("CopyProgress", ""));
 18294            if (_child != null)
 18295            {
 18296                _value.CopyProgress = _child.Value;
 18297            }
 18298            _child = element.Element(System.Xml.Linq.XName.Get("CopyStatusDescription", ""));
 18299            if (_child != null)
 18300            {
 18301                _value.CopyStatusDescription = _child.Value;
 18302            }
 18303            _child = element.Element(System.Xml.Linq.XName.Get("ServerEncrypted", ""));
 18304            if (_child != null)
 18305            {
 18306                _value.ServerEncrypted = bool.Parse(_child.Value);
 18307            }
 18308            _child = element.Element(System.Xml.Linq.XName.Get("IncrementalCopy", ""));
 18309            if (_child != null)
 18310            {
 18311                _value.IncrementalCopy = bool.Parse(_child.Value);
 18312            }
 18313            _child = element.Element(System.Xml.Linq.XName.Get("DestinationSnapshot", ""));
 18314            if (_child != null)
 18315            {
 18316                _value.DestinationSnapshot = _child.Value;
 18317            }
 18318            _child = element.Element(System.Xml.Linq.XName.Get("RemainingRetentionDays", ""));
 18319            if (_child != null)
 18320            {
 18321                _value.RemainingRetentionDays = int.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCultur
 18322            }
 18323            _child = element.Element(System.Xml.Linq.XName.Get("AccessTier", ""));
 18324            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 18325            {
 18326                _value.AccessTier = _child.Value;
 18327            }
 18328            _child = element.Element(System.Xml.Linq.XName.Get("AccessTierInferred", ""));
 18329            if (_child != null)
 18330            {
 18331                _value.AccessTierInferred = bool.Parse(_child.Value);
 18332            }
 18333            _child = element.Element(System.Xml.Linq.XName.Get("ArchiveStatus", ""));
 18334            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 18335            {
 18336                _value.ArchiveStatus = Azure.Storage.Blobs.BlobRestClient.Serialization.ParseArchiveStatus(_child.Value)
 18337            }
 18338            _child = element.Element(System.Xml.Linq.XName.Get("CustomerProvidedKeySha256", ""));
 18339            if (_child != null)
 18340            {
 18341                _value.CustomerProvidedKeySha256 = _child.Value;
 18342            }
 18343            _child = element.Element(System.Xml.Linq.XName.Get("EncryptionScope", ""));
 18344            if (_child != null)
 18345            {
 18346                _value.EncryptionScope = _child.Value;
 18347            }
 18348            _child = element.Element(System.Xml.Linq.XName.Get("TagCount", ""));
 18349            if (_child != null)
 18350            {
 18351                _value.TagCount = long.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 18352            }
 18353            _child = element.Element(System.Xml.Linq.XName.Get("Expiry-Time", ""));
 18354            if (_child != null)
 18355            {
 18356                _value.ExpiresOn = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.InvariantC
 18357            }
 18358            _child = element.Element(System.Xml.Linq.XName.Get("Sealed", ""));
 18359            if (_child != null)
 18360            {
 18361                _value.IsSealed = bool.Parse(_child.Value);
 18362            }
 18363            _child = element.Element(System.Xml.Linq.XName.Get("RehydratePriority", ""));
 18364            if (_child != null && !string.IsNullOrEmpty(_child.Value))
 18365            {
 18366                _value.RehydratePriority = (Azure.Storage.Blobs.Models.RehydratePriority)System.Enum.Parse(typeof(Azure.
 18367            }
 18368            _child = element.Element(System.Xml.Linq.XName.Get("Etag", ""));
 18369            if (_child != null)
 18370            {
 18371                _value.ETag = new Azure.ETag(_child.Value);
 18372            }
 18373            _child = element.Element(System.Xml.Linq.XName.Get("Creation-Time", ""));
 18374            if (_child != null)
 18375            {
 18376                _value.CreatedOn = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.InvariantC
 18377            }
 18378            _child = element.Element(System.Xml.Linq.XName.Get("CopyCompletionTime", ""));
 18379            if (_child != null)
 18380            {
 18381                _value.CopyCompletedOn = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.Inva
 18382            }
 18383            _child = element.Element(System.Xml.Linq.XName.Get("DeletedTime", ""));
 18384            if (_child != null)
 18385            {
 18386                _value.DeletedOn = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.InvariantC
 18387            }
 18388            _child = element.Element(System.Xml.Linq.XName.Get("AccessTierChangeTime", ""));
 18389            if (_child != null)
 18390            {
 18391                _value.AccessTierChangedOn = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.
 18392            }
 18393            CustomizeFromXml(element, _value);
 18394            return _value;
 18395        }
 18396
 18397        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobItemProper
 18398    }
 18399
 18400    /// <summary>
 18401    /// BlobsModelFactory provides utilities for mocking.
 18402    /// </summary>
 18403    public static partial class BlobsModelFactory
 18404    {
 18405        /// <summary>
 18406        /// Creates a new BlobItemProperties instance for mocking.
 18407        /// </summary>
 18408        public static BlobItemProperties BlobItemProperties(
 18409            bool accessTierInferred,
 18410            bool? serverEncrypted = default,
 18411            string contentType = default,
 18412            string contentEncoding = default,
 18413            string contentLanguage = default,
 18414            byte[] contentHash = default,
 18415            string contentDisposition = default,
 18416            string cacheControl = default,
 18417            long? blobSequenceNumber = default,
 18418            Azure.Storage.Blobs.Models.BlobType? blobType = default,
 18419            Azure.Storage.Blobs.Models.LeaseStatus? leaseStatus = default,
 18420            Azure.Storage.Blobs.Models.LeaseState? leaseState = default,
 18421            Azure.Storage.Blobs.Models.LeaseDurationType? leaseDuration = default,
 18422            string copyId = default,
 18423            Azure.Storage.Blobs.Models.CopyStatus? copyStatus = default,
 18424            System.Uri copySource = default,
 18425            string copyProgress = default,
 18426            string copyStatusDescription = default,
 18427            long? contentLength = default,
 18428            bool? incrementalCopy = default,
 18429            string destinationSnapshot = default,
 18430            int? remainingRetentionDays = default,
 18431            Azure.Storage.Blobs.Models.AccessTier? accessTier = default,
 18432            System.DateTimeOffset? lastModified = default,
 18433            Azure.Storage.Blobs.Models.ArchiveStatus? archiveStatus = default,
 18434            string customerProvidedKeySha256 = default,
 18435            string encryptionScope = default,
 18436            long? tagCount = default,
 18437            System.DateTimeOffset? expiresOn = default,
 18438            bool? isSealed = default,
 18439            Azure.Storage.Blobs.Models.RehydratePriority? rehydratePriority = default,
 18440            Azure.ETag? eTag = default,
 18441            System.DateTimeOffset? createdOn = default,
 18442            System.DateTimeOffset? copyCompletedOn = default,
 18443            System.DateTimeOffset? deletedOn = default,
 18444            System.DateTimeOffset? accessTierChangedOn = default)
 18445        {
 18446            return new BlobItemProperties()
 18447            {
 18448                AccessTierInferred = accessTierInferred,
 18449                ServerEncrypted = serverEncrypted,
 18450                ContentType = contentType,
 18451                ContentEncoding = contentEncoding,
 18452                ContentLanguage = contentLanguage,
 18453                ContentHash = contentHash,
 18454                ContentDisposition = contentDisposition,
 18455                CacheControl = cacheControl,
 18456                BlobSequenceNumber = blobSequenceNumber,
 18457                BlobType = blobType,
 18458                LeaseStatus = leaseStatus,
 18459                LeaseState = leaseState,
 18460                LeaseDuration = leaseDuration,
 18461                CopyId = copyId,
 18462                CopyStatus = copyStatus,
 18463                CopySource = copySource,
 18464                CopyProgress = copyProgress,
 18465                CopyStatusDescription = copyStatusDescription,
 18466                ContentLength = contentLength,
 18467                IncrementalCopy = incrementalCopy,
 18468                DestinationSnapshot = destinationSnapshot,
 18469                RemainingRetentionDays = remainingRetentionDays,
 18470                AccessTier = accessTier,
 18471                LastModified = lastModified,
 18472                ArchiveStatus = archiveStatus,
 18473                CustomerProvidedKeySha256 = customerProvidedKeySha256,
 18474                EncryptionScope = encryptionScope,
 18475                TagCount = tagCount,
 18476                ExpiresOn = expiresOn,
 18477                IsSealed = isSealed,
 18478                RehydratePriority = rehydratePriority,
 18479                ETag = eTag,
 18480                CreatedOn = createdOn,
 18481                CopyCompletedOn = copyCompletedOn,
 18482                DeletedOn = deletedOn,
 18483                AccessTierChangedOn = accessTierChangedOn,
 18484            };
 18485        }
 18486    }
 18487}
 18488#endregion class BlobItemProperties
 18489
 18490#region class BlobLease
 18491namespace Azure.Storage.Blobs.Models
 18492{
 18493    /// <summary>
 18494    /// BlobLease
 18495    /// </summary>
 18496    public partial class BlobLease
 18497    {
 18498        /// <summary>
 18499        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 18500        /// </summary>
 18501        public Azure.ETag ETag { get; internal set; }
 18502
 18503        /// <summary>
 18504        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 18505        /// </summary>
 18506        public System.DateTimeOffset LastModified { get; internal set; }
 18507
 18508        /// <summary>
 18509        /// Uniquely identifies a container's or blob's lease
 18510        /// </summary>
 18511        public string LeaseId { get; internal set; }
 18512
 18513        /// <summary>
 18514        /// Prevent direct instantiation of BlobLease instances.
 18515        /// You can use BlobsModelFactory.BlobLease instead.
 18516        /// </summary>
 18517        internal BlobLease() { }
 18518    }
 18519
 18520    /// <summary>
 18521    /// BlobsModelFactory provides utilities for mocking.
 18522    /// </summary>
 18523    public static partial class BlobsModelFactory
 18524    {
 18525        /// <summary>
 18526        /// Creates a new BlobLease instance for mocking.
 18527        /// </summary>
 18528        public static BlobLease BlobLease(
 18529            Azure.ETag eTag,
 18530            System.DateTimeOffset lastModified,
 18531            string leaseId)
 18532        {
 18533            return new BlobLease()
 18534            {
 18535                ETag = eTag,
 18536                LastModified = lastModified,
 18537                LeaseId = leaseId,
 18538            };
 18539        }
 18540    }
 18541}
 18542#endregion class BlobLease
 18543
 18544#region class BlobMetrics
 18545namespace Azure.Storage.Blobs.Models
 18546{
 18547    /// <summary>
 18548    /// a summary of request statistics grouped by API in hour or minute aggregates for blobs
 18549    /// </summary>
 18550    public partial class BlobMetrics
 18551    {
 18552        /// <summary>
 18553        /// The version of Storage Analytics to configure.
 18554        /// </summary>
 18555        public string Version { get; set; }
 18556
 18557        /// <summary>
 18558        /// Indicates whether metrics are enabled for the Blob service.
 18559        /// </summary>
 18560        public bool Enabled { get; set; }
 18561
 18562        /// <summary>
 18563        /// the retention policy which determines how long the associated data should persist
 18564        /// </summary>
 18565        public Azure.Storage.Blobs.Models.BlobRetentionPolicy RetentionPolicy { get; set; }
 18566
 18567        /// <summary>
 18568        /// Indicates whether metrics should generate summary statistics for called API operations.
 18569        /// </summary>
 18570        public bool? IncludeApis { get; set; }
 18571
 18572        /// <summary>
 18573        /// Creates a new BlobMetrics instance
 18574        /// </summary>
 18575        public BlobMetrics()
 18576            : this(false)
 18577        {
 18578        }
 18579
 18580        /// <summary>
 18581        /// Creates a new BlobMetrics instance
 18582        /// </summary>
 18583        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 18584        internal BlobMetrics(bool skipInitialization)
 18585        {
 18586            if (!skipInitialization)
 18587            {
 18588                RetentionPolicy = new Azure.Storage.Blobs.Models.BlobRetentionPolicy();
 18589            }
 18590        }
 18591
 18592        /// <summary>
 18593        /// Serialize a BlobMetrics instance as XML.
 18594        /// </summary>
 18595        /// <param name="value">The BlobMetrics instance to serialize.</param>
 18596        /// <param name="name">An optional name to use for the root element instead of "Metrics".</param>
 18597        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 18598        /// <returns>The serialized XML element.</returns>
 18599        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.BlobMetrics value, string name = "Metr
 18600        {
 18601            System.Diagnostics.Debug.Assert(value != null);
 18602            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 18603            if (value.Version != null)
 18604            {
 18605                _element.Add(new System.Xml.Linq.XElement(
 18606                    System.Xml.Linq.XName.Get("Version", ""),
 18607                    value.Version));
 18608            }
 18609            _element.Add(new System.Xml.Linq.XElement(
 18610                System.Xml.Linq.XName.Get("Enabled", ""),
 18611                #pragma warning disable CA1308 // Normalize strings to uppercase
 18612                value.Enabled.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLowerInvariant()));
 18613                #pragma warning restore CA1308 // Normalize strings to uppercase
 18614            if (value.RetentionPolicy != null)
 18615            {
 18616                _element.Add(Azure.Storage.Blobs.Models.BlobRetentionPolicy.ToXml(value.RetentionPolicy, "RetentionPolic
 18617            }
 18618            if (value.IncludeApis != null)
 18619            {
 18620                _element.Add(new System.Xml.Linq.XElement(
 18621                    System.Xml.Linq.XName.Get("IncludeAPIs", ""),
 18622                    #pragma warning disable CA1308 // Normalize strings to uppercase
 18623                    value.IncludeApis.Value.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLowerInvariant
 18624                    #pragma warning restore CA1308 // Normalize strings to uppercase
 18625            }
 18626            return _element;
 18627        }
 18628
 18629        /// <summary>
 18630        /// Deserializes XML into a new BlobMetrics instance.
 18631        /// </summary>
 18632        /// <param name="element">The XML element to deserialize.</param>
 18633        /// <returns>A deserialized BlobMetrics instance.</returns>
 18634        internal static Azure.Storage.Blobs.Models.BlobMetrics FromXml(System.Xml.Linq.XElement element)
 18635        {
 18636            System.Diagnostics.Debug.Assert(element != null);
 18637            System.Xml.Linq.XElement _child;
 18638            Azure.Storage.Blobs.Models.BlobMetrics _value = new Azure.Storage.Blobs.Models.BlobMetrics(true);
 18639            _child = element.Element(System.Xml.Linq.XName.Get("Version", ""));
 18640            if (_child != null)
 18641            {
 18642                _value.Version = _child.Value;
 18643            }
 18644            _child = element.Element(System.Xml.Linq.XName.Get("Enabled", ""));
 18645            if (_child != null)
 18646            {
 18647                _value.Enabled = bool.Parse(_child.Value);
 18648            }
 18649            _child = element.Element(System.Xml.Linq.XName.Get("RetentionPolicy", ""));
 18650            if (_child != null)
 18651            {
 18652                _value.RetentionPolicy = Azure.Storage.Blobs.Models.BlobRetentionPolicy.FromXml(_child);
 18653            }
 18654            _child = element.Element(System.Xml.Linq.XName.Get("IncludeAPIs", ""));
 18655            if (_child != null)
 18656            {
 18657                _value.IncludeApis = bool.Parse(_child.Value);
 18658            }
 18659            CustomizeFromXml(element, _value);
 18660            return _value;
 18661        }
 18662
 18663        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobMetrics va
 18664    }
 18665}
 18666#endregion class BlobMetrics
 18667
 18668#region class BlobPrefix
 18669namespace Azure.Storage.Blobs.Models
 18670{
 18671    /// <summary>
 18672    /// BlobPrefix
 18673    /// </summary>
 18674    internal partial class BlobPrefix
 18675    {
 18676        /// <summary>
 18677        /// Name
 18678        /// </summary>
 18679        public string Name { get; internal set; }
 18680
 18681        /// <summary>
 18682        /// Prevent direct instantiation of BlobPrefix instances.
 18683        /// You can use BlobsModelFactory.BlobPrefix instead.
 18684        /// </summary>
 18685        internal BlobPrefix() { }
 18686
 18687        /// <summary>
 18688        /// Deserializes XML into a new BlobPrefix instance.
 18689        /// </summary>
 18690        /// <param name="element">The XML element to deserialize.</param>
 18691        /// <returns>A deserialized BlobPrefix instance.</returns>
 18692        internal static Azure.Storage.Blobs.Models.BlobPrefix FromXml(System.Xml.Linq.XElement element)
 18693        {
 18694            System.Diagnostics.Debug.Assert(element != null);
 18695            System.Xml.Linq.XElement _child;
 18696            Azure.Storage.Blobs.Models.BlobPrefix _value = new Azure.Storage.Blobs.Models.BlobPrefix();
 18697            _child = element.Element(System.Xml.Linq.XName.Get("Name", ""));
 18698            if (_child != null)
 18699            {
 18700                _value.Name = _child.Value;
 18701            }
 18702            CustomizeFromXml(element, _value);
 18703            return _value;
 18704        }
 18705
 18706        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobPrefix val
 18707    }
 18708}
 18709#endregion class BlobPrefix
 18710
 18711#region class BlobPropertiesInternal
 18712namespace Azure.Storage.Blobs.Models
 18713{
 18714    /// <summary>
 18715    /// BlobPropertiesInternal
 18716    /// </summary>
 18717    internal partial class BlobPropertiesInternal
 18718    {
 18719        /// <summary>
 18720        /// Returns the date and time the blob was last modified. Any operation that modifies the blob, including an upd
 18721        /// </summary>
 18722        public System.DateTimeOffset LastModified { get; internal set; }
 18723
 18724        /// <summary>
 18725        /// Returns the date and time the blob was created.
 18726        /// </summary>
 18727        public System.DateTimeOffset CreatedOn { get; internal set; }
 18728
 18729        /// <summary>
 18730        /// x-ms-meta
 18731        /// </summary>
 18732        public System.Collections.Generic.IDictionary<string, string> Metadata { get; internal set; }
 18733
 18734        /// <summary>
 18735        /// Optional. Only valid when Object Replication is enabled for the storage container and on the destination blo
 18736        /// </summary>
 18737        public string ObjectReplicationPolicyId { get; internal set; }
 18738
 18739        /// <summary>
 18740        /// Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of 
 18741        /// </summary>
 18742        public System.Collections.Generic.IDictionary<string, string> ObjectReplicationRules { get; internal set; }
 18743
 18744        /// <summary>
 18745        /// The blob's type.
 18746        /// </summary>
 18747        public Azure.Storage.Blobs.Models.BlobType BlobType { get; internal set; }
 18748
 18749        /// <summary>
 18750        /// Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This val
 18751        /// </summary>
 18752        public System.DateTimeOffset CopyCompletedOn { get; internal set; }
 18753
 18754        /// <summary>
 18755        /// Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal 
 18756        /// </summary>
 18757        public string CopyStatusDescription { get; internal set; }
 18758
 18759        /// <summary>
 18760        /// String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy ope
 18761        /// </summary>
 18762        public string CopyId { get; internal set; }
 18763
 18764        /// <summary>
 18765        /// Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operat
 18766        /// </summary>
 18767        public string CopyProgress { get; internal set; }
 18768
 18769        /// <summary>
 18770        /// URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operati
 18771        /// </summary>
 18772        public System.Uri CopySource { get; internal set; }
 18773
 18774        /// <summary>
 18775        /// State of the copy operation identified by x-ms-copy-id.
 18776        /// </summary>
 18777        public Azure.Storage.Blobs.Models.CopyStatus CopyStatus { get; internal set; }
 18778
 18779        /// <summary>
 18780        /// Included if the blob is incremental copy blob.
 18781        /// </summary>
 18782        public bool IsIncrementalCopy { get; internal set; }
 18783
 18784        /// <summary>
 18785        /// Included if the blob is incremental copy blob or incremental copy snapshot, if x-ms-copy-status is success. 
 18786        /// </summary>
 18787        public string DestinationSnapshot { get; internal set; }
 18788
 18789        /// <summary>
 18790        /// When a blob is leased, specifies whether the lease is of infinite or fixed duration.
 18791        /// </summary>
 18792        public Azure.Storage.Blobs.Models.LeaseDurationType LeaseDuration { get; internal set; }
 18793
 18794        /// <summary>
 18795        /// Lease state of the blob.
 18796        /// </summary>
 18797        public Azure.Storage.Blobs.Models.LeaseState LeaseState { get; internal set; }
 18798
 18799        /// <summary>
 18800        /// The current lease status of the blob.
 18801        /// </summary>
 18802        public Azure.Storage.Blobs.Models.LeaseStatus LeaseStatus { get; internal set; }
 18803
 18804        /// <summary>
 18805        /// The number of bytes present in the response body.
 18806        /// </summary>
 18807        public long ContentLength { get; internal set; }
 18808
 18809        /// <summary>
 18810        /// The content type specified for the blob. The default content type is 'application/octet-stream'
 18811        /// </summary>
 18812        public string ContentType { get; internal set; }
 18813
 18814        /// <summary>
 18815        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 18816        /// </summary>
 18817        public Azure.ETag ETag { get; internal set; }
 18818
 18819        /// <summary>
 18820        /// If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so
 18821        /// </summary>
 18822        #pragma warning disable CA1819 // Properties should not return arrays
 18823        public byte[] ContentHash { get; internal set; }
 18824        #pragma warning restore CA1819 // Properties should not return arrays
 18825
 18826        /// <summary>
 18827        /// This header returns the value that was specified for the Content-Encoding request header
 18828        /// </summary>
 18829        public string ContentEncoding { get; internal set; }
 18830
 18831        /// <summary>
 18832        /// This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content
 18833        /// </summary>
 18834        public string ContentDisposition { get; internal set; }
 18835
 18836        /// <summary>
 18837        /// This header returns the value that was specified for the Content-Language request header.
 18838        /// </summary>
 18839        public string ContentLanguage { get; internal set; }
 18840
 18841        /// <summary>
 18842        /// This header is returned if it was previously specified for the blob.
 18843        /// </summary>
 18844        public string CacheControl { get; internal set; }
 18845
 18846        /// <summary>
 18847        /// The current sequence number for a page blob. This header is not returned for block blobs or append blobs
 18848        /// </summary>
 18849        public long BlobSequenceNumber { get; internal set; }
 18850
 18851        /// <summary>
 18852        /// Indicates that the service supports requests for partial blob content.
 18853        /// </summary>
 18854        public string AcceptRanges { get; internal set; }
 18855
 18856        /// <summary>
 18857        /// The number of committed blocks present in the blob. This header is returned only for append blobs.
 18858        /// </summary>
 18859        public int BlobCommittedBlockCount { get; internal set; }
 18860
 18861        /// <summary>
 18862        /// The value of this header is set to true if the blob data and application metadata are completely encrypted u
 18863        /// </summary>
 18864        public bool IsServerEncrypted { get; internal set; }
 18865
 18866        /// <summary>
 18867        /// The SHA-256 hash of the encryption key used to encrypt the metadata. This header is only returned when the m
 18868        /// </summary>
 18869        public string EncryptionKeySha256 { get; internal set; }
 18870
 18871        /// <summary>
 18872        /// Returns the name of the encryption scope used to encrypt the blob contents and application metadata.  Note t
 18873        /// </summary>
 18874        public string EncryptionScope { get; internal set; }
 18875
 18876        /// <summary>
 18877        /// The tier of page blob on a premium storage account or tier of block blob on blob storage LRS accounts. For a
 18878        /// </summary>
 18879        public string AccessTier { get; internal set; }
 18880
 18881        /// <summary>
 18882        /// For page blobs on a premium storage account only. If the access tier is not explicitly set on the blob, the 
 18883        /// </summary>
 18884        public bool AccessTierInferred { get; internal set; }
 18885
 18886        /// <summary>
 18887        /// For blob storage LRS accounts, valid values are rehydrate-pending-to-hot/rehydrate-pending-to-cool. If the b
 18888        /// </summary>
 18889        public string ArchiveStatus { get; internal set; }
 18890
 18891        /// <summary>
 18892        /// The time the tier was changed on the object. This is only returned if the tier on the block blob was ever se
 18893        /// </summary>
 18894        public System.DateTimeOffset AccessTierChangedOn { get; internal set; }
 18895
 18896        /// <summary>
 18897        /// A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicat
 18898        /// </summary>
 18899        public string VersionId { get; internal set; }
 18900
 18901        /// <summary>
 18902        /// The value of this header indicates whether version of this blob is a current version, see also x-ms-version-
 18903        /// </summary>
 18904        public bool IsCurrentVersion { get; internal set; }
 18905
 18906        /// <summary>
 18907        /// The number of tags associated with the blob
 18908        /// </summary>
 18909        public long TagCount { get; internal set; }
 18910
 18911        /// <summary>
 18912        /// The time this blob will expire.
 18913        /// </summary>
 18914        public System.DateTimeOffset ExpiresOn { get; internal set; }
 18915
 18916        /// <summary>
 18917        /// If this blob has been sealed
 18918        /// </summary>
 18919        public bool IsSealed { get; internal set; }
 18920
 18921        /// <summary>
 18922        /// If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid va
 18923        /// </summary>
 18924        public string RehydratePriority { get; internal set; }
 18925
 18926        /// <summary>
 18927        /// Creates a new BlobPropertiesInternal instance
 18928        /// </summary>
 18929        public BlobPropertiesInternal()
 18930        {
 18931            Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringComparer.OrdinalIgnoreCase
 18932            ObjectReplicationRules = new System.Collections.Generic.Dictionary<string, string>(System.StringComparer.Ord
 18933        }
 18934    }
 18935}
 18936#endregion class BlobPropertiesInternal
 18937
 18938#region class BlobRetentionPolicy
 18939namespace Azure.Storage.Blobs.Models
 18940{
 18941    /// <summary>
 18942    /// the retention policy which determines how long the associated data should persist
 18943    /// </summary>
 18944    public partial class BlobRetentionPolicy
 18945    {
 18946        /// <summary>
 18947        /// Indicates whether a retention policy is enabled for the storage service
 18948        /// </summary>
 18949        public bool Enabled { get; set; }
 18950
 18951        /// <summary>
 18952        /// Indicates the number of days that metrics or logging or soft-deleted data should be retained. All data older
 18953        /// </summary>
 18954        public int? Days { get; set; }
 18955
 18956        /// <summary>
 18957        /// Creates a new BlobRetentionPolicy instance
 18958        /// </summary>
 18959        public BlobRetentionPolicy() { }
 18960
 18961        /// <summary>
 18962        /// Serialize a BlobRetentionPolicy instance as XML.
 18963        /// </summary>
 18964        /// <param name="value">The BlobRetentionPolicy instance to serialize.</param>
 18965        /// <param name="name">An optional name to use for the root element instead of "RetentionPolicy".</param>
 18966        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 18967        /// <returns>The serialized XML element.</returns>
 18968        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.BlobRetentionPolicy value, string name
 18969        {
 18970            System.Diagnostics.Debug.Assert(value != null);
 18971            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 18972            _element.Add(new System.Xml.Linq.XElement(
 18973                System.Xml.Linq.XName.Get("Enabled", ""),
 18974                #pragma warning disable CA1308 // Normalize strings to uppercase
 18975                value.Enabled.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLowerInvariant()));
 18976                #pragma warning restore CA1308 // Normalize strings to uppercase
 18977            if (value.Days != null)
 18978            {
 18979                _element.Add(new System.Xml.Linq.XElement(
 18980                    System.Xml.Linq.XName.Get("Days", ""),
 18981                    value.Days.Value.ToString(System.Globalization.CultureInfo.InvariantCulture)));
 18982            }
 18983            return _element;
 18984        }
 18985
 18986        /// <summary>
 18987        /// Deserializes XML into a new BlobRetentionPolicy instance.
 18988        /// </summary>
 18989        /// <param name="element">The XML element to deserialize.</param>
 18990        /// <returns>A deserialized BlobRetentionPolicy instance.</returns>
 18991        internal static Azure.Storage.Blobs.Models.BlobRetentionPolicy FromXml(System.Xml.Linq.XElement element)
 18992        {
 18993            System.Diagnostics.Debug.Assert(element != null);
 18994            System.Xml.Linq.XElement _child;
 18995            Azure.Storage.Blobs.Models.BlobRetentionPolicy _value = new Azure.Storage.Blobs.Models.BlobRetentionPolicy()
 18996            _child = element.Element(System.Xml.Linq.XName.Get("Enabled", ""));
 18997            if (_child != null)
 18998            {
 18999                _value.Enabled = bool.Parse(_child.Value);
 19000            }
 19001            _child = element.Element(System.Xml.Linq.XName.Get("Days", ""));
 19002            if (_child != null)
 19003            {
 19004                _value.Days = int.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 19005            }
 19006            CustomizeFromXml(element, _value);
 19007            return _value;
 19008        }
 19009
 19010        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobRetentionP
 19011    }
 19012}
 19013#endregion class BlobRetentionPolicy
 19014
 19015#region class BlobServiceProperties
 19016namespace Azure.Storage.Blobs.Models
 19017{
 19018    /// <summary>
 19019    /// Storage Service Properties.
 19020    /// </summary>
 19021    public partial class BlobServiceProperties
 19022    {
 19023        /// <summary>
 19024        /// Azure Analytics Logging settings.
 19025        /// </summary>
 19026        public Azure.Storage.Blobs.Models.BlobAnalyticsLogging Logging { get; set; }
 19027
 19028        /// <summary>
 19029        /// a summary of request statistics grouped by API in hour or minute aggregates for blobs
 19030        /// </summary>
 19031        public Azure.Storage.Blobs.Models.BlobMetrics HourMetrics { get; set; }
 19032
 19033        /// <summary>
 19034        /// a summary of request statistics grouped by API in hour or minute aggregates for blobs
 19035        /// </summary>
 19036        public Azure.Storage.Blobs.Models.BlobMetrics MinuteMetrics { get; set; }
 19037
 19038        /// <summary>
 19039        /// The set of CORS rules.
 19040        /// </summary>
 19041        public System.Collections.Generic.IList<Azure.Storage.Blobs.Models.BlobCorsRule> Cors { get; set; }
 19042
 19043        /// <summary>
 19044        /// The default version to use for requests to the Blob service if an incoming request's version is not specifie
 19045        /// </summary>
 19046        public string DefaultServiceVersion { get; set; }
 19047
 19048        /// <summary>
 19049        /// the retention policy which determines how long the associated data should persist
 19050        /// </summary>
 19051        public Azure.Storage.Blobs.Models.BlobRetentionPolicy DeleteRetentionPolicy { get; set; }
 19052
 19053        /// <summary>
 19054        /// The properties that enable an account to host a static website
 19055        /// </summary>
 19056        public Azure.Storage.Blobs.Models.BlobStaticWebsite StaticWebsite { get; set; }
 19057
 19058        /// <summary>
 19059        /// Creates a new BlobServiceProperties instance
 19060        /// </summary>
 19061        public BlobServiceProperties()
 19062            : this(false)
 19063        {
 19064        }
 19065
 19066        /// <summary>
 19067        /// Creates a new BlobServiceProperties instance
 19068        /// </summary>
 19069        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 19070        internal BlobServiceProperties(bool skipInitialization)
 19071        {
 19072            if (!skipInitialization)
 19073            {
 19074                Logging = new Azure.Storage.Blobs.Models.BlobAnalyticsLogging();
 19075                HourMetrics = new Azure.Storage.Blobs.Models.BlobMetrics();
 19076                MinuteMetrics = new Azure.Storage.Blobs.Models.BlobMetrics();
 19077                DeleteRetentionPolicy = new Azure.Storage.Blobs.Models.BlobRetentionPolicy();
 19078                StaticWebsite = new Azure.Storage.Blobs.Models.BlobStaticWebsite();
 19079            }
 19080        }
 19081
 19082        /// <summary>
 19083        /// Serialize a BlobServiceProperties instance as XML.
 19084        /// </summary>
 19085        /// <param name="value">The BlobServiceProperties instance to serialize.</param>
 19086        /// <param name="name">An optional name to use for the root element instead of "StorageServiceProperties".</para
 19087        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 19088        /// <returns>The serialized XML element.</returns>
 19089        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.BlobServiceProperties value, string na
 19090        {
 19091            System.Diagnostics.Debug.Assert(value != null);
 19092            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 19093            if (value.Logging != null)
 19094            {
 19095                _element.Add(Azure.Storage.Blobs.Models.BlobAnalyticsLogging.ToXml(value.Logging, "Logging", ""));
 19096            }
 19097            if (value.HourMetrics != null)
 19098            {
 19099                _element.Add(Azure.Storage.Blobs.Models.BlobMetrics.ToXml(value.HourMetrics, "HourMetrics", ""));
 19100            }
 19101            if (value.MinuteMetrics != null)
 19102            {
 19103                _element.Add(Azure.Storage.Blobs.Models.BlobMetrics.ToXml(value.MinuteMetrics, "MinuteMetrics", ""));
 19104            }
 19105            if (value.Cors != null)
 19106            {
 19107                System.Xml.Linq.XElement _elements = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get("Cors", ""))
 19108                foreach (Azure.Storage.Blobs.Models.BlobCorsRule _child in value.Cors)
 19109                {
 19110                    _elements.Add(Azure.Storage.Blobs.Models.BlobCorsRule.ToXml(_child));
 19111                }
 19112                _element.Add(_elements);
 19113            }
 19114            if (value.DefaultServiceVersion != null)
 19115            {
 19116                _element.Add(new System.Xml.Linq.XElement(
 19117                    System.Xml.Linq.XName.Get("DefaultServiceVersion", ""),
 19118                    value.DefaultServiceVersion));
 19119            }
 19120            if (value.DeleteRetentionPolicy != null)
 19121            {
 19122                _element.Add(Azure.Storage.Blobs.Models.BlobRetentionPolicy.ToXml(value.DeleteRetentionPolicy, "DeleteRe
 19123            }
 19124            if (value.StaticWebsite != null)
 19125            {
 19126                _element.Add(Azure.Storage.Blobs.Models.BlobStaticWebsite.ToXml(value.StaticWebsite, "StaticWebsite", ""
 19127            }
 19128            return _element;
 19129        }
 19130
 19131        /// <summary>
 19132        /// Deserializes XML into a new BlobServiceProperties instance.
 19133        /// </summary>
 19134        /// <param name="element">The XML element to deserialize.</param>
 19135        /// <returns>A deserialized BlobServiceProperties instance.</returns>
 19136        internal static Azure.Storage.Blobs.Models.BlobServiceProperties FromXml(System.Xml.Linq.XElement element)
 19137        {
 19138            System.Diagnostics.Debug.Assert(element != null);
 19139            System.Xml.Linq.XElement _child;
 19140            Azure.Storage.Blobs.Models.BlobServiceProperties _value = new Azure.Storage.Blobs.Models.BlobServiceProperti
 19141            _child = element.Element(System.Xml.Linq.XName.Get("Logging", ""));
 19142            if (_child != null)
 19143            {
 19144                _value.Logging = Azure.Storage.Blobs.Models.BlobAnalyticsLogging.FromXml(_child);
 19145            }
 19146            _child = element.Element(System.Xml.Linq.XName.Get("HourMetrics", ""));
 19147            if (_child != null)
 19148            {
 19149                _value.HourMetrics = Azure.Storage.Blobs.Models.BlobMetrics.FromXml(_child);
 19150            }
 19151            _child = element.Element(System.Xml.Linq.XName.Get("MinuteMetrics", ""));
 19152            if (_child != null)
 19153            {
 19154                _value.MinuteMetrics = Azure.Storage.Blobs.Models.BlobMetrics.FromXml(_child);
 19155            }
 19156            _child = element.Element(System.Xml.Linq.XName.Get("Cors", ""));
 19157            if (_child != null)
 19158            {
 19159                _value.Cors = System.Linq.Enumerable.ToList(
 19160                    System.Linq.Enumerable.Select(
 19161                        _child.Elements(System.Xml.Linq.XName.Get("CorsRule", "")),
 19162                        e => Azure.Storage.Blobs.Models.BlobCorsRule.FromXml(e)));
 19163            }
 19164            else
 19165            {
 19166                _value.Cors = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobCorsRule>();
 19167            }
 19168            _child = element.Element(System.Xml.Linq.XName.Get("DefaultServiceVersion", ""));
 19169            if (_child != null)
 19170            {
 19171                _value.DefaultServiceVersion = _child.Value;
 19172            }
 19173            _child = element.Element(System.Xml.Linq.XName.Get("DeleteRetentionPolicy", ""));
 19174            if (_child != null)
 19175            {
 19176                _value.DeleteRetentionPolicy = Azure.Storage.Blobs.Models.BlobRetentionPolicy.FromXml(_child);
 19177            }
 19178            _child = element.Element(System.Xml.Linq.XName.Get("StaticWebsite", ""));
 19179            if (_child != null)
 19180            {
 19181                _value.StaticWebsite = Azure.Storage.Blobs.Models.BlobStaticWebsite.FromXml(_child);
 19182            }
 19183            CustomizeFromXml(element, _value);
 19184            return _value;
 19185        }
 19186
 19187        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobServicePro
 19188    }
 19189}
 19190#endregion class BlobServiceProperties
 19191
 19192#region class BlobServiceStatistics
 19193namespace Azure.Storage.Blobs.Models
 19194{
 19195    /// <summary>
 19196    /// Statistics for the storage service.
 19197    /// </summary>
 19198    public partial class BlobServiceStatistics
 19199    {
 19200        /// <summary>
 19201        /// Geo-Replication information for the Secondary Storage Service
 19202        /// </summary>
 19203        public Azure.Storage.Blobs.Models.BlobGeoReplication GeoReplication { get; internal set; }
 19204
 19205        /// <summary>
 19206        /// Creates a new BlobServiceStatistics instance
 19207        /// </summary>
 19208        internal BlobServiceStatistics()
 19209            : this(false)
 19210        {
 19211        }
 19212
 19213        /// <summary>
 19214        /// Creates a new BlobServiceStatistics instance
 19215        /// </summary>
 19216        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 19217        internal BlobServiceStatistics(bool skipInitialization)
 19218        {
 19219            if (!skipInitialization)
 19220            {
 19221                GeoReplication = new Azure.Storage.Blobs.Models.BlobGeoReplication();
 19222            }
 19223        }
 19224
 19225        /// <summary>
 19226        /// Deserializes XML into a new BlobServiceStatistics instance.
 19227        /// </summary>
 19228        /// <param name="element">The XML element to deserialize.</param>
 19229        /// <returns>A deserialized BlobServiceStatistics instance.</returns>
 19230        internal static Azure.Storage.Blobs.Models.BlobServiceStatistics FromXml(System.Xml.Linq.XElement element)
 19231        {
 19232            System.Diagnostics.Debug.Assert(element != null);
 19233            System.Xml.Linq.XElement _child;
 19234            Azure.Storage.Blobs.Models.BlobServiceStatistics _value = new Azure.Storage.Blobs.Models.BlobServiceStatisti
 19235            _child = element.Element(System.Xml.Linq.XName.Get("GeoReplication", ""));
 19236            if (_child != null)
 19237            {
 19238                _value.GeoReplication = Azure.Storage.Blobs.Models.BlobGeoReplication.FromXml(_child);
 19239            }
 19240            CustomizeFromXml(element, _value);
 19241            return _value;
 19242        }
 19243
 19244        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobServiceSta
 19245    }
 19246
 19247    /// <summary>
 19248    /// BlobsModelFactory provides utilities for mocking.
 19249    /// </summary>
 19250    public static partial class BlobsModelFactory
 19251    {
 19252        /// <summary>
 19253        /// Creates a new BlobServiceStatistics instance for mocking.
 19254        /// </summary>
 19255        public static BlobServiceStatistics BlobServiceStatistics(
 19256            Azure.Storage.Blobs.Models.BlobGeoReplication geoReplication = default)
 19257        {
 19258            return new BlobServiceStatistics()
 19259            {
 19260                GeoReplication = geoReplication,
 19261            };
 19262        }
 19263    }
 19264}
 19265#endregion class BlobServiceStatistics
 19266
 19267#region class BlobSetExpiryInternal
 19268namespace Azure.Storage.Blobs.Models
 19269{
 19270    /// <summary>
 19271    /// BlobSetExpiryInternal
 19272    /// </summary>
 19273    internal partial class BlobSetExpiryInternal
 19274    {
 19275        /// <summary>
 19276        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 19277        /// </summary>
 19278        public Azure.ETag ETag { get; internal set; }
 19279
 19280        /// <summary>
 19281        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 19282        /// </summary>
 19283        public System.DateTimeOffset LastModified { get; internal set; }
 19284
 19285        /// <summary>
 19286        /// Prevent direct instantiation of BlobSetExpiryInternal instances.
 19287        /// You can use BlobsModelFactory.BlobSetExpiryInternal instead.
 19288        /// </summary>
 19289        internal BlobSetExpiryInternal() { }
 19290    }
 19291}
 19292#endregion class BlobSetExpiryInternal
 19293
 19294#region class BlobSignedIdentifier
 19295namespace Azure.Storage.Blobs.Models
 19296{
 19297    /// <summary>
 19298    /// signed identifier
 19299    /// </summary>
 19300    public partial class BlobSignedIdentifier
 19301    {
 19302        /// <summary>
 19303        /// a unique id
 19304        /// </summary>
 30419305        public string Id { get; set; }
 19306
 19307        /// <summary>
 19308        /// An Access policy
 19309        /// </summary>
 54419310        public Azure.Storage.Blobs.Models.BlobAccessPolicy AccessPolicy { get; set; }
 19311
 19312        /// <summary>
 19313        /// Creates a new BlobSignedIdentifier instance
 19314        /// </summary>
 19315        public BlobSignedIdentifier()
 10419316            : this(false)
 19317        {
 10419318        }
 19319
 19320        /// <summary>
 19321        /// Creates a new BlobSignedIdentifier instance
 19322        /// </summary>
 19323        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 13619324        internal BlobSignedIdentifier(bool skipInitialization)
 19325        {
 13619326            if (!skipInitialization)
 19327            {
 10419328                AccessPolicy = new Azure.Storage.Blobs.Models.BlobAccessPolicy();
 19329            }
 13619330        }
 19331
 19332        /// <summary>
 19333        /// Serialize a BlobSignedIdentifier instance as XML.
 19334        /// </summary>
 19335        /// <param name="value">The BlobSignedIdentifier instance to serialize.</param>
 19336        /// <param name="name">An optional name to use for the root element instead of "SignedIdentifier".</param>
 19337        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 19338        /// <returns>The serialized XML element.</returns>
 19339        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.BlobSignedIdentifier value, string nam
 19340        {
 19341            System.Diagnostics.Debug.Assert(value != null);
 10419342            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 10419343            _element.Add(new System.Xml.Linq.XElement(
 10419344                System.Xml.Linq.XName.Get("Id", ""),
 10419345                value.Id));
 10419346            _element.Add(Azure.Storage.Blobs.Models.BlobAccessPolicy.ToXml(value.AccessPolicy, "AccessPolicy", ""));
 10419347            return _element;
 19348        }
 19349
 19350        /// <summary>
 19351        /// Deserializes XML into a new BlobSignedIdentifier instance.
 19352        /// </summary>
 19353        /// <param name="element">The XML element to deserialize.</param>
 19354        /// <returns>A deserialized BlobSignedIdentifier instance.</returns>
 19355        internal static Azure.Storage.Blobs.Models.BlobSignedIdentifier FromXml(System.Xml.Linq.XElement element)
 19356        {
 19357            System.Diagnostics.Debug.Assert(element != null);
 19358            System.Xml.Linq.XElement _child;
 3219359            Azure.Storage.Blobs.Models.BlobSignedIdentifier _value = new Azure.Storage.Blobs.Models.BlobSignedIdentifier
 3219360            _child = element.Element(System.Xml.Linq.XName.Get("Id", ""));
 3219361            if (_child != null)
 19362            {
 3219363                _value.Id = _child.Value;
 19364            }
 3219365            _child = element.Element(System.Xml.Linq.XName.Get("AccessPolicy", ""));
 3219366            if (_child != null)
 19367            {
 3219368                _value.AccessPolicy = Azure.Storage.Blobs.Models.BlobAccessPolicy.FromXml(_child);
 19369            }
 19370            CustomizeFromXml(element, _value);
 3219371            return _value;
 19372        }
 19373
 19374        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobSignedIden
 19375    }
 19376}
 19377#endregion class BlobSignedIdentifier
 19378
 19379#region class BlobSnapshotInfo
 19380namespace Azure.Storage.Blobs.Models
 19381{
 19382    /// <summary>
 19383    /// BlobSnapshotInfo
 19384    /// </summary>
 19385    public partial class BlobSnapshotInfo
 19386    {
 19387        /// <summary>
 19388        /// Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests t
 19389        /// </summary>
 19390        public string Snapshot { get; internal set; }
 19391
 19392        /// <summary>
 19393        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 19394        /// </summary>
 19395        public Azure.ETag ETag { get; internal set; }
 19396
 19397        /// <summary>
 19398        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 19399        /// </summary>
 19400        public System.DateTimeOffset LastModified { get; internal set; }
 19401
 19402        /// <summary>
 19403        /// A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicat
 19404        /// </summary>
 19405        public string VersionId { get; internal set; }
 19406
 19407        /// <summary>
 19408        /// True if the contents of the request are successfully encrypted using the specified algorithm, and false othe
 19409        /// </summary>
 19410        public bool IsServerEncrypted { get; internal set; }
 19411
 19412        /// <summary>
 19413        /// Prevent direct instantiation of BlobSnapshotInfo instances.
 19414        /// You can use BlobsModelFactory.BlobSnapshotInfo instead.
 19415        /// </summary>
 19416        internal BlobSnapshotInfo() { }
 19417    }
 19418
 19419    /// <summary>
 19420    /// BlobsModelFactory provides utilities for mocking.
 19421    /// </summary>
 19422    public static partial class BlobsModelFactory
 19423    {
 19424        /// <summary>
 19425        /// Creates a new BlobSnapshotInfo instance for mocking.
 19426        /// </summary>
 19427        public static BlobSnapshotInfo BlobSnapshotInfo(
 19428            string snapshot,
 19429            Azure.ETag eTag,
 19430            System.DateTimeOffset lastModified,
 19431            string versionId,
 19432            bool isServerEncrypted)
 19433        {
 19434            return new BlobSnapshotInfo()
 19435            {
 19436                Snapshot = snapshot,
 19437                ETag = eTag,
 19438                LastModified = lastModified,
 19439                VersionId = versionId,
 19440                IsServerEncrypted = isServerEncrypted,
 19441            };
 19442        }
 19443    }
 19444}
 19445#endregion class BlobSnapshotInfo
 19446
 19447#region class BlobStaticWebsite
 19448namespace Azure.Storage.Blobs.Models
 19449{
 19450    /// <summary>
 19451    /// The properties that enable an account to host a static website
 19452    /// </summary>
 19453    public partial class BlobStaticWebsite
 19454    {
 19455        /// <summary>
 19456        /// Indicates whether this account is hosting a static website
 19457        /// </summary>
 19458        public bool Enabled { get; set; }
 19459
 19460        /// <summary>
 19461        /// The default name of the index page under each directory
 19462        /// </summary>
 19463        public string IndexDocument { get; set; }
 19464
 19465        /// <summary>
 19466        /// The absolute path of the custom 404 page
 19467        /// </summary>
 19468        public string ErrorDocument404Path { get; set; }
 19469
 19470        /// <summary>
 19471        /// Absolute path of the default index page
 19472        /// </summary>
 19473        public string DefaultIndexDocumentPath { get; set; }
 19474
 19475        /// <summary>
 19476        /// Creates a new BlobStaticWebsite instance
 19477        /// </summary>
 19478        public BlobStaticWebsite() { }
 19479
 19480        /// <summary>
 19481        /// Serialize a BlobStaticWebsite instance as XML.
 19482        /// </summary>
 19483        /// <param name="value">The BlobStaticWebsite instance to serialize.</param>
 19484        /// <param name="name">An optional name to use for the root element instead of "StaticWebsite".</param>
 19485        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 19486        /// <returns>The serialized XML element.</returns>
 19487        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.BlobStaticWebsite value, string name =
 19488        {
 19489            System.Diagnostics.Debug.Assert(value != null);
 19490            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 19491            _element.Add(new System.Xml.Linq.XElement(
 19492                System.Xml.Linq.XName.Get("Enabled", ""),
 19493                #pragma warning disable CA1308 // Normalize strings to uppercase
 19494                value.Enabled.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLowerInvariant()));
 19495                #pragma warning restore CA1308 // Normalize strings to uppercase
 19496            if (value.IndexDocument != null)
 19497            {
 19498                _element.Add(new System.Xml.Linq.XElement(
 19499                    System.Xml.Linq.XName.Get("IndexDocument", ""),
 19500                    value.IndexDocument));
 19501            }
 19502            if (value.ErrorDocument404Path != null)
 19503            {
 19504                _element.Add(new System.Xml.Linq.XElement(
 19505                    System.Xml.Linq.XName.Get("ErrorDocument404Path", ""),
 19506                    value.ErrorDocument404Path));
 19507            }
 19508            if (value.DefaultIndexDocumentPath != null)
 19509            {
 19510                _element.Add(new System.Xml.Linq.XElement(
 19511                    System.Xml.Linq.XName.Get("DefaultIndexDocumentPath", ""),
 19512                    value.DefaultIndexDocumentPath));
 19513            }
 19514            return _element;
 19515        }
 19516
 19517        /// <summary>
 19518        /// Deserializes XML into a new BlobStaticWebsite instance.
 19519        /// </summary>
 19520        /// <param name="element">The XML element to deserialize.</param>
 19521        /// <returns>A deserialized BlobStaticWebsite instance.</returns>
 19522        internal static Azure.Storage.Blobs.Models.BlobStaticWebsite FromXml(System.Xml.Linq.XElement element)
 19523        {
 19524            System.Diagnostics.Debug.Assert(element != null);
 19525            System.Xml.Linq.XElement _child;
 19526            Azure.Storage.Blobs.Models.BlobStaticWebsite _value = new Azure.Storage.Blobs.Models.BlobStaticWebsite();
 19527            _child = element.Element(System.Xml.Linq.XName.Get("Enabled", ""));
 19528            if (_child != null)
 19529            {
 19530                _value.Enabled = bool.Parse(_child.Value);
 19531            }
 19532            _child = element.Element(System.Xml.Linq.XName.Get("IndexDocument", ""));
 19533            if (_child != null)
 19534            {
 19535                _value.IndexDocument = _child.Value;
 19536            }
 19537            _child = element.Element(System.Xml.Linq.XName.Get("ErrorDocument404Path", ""));
 19538            if (_child != null)
 19539            {
 19540                _value.ErrorDocument404Path = _child.Value;
 19541            }
 19542            _child = element.Element(System.Xml.Linq.XName.Get("DefaultIndexDocumentPath", ""));
 19543            if (_child != null)
 19544            {
 19545                _value.DefaultIndexDocumentPath = _child.Value;
 19546            }
 19547            CustomizeFromXml(element, _value);
 19548            return _value;
 19549        }
 19550
 19551        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobStaticWebs
 19552    }
 19553}
 19554#endregion class BlobStaticWebsite
 19555
 19556#region class BlobTag
 19557namespace Azure.Storage.Blobs.Models
 19558{
 19559    /// <summary>
 19560    /// BlobTag
 19561    /// </summary>
 19562    internal partial class BlobTag
 19563    {
 19564        /// <summary>
 19565        /// Key
 19566        /// </summary>
 19567        public string Key { get; set; }
 19568
 19569        /// <summary>
 19570        /// Value
 19571        /// </summary>
 19572        public string Value { get; set; }
 19573
 19574        /// <summary>
 19575        /// Creates a new BlobTag instance
 19576        /// </summary>
 19577        public BlobTag() { }
 19578
 19579        /// <summary>
 19580        /// Serialize a BlobTag instance as XML.
 19581        /// </summary>
 19582        /// <param name="value">The BlobTag instance to serialize.</param>
 19583        /// <param name="name">An optional name to use for the root element instead of "Tag".</param>
 19584        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 19585        /// <returns>The serialized XML element.</returns>
 19586        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.BlobTag value, string name = "Tag", st
 19587        {
 19588            System.Diagnostics.Debug.Assert(value != null);
 19589            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 19590            _element.Add(new System.Xml.Linq.XElement(
 19591                System.Xml.Linq.XName.Get("Key", ""),
 19592                value.Key));
 19593            _element.Add(new System.Xml.Linq.XElement(
 19594                System.Xml.Linq.XName.Get("Value", ""),
 19595                value.Value));
 19596            return _element;
 19597        }
 19598
 19599        /// <summary>
 19600        /// Deserializes XML into a new BlobTag instance.
 19601        /// </summary>
 19602        /// <param name="element">The XML element to deserialize.</param>
 19603        /// <returns>A deserialized BlobTag instance.</returns>
 19604        internal static Azure.Storage.Blobs.Models.BlobTag FromXml(System.Xml.Linq.XElement element)
 19605        {
 19606            System.Diagnostics.Debug.Assert(element != null);
 19607            System.Xml.Linq.XElement _child;
 19608            Azure.Storage.Blobs.Models.BlobTag _value = new Azure.Storage.Blobs.Models.BlobTag();
 19609            _child = element.Element(System.Xml.Linq.XName.Get("Key", ""));
 19610            if (_child != null)
 19611            {
 19612                _value.Key = _child.Value;
 19613            }
 19614            _child = element.Element(System.Xml.Linq.XName.Get("Value", ""));
 19615            if (_child != null)
 19616            {
 19617                _value.Value = _child.Value;
 19618            }
 19619            CustomizeFromXml(element, _value);
 19620            return _value;
 19621        }
 19622
 19623        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobTag value)
 19624    }
 19625}
 19626#endregion class BlobTag
 19627
 19628#region class BlobTags
 19629namespace Azure.Storage.Blobs.Models
 19630{
 19631    /// <summary>
 19632    /// Blob tags
 19633    /// </summary>
 19634    internal partial class BlobTags
 19635    {
 19636        /// <summary>
 19637        /// BlobTagSet
 19638        /// </summary>
 19639        public System.Collections.Generic.IList<Azure.Storage.Blobs.Models.BlobTag> BlobTagSet { get; internal set; }
 19640
 19641        /// <summary>
 19642        /// Creates a new BlobTags instance
 19643        /// </summary>
 19644        public BlobTags()
 19645            : this(false)
 19646        {
 19647        }
 19648
 19649        /// <summary>
 19650        /// Creates a new BlobTags instance
 19651        /// </summary>
 19652        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 19653        internal BlobTags(bool skipInitialization)
 19654        {
 19655            if (!skipInitialization)
 19656            {
 19657                BlobTagSet = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobTag>();
 19658            }
 19659        }
 19660
 19661        /// <summary>
 19662        /// Serialize a BlobTags instance as XML.
 19663        /// </summary>
 19664        /// <param name="value">The BlobTags instance to serialize.</param>
 19665        /// <param name="name">An optional name to use for the root element instead of "Tags".</param>
 19666        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 19667        /// <returns>The serialized XML element.</returns>
 19668        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.BlobTags value, string name = "Tags", 
 19669        {
 19670            System.Diagnostics.Debug.Assert(value != null);
 19671            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 19672            System.Xml.Linq.XElement _elements = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get("TagSet", ""));
 19673            foreach (Azure.Storage.Blobs.Models.BlobTag _child in value.BlobTagSet)
 19674            {
 19675                _elements.Add(Azure.Storage.Blobs.Models.BlobTag.ToXml(_child));
 19676            }
 19677            _element.Add(_elements);return _element;
 19678        }
 19679
 19680        /// <summary>
 19681        /// Deserializes XML into a new BlobTags instance.
 19682        /// </summary>
 19683        /// <param name="element">The XML element to deserialize.</param>
 19684        /// <returns>A deserialized BlobTags instance.</returns>
 19685        internal static Azure.Storage.Blobs.Models.BlobTags FromXml(System.Xml.Linq.XElement element)
 19686        {
 19687            System.Diagnostics.Debug.Assert(element != null);
 19688            System.Xml.Linq.XElement _child;
 19689            Azure.Storage.Blobs.Models.BlobTags _value = new Azure.Storage.Blobs.Models.BlobTags(true);
 19690            _child = element.Element(System.Xml.Linq.XName.Get("TagSet", ""));
 19691            if (_child != null)
 19692            {
 19693                _value.BlobTagSet = System.Linq.Enumerable.ToList(
 19694                    System.Linq.Enumerable.Select(
 19695                        _child.Elements(System.Xml.Linq.XName.Get("Tag", "")),
 19696                        e => Azure.Storage.Blobs.Models.BlobTag.FromXml(e)));
 19697            }
 19698            else
 19699            {
 19700                _value.BlobTagSet = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobTag>();
 19701            }
 19702            CustomizeFromXml(element, _value);
 19703            return _value;
 19704        }
 19705
 19706        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobTags value
 19707    }
 19708}
 19709#endregion class BlobTags
 19710
 19711#region enum BlobType
 19712namespace Azure.Storage.Blobs.Models
 19713{
 19714    /// <summary>
 19715    /// BlobType values
 19716    /// </summary>
 19717    public enum BlobType
 19718    {
 19719        /// <summary>
 19720        /// BlockBlob
 19721        /// </summary>
 19722        Block,
 19723
 19724        /// <summary>
 19725        /// PageBlob
 19726        /// </summary>
 19727        Page,
 19728
 19729        /// <summary>
 19730        /// AppendBlob
 19731        /// </summary>
 19732        Append
 19733    }
 19734}
 19735
 19736namespace Azure.Storage.Blobs
 19737{
 19738    internal static partial class BlobRestClient
 19739    {
 19740        public static partial class Serialization
 19741        {
 19742            public static string ToString(Azure.Storage.Blobs.Models.BlobType value)
 19743            {
 19744                return value switch
 19745                {
 19746                    Azure.Storage.Blobs.Models.BlobType.Block => "BlockBlob",
 19747                    Azure.Storage.Blobs.Models.BlobType.Page => "PageBlob",
 19748                    Azure.Storage.Blobs.Models.BlobType.Append => "AppendBlob",
 19749                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 19750                };
 19751            }
 19752
 19753            public static Azure.Storage.Blobs.Models.BlobType ParseBlobType(string value)
 19754            {
 19755                return value switch
 19756                {
 19757                    "BlockBlob" => Azure.Storage.Blobs.Models.BlobType.Block,
 19758                    "PageBlob" => Azure.Storage.Blobs.Models.BlobType.Page,
 19759                    "AppendBlob" => Azure.Storage.Blobs.Models.BlobType.Append,
 19760                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 19761                };
 19762            }
 19763        }
 19764    }
 19765}
 19766#endregion enum BlobType
 19767
 19768#region class BlobsFlatSegment
 19769namespace Azure.Storage.Blobs.Models
 19770{
 19771    /// <summary>
 19772    /// An enumeration of blobs
 19773    /// </summary>
 19774    internal partial class BlobsFlatSegment
 19775    {
 19776        /// <summary>
 19777        /// ServiceEndpoint
 19778        /// </summary>
 19779        public string ServiceEndpoint { get; internal set; }
 19780
 19781        /// <summary>
 19782        /// ContainerName
 19783        /// </summary>
 19784        public string ContainerName { get; internal set; }
 19785
 19786        /// <summary>
 19787        /// Prefix
 19788        /// </summary>
 19789        public string Prefix { get; internal set; }
 19790
 19791        /// <summary>
 19792        /// Marker
 19793        /// </summary>
 19794        public string Marker { get; internal set; }
 19795
 19796        /// <summary>
 19797        /// MaxResults
 19798        /// </summary>
 19799        public int? MaxResults { get; internal set; }
 19800
 19801        /// <summary>
 19802        /// NextMarker
 19803        /// </summary>
 19804        public string NextMarker { get; internal set; }
 19805
 19806        /// <summary>
 19807        /// BlobItems
 19808        /// </summary>
 19809        public System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobItemInternal> BlobItems { get; inte
 19810
 19811        /// <summary>
 19812        /// Creates a new BlobsFlatSegment instance
 19813        /// </summary>
 19814        public BlobsFlatSegment()
 19815            : this(false)
 19816        {
 19817        }
 19818
 19819        /// <summary>
 19820        /// Creates a new BlobsFlatSegment instance
 19821        /// </summary>
 19822        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 19823        internal BlobsFlatSegment(bool skipInitialization)
 19824        {
 19825            if (!skipInitialization)
 19826            {
 19827                BlobItems = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobItemInternal>();
 19828            }
 19829        }
 19830
 19831        /// <summary>
 19832        /// Deserializes XML into a new BlobsFlatSegment instance.
 19833        /// </summary>
 19834        /// <param name="element">The XML element to deserialize.</param>
 19835        /// <returns>A deserialized BlobsFlatSegment instance.</returns>
 19836        internal static Azure.Storage.Blobs.Models.BlobsFlatSegment FromXml(System.Xml.Linq.XElement element)
 19837        {
 19838            System.Diagnostics.Debug.Assert(element != null);
 19839            System.Xml.Linq.XElement _child;
 19840            System.Xml.Linq.XAttribute _attribute;
 19841            Azure.Storage.Blobs.Models.BlobsFlatSegment _value = new Azure.Storage.Blobs.Models.BlobsFlatSegment(true);
 19842            _attribute = element.Attribute(System.Xml.Linq.XName.Get("ServiceEndpoint", ""));
 19843            if (_attribute != null)
 19844            {
 19845                _value.ServiceEndpoint = _attribute.Value;
 19846            }
 19847            _attribute = element.Attribute(System.Xml.Linq.XName.Get("ContainerName", ""));
 19848            if (_attribute != null)
 19849            {
 19850                _value.ContainerName = _attribute.Value;
 19851            }
 19852            _child = element.Element(System.Xml.Linq.XName.Get("Prefix", ""));
 19853            if (_child != null)
 19854            {
 19855                _value.Prefix = _child.Value;
 19856            }
 19857            _child = element.Element(System.Xml.Linq.XName.Get("Marker", ""));
 19858            if (_child != null)
 19859            {
 19860                _value.Marker = _child.Value;
 19861            }
 19862            _child = element.Element(System.Xml.Linq.XName.Get("MaxResults", ""));
 19863            if (_child != null)
 19864            {
 19865                _value.MaxResults = int.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 19866            }
 19867            _child = element.Element(System.Xml.Linq.XName.Get("NextMarker", ""));
 19868            if (_child != null)
 19869            {
 19870                _value.NextMarker = _child.Value;
 19871            }
 19872            _child = element.Element(System.Xml.Linq.XName.Get("Blobs", ""));
 19873            if (_child != null)
 19874            {
 19875                _value.BlobItems = System.Linq.Enumerable.ToList(
 19876                    System.Linq.Enumerable.Select(
 19877                        _child.Elements(System.Xml.Linq.XName.Get("Blob", "")),
 19878                        e => Azure.Storage.Blobs.Models.BlobItemInternal.FromXml(e)));
 19879            }
 19880            else
 19881            {
 19882                _value.BlobItems = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobItemInternal>();
 19883            }
 19884            CustomizeFromXml(element, _value);
 19885            return _value;
 19886        }
 19887
 19888        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobsFlatSegme
 19889    }
 19890}
 19891#endregion class BlobsFlatSegment
 19892
 19893#region class BlobsHierarchySegment
 19894namespace Azure.Storage.Blobs.Models
 19895{
 19896    /// <summary>
 19897    /// An enumeration of blobs
 19898    /// </summary>
 19899    internal partial class BlobsHierarchySegment
 19900    {
 19901        /// <summary>
 19902        /// ServiceEndpoint
 19903        /// </summary>
 19904        public string ServiceEndpoint { get; internal set; }
 19905
 19906        /// <summary>
 19907        /// ContainerName
 19908        /// </summary>
 19909        public string ContainerName { get; internal set; }
 19910
 19911        /// <summary>
 19912        /// Prefix
 19913        /// </summary>
 19914        public string Prefix { get; internal set; }
 19915
 19916        /// <summary>
 19917        /// Marker
 19918        /// </summary>
 19919        public string Marker { get; internal set; }
 19920
 19921        /// <summary>
 19922        /// MaxResults
 19923        /// </summary>
 19924        public int? MaxResults { get; internal set; }
 19925
 19926        /// <summary>
 19927        /// Delimiter
 19928        /// </summary>
 19929        public string Delimiter { get; internal set; }
 19930
 19931        /// <summary>
 19932        /// NextMarker
 19933        /// </summary>
 19934        public string NextMarker { get; internal set; }
 19935
 19936        /// <summary>
 19937        /// BlobItems
 19938        /// </summary>
 19939        public System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobItemInternal> BlobItems { get; inte
 19940
 19941        /// <summary>
 19942        /// BlobPrefixes
 19943        /// </summary>
 19944        public System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobPrefix> BlobPrefixes { get; interna
 19945
 19946        /// <summary>
 19947        /// Creates a new BlobsHierarchySegment instance
 19948        /// </summary>
 19949        public BlobsHierarchySegment()
 19950            : this(false)
 19951        {
 19952        }
 19953
 19954        /// <summary>
 19955        /// Creates a new BlobsHierarchySegment instance
 19956        /// </summary>
 19957        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 19958        internal BlobsHierarchySegment(bool skipInitialization)
 19959        {
 19960            if (!skipInitialization)
 19961            {
 19962                BlobItems = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobItemInternal>();
 19963                BlobPrefixes = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobPrefix>();
 19964            }
 19965        }
 19966
 19967        /// <summary>
 19968        /// Deserializes XML into a new BlobsHierarchySegment instance.
 19969        /// </summary>
 19970        /// <param name="element">The XML element to deserialize.</param>
 19971        /// <returns>A deserialized BlobsHierarchySegment instance.</returns>
 19972        internal static Azure.Storage.Blobs.Models.BlobsHierarchySegment FromXml(System.Xml.Linq.XElement element)
 19973        {
 19974            System.Diagnostics.Debug.Assert(element != null);
 19975            System.Xml.Linq.XElement _child;
 19976            System.Xml.Linq.XAttribute _attribute;
 19977            Azure.Storage.Blobs.Models.BlobsHierarchySegment _value = new Azure.Storage.Blobs.Models.BlobsHierarchySegme
 19978            _attribute = element.Attribute(System.Xml.Linq.XName.Get("ServiceEndpoint", ""));
 19979            if (_attribute != null)
 19980            {
 19981                _value.ServiceEndpoint = _attribute.Value;
 19982            }
 19983            _attribute = element.Attribute(System.Xml.Linq.XName.Get("ContainerName", ""));
 19984            if (_attribute != null)
 19985            {
 19986                _value.ContainerName = _attribute.Value;
 19987            }
 19988            _child = element.Element(System.Xml.Linq.XName.Get("Prefix", ""));
 19989            if (_child != null)
 19990            {
 19991                _value.Prefix = _child.Value;
 19992            }
 19993            _child = element.Element(System.Xml.Linq.XName.Get("Marker", ""));
 19994            if (_child != null)
 19995            {
 19996                _value.Marker = _child.Value;
 19997            }
 19998            _child = element.Element(System.Xml.Linq.XName.Get("MaxResults", ""));
 19999            if (_child != null)
 20000            {
 20001                _value.MaxResults = int.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 20002            }
 20003            _child = element.Element(System.Xml.Linq.XName.Get("Delimiter", ""));
 20004            if (_child != null)
 20005            {
 20006                _value.Delimiter = _child.Value;
 20007            }
 20008            _child = element.Element(System.Xml.Linq.XName.Get("NextMarker", ""));
 20009            if (_child != null)
 20010            {
 20011                _value.NextMarker = _child.Value;
 20012            }
 20013            _child = element.Element(System.Xml.Linq.XName.Get("Blobs", ""));
 20014            if (_child != null)
 20015            {
 20016                _value.BlobItems = System.Linq.Enumerable.ToList(
 20017                    System.Linq.Enumerable.Select(
 20018                        _child.Elements(System.Xml.Linq.XName.Get("Blob", "")),
 20019                        e => Azure.Storage.Blobs.Models.BlobItemInternal.FromXml(e)));
 20020            }
 20021            else
 20022            {
 20023                _value.BlobItems = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobItemInternal>();
 20024            }
 20025            _child = element.Element(System.Xml.Linq.XName.Get("Blobs", ""));
 20026            if (_child != null)
 20027            {
 20028                _value.BlobPrefixes = System.Linq.Enumerable.ToList(
 20029                    System.Linq.Enumerable.Select(
 20030                        _child.Elements(System.Xml.Linq.XName.Get("BlobPrefix", "")),
 20031                        e => Azure.Storage.Blobs.Models.BlobPrefix.FromXml(e)));
 20032            }
 20033            else
 20034            {
 20035                _value.BlobPrefixes = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobPrefix>();
 20036            }
 20037            CustomizeFromXml(element, _value);
 20038            return _value;
 20039        }
 20040
 20041        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlobsHierarchy
 20042    }
 20043}
 20044#endregion class BlobsHierarchySegment
 20045
 20046#region class BlockInfo
 20047namespace Azure.Storage.Blobs.Models
 20048{
 20049    /// <summary>
 20050    /// BlockInfo
 20051    /// </summary>
 20052    public partial class BlockInfo
 20053    {
 20054        /// <summary>
 20055        /// This header is returned so that the client can check for message content integrity. The value of this header
 20056        /// </summary>
 20057        #pragma warning disable CA1819 // Properties should not return arrays
 20058        public byte[] ContentHash { get; internal set; }
 20059        #pragma warning restore CA1819 // Properties should not return arrays
 20060
 20061        /// <summary>
 20062        /// This header is returned so that the client can check for message content integrity. The value of this header
 20063        /// </summary>
 20064        #pragma warning disable CA1819 // Properties should not return arrays
 20065        public byte[] ContentCrc64 { get; internal set; }
 20066        #pragma warning restore CA1819 // Properties should not return arrays
 20067
 20068        /// <summary>
 20069        /// The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the bloc
 20070        /// </summary>
 20071        public string EncryptionKeySha256 { get; internal set; }
 20072
 20073        /// <summary>
 20074        /// Returns the name of the encryption scope used to encrypt the blob contents and application metadata.  Note t
 20075        /// </summary>
 20076        public string EncryptionScope { get; internal set; }
 20077
 20078        /// <summary>
 20079        /// Prevent direct instantiation of BlockInfo instances.
 20080        /// You can use BlobsModelFactory.BlockInfo instead.
 20081        /// </summary>
 20082        internal BlockInfo() { }
 20083    }
 20084
 20085    /// <summary>
 20086    /// BlobsModelFactory provides utilities for mocking.
 20087    /// </summary>
 20088    public static partial class BlobsModelFactory
 20089    {
 20090        /// <summary>
 20091        /// Creates a new BlockInfo instance for mocking.
 20092        /// </summary>
 20093        public static BlockInfo BlockInfo(
 20094            byte[] contentHash,
 20095            byte[] contentCrc64,
 20096            string encryptionKeySha256,
 20097            string encryptionScope)
 20098        {
 20099            return new BlockInfo()
 20100            {
 20101                ContentHash = contentHash,
 20102                ContentCrc64 = contentCrc64,
 20103                EncryptionKeySha256 = encryptionKeySha256,
 20104                EncryptionScope = encryptionScope,
 20105            };
 20106        }
 20107    }
 20108}
 20109#endregion class BlockInfo
 20110
 20111#region class BlockList
 20112namespace Azure.Storage.Blobs.Models
 20113{
 20114    /// <summary>
 20115    /// BlockList
 20116    /// </summary>
 20117    public partial class BlockList
 20118    {
 20119        /// <summary>
 20120        /// CommittedBlocks
 20121        /// </summary>
 20122        public System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobBlock> CommittedBlocks { get; inter
 20123
 20124        /// <summary>
 20125        /// UncommittedBlocks
 20126        /// </summary>
 20127        public System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobBlock> UncommittedBlocks { get; int
 20128
 20129        /// <summary>
 20130        /// Creates a new BlockList instance
 20131        /// </summary>
 20132        internal BlockList()
 20133            : this(false)
 20134        {
 20135        }
 20136
 20137        /// <summary>
 20138        /// Creates a new BlockList instance
 20139        /// </summary>
 20140        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 20141        internal BlockList(bool skipInitialization)
 20142        {
 20143            if (!skipInitialization)
 20144            {
 20145                CommittedBlocks = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobBlock>();
 20146                UncommittedBlocks = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobBlock>();
 20147            }
 20148        }
 20149
 20150        /// <summary>
 20151        /// Deserializes XML into a new BlockList instance.
 20152        /// </summary>
 20153        /// <param name="element">The XML element to deserialize.</param>
 20154        /// <returns>A deserialized BlockList instance.</returns>
 20155        internal static Azure.Storage.Blobs.Models.BlockList FromXml(System.Xml.Linq.XElement element)
 20156        {
 20157            System.Diagnostics.Debug.Assert(element != null);
 20158            System.Xml.Linq.XElement _child;
 20159            Azure.Storage.Blobs.Models.BlockList _value = new Azure.Storage.Blobs.Models.BlockList(true);
 20160            _child = element.Element(System.Xml.Linq.XName.Get("CommittedBlocks", ""));
 20161            if (_child != null)
 20162            {
 20163                _value.CommittedBlocks = System.Linq.Enumerable.ToList(
 20164                    System.Linq.Enumerable.Select(
 20165                        _child.Elements(System.Xml.Linq.XName.Get("Block", "")),
 20166                        e => Azure.Storage.Blobs.Models.BlobBlock.FromXml(e)));
 20167            }
 20168            else
 20169            {
 20170                _value.CommittedBlocks = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobBlock>();
 20171            }
 20172            _child = element.Element(System.Xml.Linq.XName.Get("UncommittedBlocks", ""));
 20173            if (_child != null)
 20174            {
 20175                _value.UncommittedBlocks = System.Linq.Enumerable.ToList(
 20176                    System.Linq.Enumerable.Select(
 20177                        _child.Elements(System.Xml.Linq.XName.Get("Block", "")),
 20178                        e => Azure.Storage.Blobs.Models.BlobBlock.FromXml(e)));
 20179            }
 20180            else
 20181            {
 20182                _value.UncommittedBlocks = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.BlobBlock>();
 20183            }
 20184            CustomizeFromXml(element, _value);
 20185            return _value;
 20186        }
 20187
 20188        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.BlockList valu
 20189    }
 20190
 20191    /// <summary>
 20192    /// BlobsModelFactory provides utilities for mocking.
 20193    /// </summary>
 20194    public static partial class BlobsModelFactory
 20195    {
 20196        /// <summary>
 20197        /// Creates a new BlockList instance for mocking.
 20198        /// </summary>
 20199        public static BlockList BlockList(
 20200            System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobBlock> committedBlocks = default,
 20201            System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.BlobBlock> uncommittedBlocks = default)
 20202        {
 20203            return new BlockList()
 20204            {
 20205                CommittedBlocks = committedBlocks,
 20206                UncommittedBlocks = uncommittedBlocks,
 20207            };
 20208        }
 20209    }
 20210}
 20211#endregion class BlockList
 20212
 20213#region enum BlockListType
 20214namespace Azure.Storage.Blobs.Models
 20215{
 20216    /// <summary>
 20217    /// Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together
 20218    /// </summary>
 20219    internal enum BlockListType
 20220    {
 20221        /// <summary>
 20222        /// committed
 20223        /// </summary>
 20224        Committed,
 20225
 20226        /// <summary>
 20227        /// uncommitted
 20228        /// </summary>
 20229        Uncommitted,
 20230
 20231        /// <summary>
 20232        /// all
 20233        /// </summary>
 20234        All
 20235    }
 20236}
 20237
 20238namespace Azure.Storage.Blobs
 20239{
 20240    internal static partial class BlobRestClient
 20241    {
 20242        public static partial class Serialization
 20243        {
 20244            public static string ToString(Azure.Storage.Blobs.Models.BlockListType value)
 20245            {
 20246                return value switch
 20247                {
 20248                    Azure.Storage.Blobs.Models.BlockListType.Committed => "committed",
 20249                    Azure.Storage.Blobs.Models.BlockListType.Uncommitted => "uncommitted",
 20250                    Azure.Storage.Blobs.Models.BlockListType.All => "all",
 20251                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 20252                };
 20253            }
 20254
 20255            public static Azure.Storage.Blobs.Models.BlockListType ParseBlockListType(string value)
 20256            {
 20257                return value switch
 20258                {
 20259                    "committed" => Azure.Storage.Blobs.Models.BlockListType.Committed,
 20260                    "uncommitted" => Azure.Storage.Blobs.Models.BlockListType.Uncommitted,
 20261                    "all" => Azure.Storage.Blobs.Models.BlockListType.All,
 20262                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 20263                };
 20264            }
 20265        }
 20266    }
 20267}
 20268#endregion enum BlockListType
 20269
 20270#region class BlockLookupList
 20271namespace Azure.Storage.Blobs.Models
 20272{
 20273    /// <summary>
 20274    /// A list of block IDs split between the committed block list, in the uncommitted block list, or in the uncommitted
 20275    /// </summary>
 20276    internal partial class BlockLookupList
 20277    {
 20278        /// <summary>
 20279        /// Committed
 20280        /// </summary>
 20281        public System.Collections.Generic.IList<string> Committed { get; internal set; }
 20282
 20283        /// <summary>
 20284        /// Uncommitted
 20285        /// </summary>
 20286        public System.Collections.Generic.IList<string> Uncommitted { get; internal set; }
 20287
 20288        /// <summary>
 20289        /// Latest
 20290        /// </summary>
 20291        public System.Collections.Generic.IList<string> Latest { get; internal set; }
 20292
 20293        /// <summary>
 20294        /// Creates a new BlockLookupList instance
 20295        /// </summary>
 20296        public BlockLookupList()
 20297        {
 20298            Committed = new System.Collections.Generic.List<string>();
 20299            Uncommitted = new System.Collections.Generic.List<string>();
 20300            Latest = new System.Collections.Generic.List<string>();
 20301        }
 20302
 20303        /// <summary>
 20304        /// Serialize a BlockLookupList instance as XML.
 20305        /// </summary>
 20306        /// <param name="value">The BlockLookupList instance to serialize.</param>
 20307        /// <param name="name">An optional name to use for the root element instead of "BlockList".</param>
 20308        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 20309        /// <returns>The serialized XML element.</returns>
 20310        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.BlockLookupList value, string name = "
 20311        {
 20312            System.Diagnostics.Debug.Assert(value != null);
 20313            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 20314            if (value.Committed != null)
 20315            {
 20316                foreach (string _child in value.Committed)
 20317                {
 20318                    _element.Add(new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get("Committed", ""), _child));
 20319                }
 20320            }
 20321            if (value.Uncommitted != null)
 20322            {
 20323                foreach (string _child in value.Uncommitted)
 20324                {
 20325                    _element.Add(new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get("Uncommitted", ""), _child));
 20326                }
 20327            }
 20328            if (value.Latest != null)
 20329            {
 20330                foreach (string _child in value.Latest)
 20331                {
 20332                    _element.Add(new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get("Latest", ""), _child));
 20333                }
 20334            }
 20335            return _element;
 20336        }
 20337    }
 20338}
 20339#endregion class BlockLookupList
 20340
 20341#region class BrokenLease
 20342namespace Azure.Storage.Blobs.Models
 20343{
 20344    /// <summary>
 20345    /// BrokenLease
 20346    /// </summary>
 20347    internal partial class BrokenLease
 20348    {
 20349        /// <summary>
 20350        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 20351        /// </summary>
 20352        public Azure.ETag ETag { get; internal set; }
 20353
 20354        /// <summary>
 20355        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 20356        /// </summary>
 20357        public System.DateTimeOffset LastModified { get; internal set; }
 20358
 20359        /// <summary>
 20360        /// Approximate time remaining in the lease period, in seconds.
 20361        /// </summary>
 20362        public int LeaseTime { get; internal set; }
 20363
 20364        /// <summary>
 20365        /// Prevent direct instantiation of BrokenLease instances.
 20366        /// You can use BlobsModelFactory.BrokenLease instead.
 20367        /// </summary>
 20368        internal BrokenLease() { }
 20369    }
 20370}
 20371#endregion class BrokenLease
 20372
 20373#region class ClearRange
 20374namespace Azure.Storage.Blobs.Models
 20375{
 20376    /// <summary>
 20377    /// ClearRange
 20378    /// </summary>
 20379    internal partial class ClearRange
 20380    {
 20381        /// <summary>
 20382        /// Start
 20383        /// </summary>
 20384        public long Start { get; internal set; }
 20385
 20386        /// <summary>
 20387        /// End
 20388        /// </summary>
 20389        public long End { get; internal set; }
 20390
 20391        /// <summary>
 20392        /// Prevent direct instantiation of ClearRange instances.
 20393        /// You can use BlobsModelFactory.ClearRange instead.
 20394        /// </summary>
 20395        internal ClearRange() { }
 20396
 20397        /// <summary>
 20398        /// Deserializes XML into a new ClearRange instance.
 20399        /// </summary>
 20400        /// <param name="element">The XML element to deserialize.</param>
 20401        /// <returns>A deserialized ClearRange instance.</returns>
 20402        internal static Azure.Storage.Blobs.Models.ClearRange FromXml(System.Xml.Linq.XElement element)
 20403        {
 20404            System.Diagnostics.Debug.Assert(element != null);
 20405            System.Xml.Linq.XElement _child;
 20406            Azure.Storage.Blobs.Models.ClearRange _value = new Azure.Storage.Blobs.Models.ClearRange();
 20407            _child = element.Element(System.Xml.Linq.XName.Get("Start", ""));
 20408            if (_child != null)
 20409            {
 20410                _value.Start = long.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 20411            }
 20412            _child = element.Element(System.Xml.Linq.XName.Get("End", ""));
 20413            if (_child != null)
 20414            {
 20415                _value.End = long.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 20416            }
 20417            CustomizeFromXml(element, _value);
 20418            return _value;
 20419        }
 20420
 20421        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.ClearRange val
 20422    }
 20423}
 20424#endregion class ClearRange
 20425
 20426#region class ConditionNotMetError
 20427namespace Azure.Storage.Blobs.Models
 20428{
 20429    /// <summary>
 20430    /// ConditionNotMetError
 20431    /// </summary>
 20432    internal partial class ConditionNotMetError
 20433    {
 20434        /// <summary>
 20435        /// x-ms-error-code
 20436        /// </summary>
 20437        public string ErrorCode { get; internal set; }
 20438
 20439        /// <summary>
 20440        /// Prevent direct instantiation of ConditionNotMetError instances.
 20441        /// You can use BlobsModelFactory.ConditionNotMetError instead.
 20442        /// </summary>
 20443        internal ConditionNotMetError() { }
 20444    }
 20445}
 20446#endregion class ConditionNotMetError
 20447
 20448#region enum CopyStatus
 20449namespace Azure.Storage.Blobs.Models
 20450{
 20451    /// <summary>
 20452    /// CopyStatus values
 20453    /// </summary>
 20454    #pragma warning disable CA1717 // Only FlagsAttribute enums should have plural names
 20455    public enum CopyStatus
 20456    #pragma warning restore CA1717 // Only FlagsAttribute enums should have plural names
 20457    {
 20458        /// <summary>
 20459        /// pending
 20460        /// </summary>
 20461        Pending,
 20462
 20463        /// <summary>
 20464        /// success
 20465        /// </summary>
 20466        Success,
 20467
 20468        /// <summary>
 20469        /// aborted
 20470        /// </summary>
 20471        Aborted,
 20472
 20473        /// <summary>
 20474        /// failed
 20475        /// </summary>
 20476        Failed
 20477    }
 20478}
 20479
 20480namespace Azure.Storage.Blobs
 20481{
 20482    internal static partial class BlobRestClient
 20483    {
 20484        public static partial class Serialization
 20485        {
 20486            public static string ToString(Azure.Storage.Blobs.Models.CopyStatus value)
 20487            {
 20488                return value switch
 20489                {
 20490                    Azure.Storage.Blobs.Models.CopyStatus.Pending => "pending",
 20491                    Azure.Storage.Blobs.Models.CopyStatus.Success => "success",
 20492                    Azure.Storage.Blobs.Models.CopyStatus.Aborted => "aborted",
 20493                    Azure.Storage.Blobs.Models.CopyStatus.Failed => "failed",
 20494                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 20495                };
 20496            }
 20497
 20498            public static Azure.Storage.Blobs.Models.CopyStatus ParseCopyStatus(string value)
 20499            {
 20500                return value switch
 20501                {
 20502                    "pending" => Azure.Storage.Blobs.Models.CopyStatus.Pending,
 20503                    "success" => Azure.Storage.Blobs.Models.CopyStatus.Success,
 20504                    "aborted" => Azure.Storage.Blobs.Models.CopyStatus.Aborted,
 20505                    "failed" => Azure.Storage.Blobs.Models.CopyStatus.Failed,
 20506                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 20507                };
 20508            }
 20509        }
 20510    }
 20511}
 20512#endregion enum CopyStatus
 20513
 20514#region class DataLakeStorageError
 20515namespace Azure.Storage.Blobs.Models
 20516{
 20517    /// <summary>
 20518    /// DataLakeStorageError
 20519    /// </summary>
 20520    internal partial class DataLakeStorageError
 20521    {
 20522        /// <summary>
 20523        /// The service error response object.
 20524        /// </summary>
 20525        public Azure.Storage.Blobs.Models.DataLakeStorageErrorDetails DataLakeStorageErrorDetails { get; internal set; }
 20526
 20527        /// <summary>
 20528        /// Creates a new DataLakeStorageError instance
 20529        /// </summary>
 20530        public DataLakeStorageError()
 20531            : this(false)
 20532        {
 20533        }
 20534
 20535        /// <summary>
 20536        /// Creates a new DataLakeStorageError instance
 20537        /// </summary>
 20538        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 20539        internal DataLakeStorageError(bool skipInitialization)
 20540        {
 20541            if (!skipInitialization)
 20542            {
 20543                DataLakeStorageErrorDetails = new Azure.Storage.Blobs.Models.DataLakeStorageErrorDetails();
 20544            }
 20545        }
 20546
 20547        /// <summary>
 20548        /// Deserializes XML into a new DataLakeStorageError instance.
 20549        /// </summary>
 20550        /// <param name="element">The XML element to deserialize.</param>
 20551        /// <returns>A deserialized DataLakeStorageError instance.</returns>
 20552        internal static Azure.Storage.Blobs.Models.DataLakeStorageError FromXml(System.Xml.Linq.XElement element)
 20553        {
 20554            System.Diagnostics.Debug.Assert(element != null);
 20555            System.Xml.Linq.XElement _child;
 20556            Azure.Storage.Blobs.Models.DataLakeStorageError _value = new Azure.Storage.Blobs.Models.DataLakeStorageError
 20557            _child = element.Element(System.Xml.Linq.XName.Get("error", ""));
 20558            if (_child != null)
 20559            {
 20560                _value.DataLakeStorageErrorDetails = Azure.Storage.Blobs.Models.DataLakeStorageErrorDetails.FromXml(_chi
 20561            }
 20562            CustomizeFromXml(element, _value);
 20563            return _value;
 20564        }
 20565
 20566        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.DataLakeStorag
 20567    }
 20568}
 20569#endregion class DataLakeStorageError
 20570
 20571#region class DataLakeStorageErrorDetails
 20572namespace Azure.Storage.Blobs.Models
 20573{
 20574    /// <summary>
 20575    /// The service error response object.
 20576    /// </summary>
 20577    internal partial class DataLakeStorageErrorDetails
 20578    {
 20579        /// <summary>
 20580        /// The service error code.
 20581        /// </summary>
 20582        public string Code { get; internal set; }
 20583
 20584        /// <summary>
 20585        /// The service error message.
 20586        /// </summary>
 20587        public string Message { get; internal set; }
 20588
 20589        /// <summary>
 20590        /// Prevent direct instantiation of DataLakeStorageErrorDetails instances.
 20591        /// You can use BlobsModelFactory.DataLakeStorageErrorDetails instead.
 20592        /// </summary>
 20593        internal DataLakeStorageErrorDetails() { }
 20594
 20595        /// <summary>
 20596        /// Deserializes XML into a new DataLakeStorageErrorDetails instance.
 20597        /// </summary>
 20598        /// <param name="element">The XML element to deserialize.</param>
 20599        /// <returns>A deserialized DataLakeStorageErrorDetails instance.</returns>
 20600        internal static Azure.Storage.Blobs.Models.DataLakeStorageErrorDetails FromXml(System.Xml.Linq.XElement element)
 20601        {
 20602            System.Diagnostics.Debug.Assert(element != null);
 20603            System.Xml.Linq.XElement _child;
 20604            Azure.Storage.Blobs.Models.DataLakeStorageErrorDetails _value = new Azure.Storage.Blobs.Models.DataLakeStora
 20605            _child = element.Element(System.Xml.Linq.XName.Get("Code", ""));
 20606            if (_child != null)
 20607            {
 20608                _value.Code = _child.Value;
 20609            }
 20610            _child = element.Element(System.Xml.Linq.XName.Get("Message", ""));
 20611            if (_child != null)
 20612            {
 20613                _value.Message = _child.Value;
 20614            }
 20615            CustomizeFromXml(element, _value);
 20616            return _value;
 20617        }
 20618
 20619        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.DataLakeStorag
 20620    }
 20621}
 20622#endregion class DataLakeStorageErrorDetails
 20623
 20624#region enum DeleteSnapshotsOption
 20625namespace Azure.Storage.Blobs.Models
 20626{
 20627    /// <summary>
 20628    /// Required if the blob has associated snapshots. Specify one of the following two options: include: Delete the bas
 20629    /// </summary>
 20630    public enum DeleteSnapshotsOption
 20631    {
 20632        /// <summary>
 20633        /// none
 20634        /// </summary>
 20635        None,
 20636
 20637        /// <summary>
 20638        /// include
 20639        /// </summary>
 20640        IncludeSnapshots,
 20641
 20642        /// <summary>
 20643        /// only
 20644        /// </summary>
 20645        OnlySnapshots
 20646    }
 20647}
 20648
 20649namespace Azure.Storage.Blobs
 20650{
 20651    internal static partial class BlobRestClient
 20652    {
 20653        public static partial class Serialization
 20654        {
 20655            public static string ToString(Azure.Storage.Blobs.Models.DeleteSnapshotsOption value)
 20656            {
 20657                return value switch
 20658                {
 20659                    Azure.Storage.Blobs.Models.DeleteSnapshotsOption.None => null,
 20660                    Azure.Storage.Blobs.Models.DeleteSnapshotsOption.IncludeSnapshots => "include",
 20661                    Azure.Storage.Blobs.Models.DeleteSnapshotsOption.OnlySnapshots => "only",
 20662                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 20663                };
 20664            }
 20665
 20666            public static Azure.Storage.Blobs.Models.DeleteSnapshotsOption ParseDeleteSnapshotsOption(string value)
 20667            {
 20668                return value switch
 20669                {
 20670                    null => Azure.Storage.Blobs.Models.DeleteSnapshotsOption.None,
 20671                    "include" => Azure.Storage.Blobs.Models.DeleteSnapshotsOption.IncludeSnapshots,
 20672                    "only" => Azure.Storage.Blobs.Models.DeleteSnapshotsOption.OnlySnapshots,
 20673                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 20674                };
 20675            }
 20676        }
 20677    }
 20678}
 20679#endregion enum DeleteSnapshotsOption
 20680
 20681#region class DelimitedTextConfigurationInternal
 20682namespace Azure.Storage.Blobs.Models
 20683{
 20684    /// <summary>
 20685    /// delimited text configuration
 20686    /// </summary>
 20687    internal partial class DelimitedTextConfigurationInternal
 20688    {
 20689        /// <summary>
 20690        /// column separator
 20691        /// </summary>
 20692        public string ColumnSeparator { get; set; }
 20693
 20694        /// <summary>
 20695        /// field quote
 20696        /// </summary>
 20697        public string FieldQuote { get; set; }
 20698
 20699        /// <summary>
 20700        /// record separator
 20701        /// </summary>
 20702        public string RecordSeparator { get; set; }
 20703
 20704        /// <summary>
 20705        /// escape char
 20706        /// </summary>
 20707        public string EscapeChar { get; set; }
 20708
 20709        /// <summary>
 20710        /// has headers
 20711        /// </summary>
 20712        public bool HeadersPresent { get; set; }
 20713
 20714        /// <summary>
 20715        /// Creates a new DelimitedTextConfigurationInternal instance
 20716        /// </summary>
 20717        public DelimitedTextConfigurationInternal() { }
 20718
 20719        /// <summary>
 20720        /// Serialize a DelimitedTextConfigurationInternal instance as XML.
 20721        /// </summary>
 20722        /// <param name="value">The DelimitedTextConfigurationInternal instance to serialize.</param>
 20723        /// <param name="name">An optional name to use for the root element instead of "DelimitedTextConfiguration".</pa
 20724        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 20725        /// <returns>The serialized XML element.</returns>
 20726        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.DelimitedTextConfigurationInternal val
 20727        {
 20728            System.Diagnostics.Debug.Assert(value != null);
 20729            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 20730            _element.Add(new System.Xml.Linq.XElement(
 20731                System.Xml.Linq.XName.Get("ColumnSeparator", ""),
 20732                value.ColumnSeparator));
 20733            _element.Add(new System.Xml.Linq.XElement(
 20734                System.Xml.Linq.XName.Get("FieldQuote", ""),
 20735                value.FieldQuote));
 20736            _element.Add(new System.Xml.Linq.XElement(
 20737                System.Xml.Linq.XName.Get("RecordSeparator", ""),
 20738                value.RecordSeparator));
 20739            _element.Add(new System.Xml.Linq.XElement(
 20740                System.Xml.Linq.XName.Get("EscapeChar", ""),
 20741                value.EscapeChar));
 20742            _element.Add(new System.Xml.Linq.XElement(
 20743                System.Xml.Linq.XName.Get("HasHeaders", ""),
 20744                #pragma warning disable CA1308 // Normalize strings to uppercase
 20745                value.HeadersPresent.ToString(System.Globalization.CultureInfo.InvariantCulture).ToLowerInvariant()));
 20746                #pragma warning restore CA1308 // Normalize strings to uppercase
 20747            return _element;
 20748        }
 20749    }
 20750}
 20751#endregion class DelimitedTextConfigurationInternal
 20752
 20753#region class DirectoryCreateResult
 20754namespace Azure.Storage.Blobs.Models
 20755{
 20756    /// <summary>
 20757    /// Directory CreateResult
 20758    /// </summary>
 20759    internal partial class DirectoryCreateResult
 20760    {
 20761        /// <summary>
 20762        /// An HTTP entity tag associated with the file or directory.
 20763        /// </summary>
 20764        public Azure.ETag ETag { get; internal set; }
 20765
 20766        /// <summary>
 20767        /// The data and time the file or directory was last modified. Write operations on the file or directory update 
 20768        /// </summary>
 20769        public System.DateTimeOffset LastModified { get; internal set; }
 20770
 20771        /// <summary>
 20772        /// The size of the resource in bytes.
 20773        /// </summary>
 20774        public long ContentLength { get; internal set; }
 20775
 20776        /// <summary>
 20777        /// Prevent direct instantiation of DirectoryCreateResult instances.
 20778        /// You can use BlobsModelFactory.DirectoryCreateResult instead.
 20779        /// </summary>
 20780        internal DirectoryCreateResult() { }
 20781    }
 20782}
 20783#endregion class DirectoryCreateResult
 20784
 20785#region class DirectoryDeleteResult
 20786namespace Azure.Storage.Blobs.Models
 20787{
 20788    /// <summary>
 20789    /// Directory DeleteResult
 20790    /// </summary>
 20791    internal partial class DirectoryDeleteResult
 20792    {
 20793        /// <summary>
 20794        /// When renaming a directory, the number of paths that are renamed with each invocation is limited. If the numb
 20795        /// </summary>
 20796        public string Marker { get; internal set; }
 20797
 20798        /// <summary>
 20799        /// Prevent direct instantiation of DirectoryDeleteResult instances.
 20800        /// You can use BlobsModelFactory.DirectoryDeleteResult instead.
 20801        /// </summary>
 20802        internal DirectoryDeleteResult() { }
 20803    }
 20804}
 20805#endregion class DirectoryDeleteResult
 20806
 20807#region class DirectoryGetAccessControlResult
 20808namespace Azure.Storage.Blobs.Models
 20809{
 20810    /// <summary>
 20811    /// Directory GetAccessControlResult
 20812    /// </summary>
 20813    internal partial class DirectoryGetAccessControlResult
 20814    {
 20815        /// <summary>
 20816        /// An HTTP entity tag associated with the file or directory.
 20817        /// </summary>
 20818        public Azure.ETag ETag { get; internal set; }
 20819
 20820        /// <summary>
 20821        /// The data and time the file or directory was last modified. Write operations on the file or directory update 
 20822        /// </summary>
 20823        public System.DateTimeOffset LastModified { get; internal set; }
 20824
 20825        /// <summary>
 20826        /// The owner of the file or directory. Included in the response if Hierarchical Namespace is enabled for the ac
 20827        /// </summary>
 20828        public string XMSOwner { get; internal set; }
 20829
 20830        /// <summary>
 20831        /// The owning group of the file or directory. Included in the response if Hierarchical Namespace is enabled for
 20832        /// </summary>
 20833        public string XMSGroup { get; internal set; }
 20834
 20835        /// <summary>
 20836        /// The POSIX access permissions for the file owner, the file owning group, and others. Included in the response
 20837        /// </summary>
 20838        public string XMSPermissions { get; internal set; }
 20839
 20840        /// <summary>
 20841        /// The POSIX access control list for the file or directory.  Included in the response only if the action is "ge
 20842        /// </summary>
 20843        public string XMSAcl { get; internal set; }
 20844
 20845        /// <summary>
 20846        /// Prevent direct instantiation of DirectoryGetAccessControlResult instances.
 20847        /// You can use BlobsModelFactory.DirectoryGetAccessControlResult instead.
 20848        /// </summary>
 20849        internal DirectoryGetAccessControlResult() { }
 20850    }
 20851}
 20852#endregion class DirectoryGetAccessControlResult
 20853
 20854#region class DirectoryRenameResult
 20855namespace Azure.Storage.Blobs.Models
 20856{
 20857    /// <summary>
 20858    /// Directory RenameResult
 20859    /// </summary>
 20860    internal partial class DirectoryRenameResult
 20861    {
 20862        /// <summary>
 20863        /// When renaming a directory, the number of paths that are renamed with each invocation is limited. If the numb
 20864        /// </summary>
 20865        public string Marker { get; internal set; }
 20866
 20867        /// <summary>
 20868        /// An HTTP entity tag associated with the file or directory.
 20869        /// </summary>
 20870        public Azure.ETag ETag { get; internal set; }
 20871
 20872        /// <summary>
 20873        /// The data and time the file or directory was last modified. Write operations on the file or directory update 
 20874        /// </summary>
 20875        public System.DateTimeOffset LastModified { get; internal set; }
 20876
 20877        /// <summary>
 20878        /// The size of the resource in bytes.
 20879        /// </summary>
 20880        public long ContentLength { get; internal set; }
 20881
 20882        /// <summary>
 20883        /// Prevent direct instantiation of DirectoryRenameResult instances.
 20884        /// You can use BlobsModelFactory.DirectoryRenameResult instead.
 20885        /// </summary>
 20886        internal DirectoryRenameResult() { }
 20887    }
 20888}
 20889#endregion class DirectoryRenameResult
 20890
 20891#region class DirectorySetAccessControlResult
 20892namespace Azure.Storage.Blobs.Models
 20893{
 20894    /// <summary>
 20895    /// Directory SetAccessControlResult
 20896    /// </summary>
 20897    internal partial class DirectorySetAccessControlResult
 20898    {
 20899        /// <summary>
 20900        /// An HTTP entity tag associated with the file or directory.
 20901        /// </summary>
 20902        public Azure.ETag ETag { get; internal set; }
 20903
 20904        /// <summary>
 20905        /// The data and time the file or directory was last modified. Write operations on the file or directory update 
 20906        /// </summary>
 20907        public System.DateTimeOffset LastModified { get; internal set; }
 20908
 20909        /// <summary>
 20910        /// Prevent direct instantiation of DirectorySetAccessControlResult instances.
 20911        /// You can use BlobsModelFactory.DirectorySetAccessControlResult instead.
 20912        /// </summary>
 20913        internal DirectorySetAccessControlResult() { }
 20914    }
 20915}
 20916#endregion class DirectorySetAccessControlResult
 20917
 20918#region enum EncryptionAlgorithmType
 20919namespace Azure.Storage.Blobs.Models
 20920{
 20921    /// <summary>
 20922    /// The algorithm used to produce the encryption key hash. Currently, the only accepted value is "AES256". Must be p
 20923    /// </summary>
 20924    public enum EncryptionAlgorithmType
 20925    {
 20926        /// <summary>
 20927        /// AES256
 20928        /// </summary>
 20929        Aes256
 20930    }
 20931}
 20932
 20933namespace Azure.Storage.Blobs
 20934{
 20935    internal static partial class BlobRestClient
 20936    {
 20937        public static partial class Serialization
 20938        {
 20939            public static string ToString(Azure.Storage.Blobs.Models.EncryptionAlgorithmType value)
 20940            {
 20941                return value switch
 20942                {
 20943                    Azure.Storage.Blobs.Models.EncryptionAlgorithmType.Aes256 => "AES256",
 20944                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 20945                };
 20946            }
 20947
 20948            public static Azure.Storage.Blobs.Models.EncryptionAlgorithmType ParseEncryptionAlgorithmType(string value)
 20949            {
 20950                return value switch
 20951                {
 20952                    "AES256" => Azure.Storage.Blobs.Models.EncryptionAlgorithmType.Aes256,
 20953                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 20954                };
 20955            }
 20956        }
 20957    }
 20958}
 20959#endregion enum EncryptionAlgorithmType
 20960
 20961#region class FailureNoContent
 20962namespace Azure.Storage.Blobs.Models
 20963{
 20964    /// <summary>
 20965    /// FailureNoContent
 20966    /// </summary>
 20967    internal partial class FailureNoContent
 20968    {
 20969        /// <summary>
 20970        /// x-ms-error-code
 20971        /// </summary>
 20972        public string ErrorCode { get; internal set; }
 20973
 20974        /// <summary>
 20975        /// Prevent direct instantiation of FailureNoContent instances.
 20976        /// You can use BlobsModelFactory.FailureNoContent instead.
 20977        /// </summary>
 20978        internal FailureNoContent() { }
 20979    }
 20980}
 20981#endregion class FailureNoContent
 20982
 20983#region class FilterBlobItem
 20984namespace Azure.Storage.Blobs.Models
 20985{
 20986    /// <summary>
 20987    /// Blob info from a Filter Blobs API call
 20988    /// </summary>
 20989    internal partial class FilterBlobItem
 20990    {
 20991        /// <summary>
 20992        /// Name
 20993        /// </summary>
 20994        public string BlobName { get; internal set; }
 20995
 20996        /// <summary>
 20997        /// ContainerName
 20998        /// </summary>
 20999        public string BlobContainerName { get; internal set; }
 21000
 21001        /// <summary>
 21002        /// Prevent direct instantiation of FilterBlobItem instances.
 21003        /// You can use BlobsModelFactory.FilterBlobItem instead.
 21004        /// </summary>
 21005        internal FilterBlobItem() { }
 21006
 21007        /// <summary>
 21008        /// Deserializes XML into a new FilterBlobItem instance.
 21009        /// </summary>
 21010        /// <param name="element">The XML element to deserialize.</param>
 21011        /// <returns>A deserialized FilterBlobItem instance.</returns>
 21012        internal static Azure.Storage.Blobs.Models.FilterBlobItem FromXml(System.Xml.Linq.XElement element)
 21013        {
 21014            System.Diagnostics.Debug.Assert(element != null);
 21015            System.Xml.Linq.XElement _child;
 21016            Azure.Storage.Blobs.Models.FilterBlobItem _value = new Azure.Storage.Blobs.Models.FilterBlobItem();
 21017            _child = element.Element(System.Xml.Linq.XName.Get("Name", ""));
 21018            if (_child != null)
 21019            {
 21020                _value.BlobName = _child.Value;
 21021            }
 21022            _child = element.Element(System.Xml.Linq.XName.Get("ContainerName", ""));
 21023            if (_child != null)
 21024            {
 21025                _value.BlobContainerName = _child.Value;
 21026            }
 21027            CustomizeFromXml(element, _value);
 21028            return _value;
 21029        }
 21030
 21031        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.FilterBlobItem
 21032    }
 21033}
 21034#endregion class FilterBlobItem
 21035
 21036#region class FilterBlobSegment
 21037namespace Azure.Storage.Blobs.Models
 21038{
 21039    /// <summary>
 21040    /// The result of a Filter Blobs API call
 21041    /// </summary>
 21042    internal partial class FilterBlobSegment
 21043    {
 21044        /// <summary>
 21045        /// ServiceEndpoint
 21046        /// </summary>
 21047        public string ServiceEndpoint { get; internal set; }
 21048
 21049        /// <summary>
 21050        /// Where
 21051        /// </summary>
 21052        public string Where { get; internal set; }
 21053
 21054        /// <summary>
 21055        /// Blobs
 21056        /// </summary>
 21057        public System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.FilterBlobItem> Blobs { get; internal s
 21058
 21059        /// <summary>
 21060        /// NextMarker
 21061        /// </summary>
 21062        public string NextMarker { get; internal set; }
 21063
 21064        /// <summary>
 21065        /// Creates a new FilterBlobSegment instance
 21066        /// </summary>
 21067        public FilterBlobSegment()
 21068            : this(false)
 21069        {
 21070        }
 21071
 21072        /// <summary>
 21073        /// Creates a new FilterBlobSegment instance
 21074        /// </summary>
 21075        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 21076        internal FilterBlobSegment(bool skipInitialization)
 21077        {
 21078            if (!skipInitialization)
 21079            {
 21080                Blobs = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.FilterBlobItem>();
 21081            }
 21082        }
 21083
 21084        /// <summary>
 21085        /// Deserializes XML into a new FilterBlobSegment instance.
 21086        /// </summary>
 21087        /// <param name="element">The XML element to deserialize.</param>
 21088        /// <returns>A deserialized FilterBlobSegment instance.</returns>
 21089        internal static Azure.Storage.Blobs.Models.FilterBlobSegment FromXml(System.Xml.Linq.XElement element)
 21090        {
 21091            System.Diagnostics.Debug.Assert(element != null);
 21092            System.Xml.Linq.XElement _child;
 21093            System.Xml.Linq.XAttribute _attribute;
 21094            Azure.Storage.Blobs.Models.FilterBlobSegment _value = new Azure.Storage.Blobs.Models.FilterBlobSegment(true)
 21095            _attribute = element.Attribute(System.Xml.Linq.XName.Get("ServiceEndpoint", ""));
 21096            if (_attribute != null)
 21097            {
 21098                _value.ServiceEndpoint = _attribute.Value;
 21099            }
 21100            _child = element.Element(System.Xml.Linq.XName.Get("Where", ""));
 21101            if (_child != null)
 21102            {
 21103                _value.Where = _child.Value;
 21104            }
 21105            _child = element.Element(System.Xml.Linq.XName.Get("Blobs", ""));
 21106            if (_child != null)
 21107            {
 21108                _value.Blobs = System.Linq.Enumerable.ToList(
 21109                    System.Linq.Enumerable.Select(
 21110                        _child.Elements(System.Xml.Linq.XName.Get("Blob", "")),
 21111                        e => Azure.Storage.Blobs.Models.FilterBlobItem.FromXml(e)));
 21112            }
 21113            else
 21114            {
 21115                _value.Blobs = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.FilterBlobItem>();
 21116            }
 21117            _child = element.Element(System.Xml.Linq.XName.Get("NextMarker", ""));
 21118            if (_child != null)
 21119            {
 21120                _value.NextMarker = _child.Value;
 21121            }
 21122            CustomizeFromXml(element, _value);
 21123            return _value;
 21124        }
 21125
 21126        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.FilterBlobSegm
 21127    }
 21128}
 21129#endregion class FilterBlobSegment
 21130
 21131#region class FlattenedContainerItem
 21132namespace Azure.Storage.Blobs.Models
 21133{
 21134    /// <summary>
 21135    /// FlattenedContainerItem
 21136    /// </summary>
 21137    internal partial class FlattenedContainerItem
 21138    {
 21139        /// <summary>
 21140        /// x-ms-meta
 21141        /// </summary>
 21142        public System.Collections.Generic.IDictionary<string, string> Metadata { get; internal set; }
 21143
 21144        /// <summary>
 21145        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 21146        /// </summary>
 21147        public Azure.ETag ETag { get; internal set; }
 21148
 21149        /// <summary>
 21150        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 21151        /// </summary>
 21152        public System.DateTimeOffset LastModified { get; internal set; }
 21153
 21154        /// <summary>
 21155        /// When a blob is leased, specifies whether the lease is of infinite or fixed duration.
 21156        /// </summary>
 21157        public Azure.Storage.Blobs.Models.LeaseDurationType LeaseDuration { get; internal set; }
 21158
 21159        /// <summary>
 21160        /// Lease state of the blob.
 21161        /// </summary>
 21162        public Azure.Storage.Blobs.Models.LeaseState LeaseState { get; internal set; }
 21163
 21164        /// <summary>
 21165        /// The current lease status of the blob.
 21166        /// </summary>
 21167        public Azure.Storage.Blobs.Models.LeaseStatus LeaseStatus { get; internal set; }
 21168
 21169        /// <summary>
 21170        /// Indicated whether data in the container may be accessed publicly and the level of access
 21171        /// </summary>
 21172        public Azure.Storage.Blobs.Models.PublicAccessType BlobPublicAccess { get; internal set; }
 21173
 21174        /// <summary>
 21175        /// Indicates whether the container has an immutability policy set on it.
 21176        /// </summary>
 21177        public bool HasImmutabilityPolicy { get; internal set; }
 21178
 21179        /// <summary>
 21180        /// Indicates whether the container has a legal hold.
 21181        /// </summary>
 21182        public bool HasLegalHold { get; internal set; }
 21183
 21184        /// <summary>
 21185        /// The default encryption scope for the container.
 21186        /// </summary>
 21187        public string DefaultEncryptionScope { get; internal set; }
 21188
 21189        /// <summary>
 21190        /// Indicates whether the container's default encryption scope can be overriden.
 21191        /// </summary>
 21192        public bool DenyEncryptionScopeOverride { get; internal set; }
 21193
 21194        /// <summary>
 21195        /// Creates a new FlattenedContainerItem instance
 21196        /// </summary>
 21197        public FlattenedContainerItem()
 21198        {
 21199            Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringComparer.OrdinalIgnoreCase
 21200        }
 21201    }
 21202}
 21203#endregion class FlattenedContainerItem
 21204
 21205#region class FlattenedDownloadProperties
 21206namespace Azure.Storage.Blobs.Models
 21207{
 21208    /// <summary>
 21209    /// FlattenedDownloadProperties
 21210    /// </summary>
 21211    internal partial class FlattenedDownloadProperties
 21212    {
 21213        /// <summary>
 21214        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 21215        /// </summary>
 21216        public System.DateTimeOffset LastModified { get; internal set; }
 21217
 21218        /// <summary>
 21219        /// x-ms-meta
 21220        /// </summary>
 21221        public System.Collections.Generic.IDictionary<string, string> Metadata { get; internal set; }
 21222
 21223        /// <summary>
 21224        /// Optional. Only valid when Object Replication is enabled for the storage container and on the destination blo
 21225        /// </summary>
 21226        public string ObjectReplicationPolicyId { get; internal set; }
 21227
 21228        /// <summary>
 21229        /// Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of 
 21230        /// </summary>
 21231        public System.Collections.Generic.IDictionary<string, string> ObjectReplicationRules { get; internal set; }
 21232
 21233        /// <summary>
 21234        /// The number of bytes present in the response body.
 21235        /// </summary>
 21236        public long ContentLength { get; internal set; }
 21237
 21238        /// <summary>
 21239        /// The media type of the body of the response. For Download Blob this is 'application/octet-stream'
 21240        /// </summary>
 21241        public string ContentType { get; internal set; }
 21242
 21243        /// <summary>
 21244        /// Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting
 21245        /// </summary>
 21246        public string ContentRange { get; internal set; }
 21247
 21248        /// <summary>
 21249        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 21250        /// </summary>
 21251        public Azure.ETag ETag { get; internal set; }
 21252
 21253        /// <summary>
 21254        /// If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so
 21255        /// </summary>
 21256        #pragma warning disable CA1819 // Properties should not return arrays
 21257        public byte[] ContentHash { get; internal set; }
 21258        #pragma warning restore CA1819 // Properties should not return arrays
 21259
 21260        /// <summary>
 21261        /// This header returns the value that was specified for the Content-Encoding request header
 21262        /// </summary>
 21263        public string ContentEncoding { get; internal set; }
 21264
 21265        /// <summary>
 21266        /// This header is returned if it was previously specified for the blob.
 21267        /// </summary>
 21268        public string CacheControl { get; internal set; }
 21269
 21270        /// <summary>
 21271        /// This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content
 21272        /// </summary>
 21273        public string ContentDisposition { get; internal set; }
 21274
 21275        /// <summary>
 21276        /// This header returns the value that was specified for the Content-Language request header.
 21277        /// </summary>
 21278        public string ContentLanguage { get; internal set; }
 21279
 21280        /// <summary>
 21281        /// The current sequence number for a page blob. This header is not returned for block blobs or append blobs
 21282        /// </summary>
 21283        public long BlobSequenceNumber { get; internal set; }
 21284
 21285        /// <summary>
 21286        /// The blob's type.
 21287        /// </summary>
 21288        public Azure.Storage.Blobs.Models.BlobType BlobType { get; internal set; }
 21289
 21290        /// <summary>
 21291        /// If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to true, then the re
 21292        /// </summary>
 21293        #pragma warning disable CA1819 // Properties should not return arrays
 21294        public byte[] ContentCrc64 { get; internal set; }
 21295        #pragma warning restore CA1819 // Properties should not return arrays
 21296
 21297        /// <summary>
 21298        /// Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This val
 21299        /// </summary>
 21300        public System.DateTimeOffset CopyCompletionTime { get; internal set; }
 21301
 21302        /// <summary>
 21303        /// Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal 
 21304        /// </summary>
 21305        public string CopyStatusDescription { get; internal set; }
 21306
 21307        /// <summary>
 21308        /// String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy ope
 21309        /// </summary>
 21310        public string CopyId { get; internal set; }
 21311
 21312        /// <summary>
 21313        /// Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operat
 21314        /// </summary>
 21315        public string CopyProgress { get; internal set; }
 21316
 21317        /// <summary>
 21318        /// URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operati
 21319        /// </summary>
 21320        public System.Uri CopySource { get; internal set; }
 21321
 21322        /// <summary>
 21323        /// State of the copy operation identified by x-ms-copy-id.
 21324        /// </summary>
 21325        public Azure.Storage.Blobs.Models.CopyStatus CopyStatus { get; internal set; }
 21326
 21327        /// <summary>
 21328        /// When a blob is leased, specifies whether the lease is of infinite or fixed duration.
 21329        /// </summary>
 21330        public Azure.Storage.Blobs.Models.LeaseDurationType LeaseDuration { get; internal set; }
 21331
 21332        /// <summary>
 21333        /// Lease state of the blob.
 21334        /// </summary>
 21335        public Azure.Storage.Blobs.Models.LeaseState LeaseState { get; internal set; }
 21336
 21337        /// <summary>
 21338        /// The current lease status of the blob.
 21339        /// </summary>
 21340        public Azure.Storage.Blobs.Models.LeaseStatus LeaseStatus { get; internal set; }
 21341
 21342        /// <summary>
 21343        /// Indicates that the service supports requests for partial blob content.
 21344        /// </summary>
 21345        public string AcceptRanges { get; internal set; }
 21346
 21347        /// <summary>
 21348        /// The number of committed blocks present in the blob. This header is returned only for append blobs.
 21349        /// </summary>
 21350        public int BlobCommittedBlockCount { get; internal set; }
 21351
 21352        /// <summary>
 21353        /// The value of this header is set to true if the blob data and application metadata are completely encrypted u
 21354        /// </summary>
 21355        public bool IsServerEncrypted { get; internal set; }
 21356
 21357        /// <summary>
 21358        /// The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob 
 21359        /// </summary>
 21360        public string EncryptionKeySha256 { get; internal set; }
 21361
 21362        /// <summary>
 21363        /// Returns the name of the encryption scope used to encrypt the blob contents and application metadata.  Note t
 21364        /// </summary>
 21365        public string EncryptionScope { get; internal set; }
 21366
 21367        /// <summary>
 21368        /// If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header
 21369        /// </summary>
 21370        #pragma warning disable CA1819 // Properties should not return arrays
 21371        public byte[] BlobContentHash { get; internal set; }
 21372        #pragma warning restore CA1819 // Properties should not return arrays
 21373
 21374        /// <summary>
 21375        /// The number of tags associated with the blob
 21376        /// </summary>
 21377        public long TagCount { get; internal set; }
 21378
 21379        /// <summary>
 21380        /// If this blob has been sealed
 21381        /// </summary>
 21382        public bool IsSealed { get; internal set; }
 21383
 21384        /// <summary>
 21385        /// A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicat
 21386        /// </summary>
 21387        public string VersionId { get; internal set; }
 21388
 21389        /// <summary>
 21390        /// Content
 21391        /// </summary>
 21392        public System.IO.Stream Content { get; internal set; }
 21393
 21394        /// <summary>
 21395        /// Creates a new FlattenedDownloadProperties instance
 21396        /// </summary>
 21397        public FlattenedDownloadProperties()
 21398        {
 21399            Metadata = new System.Collections.Generic.Dictionary<string, string>(System.StringComparer.OrdinalIgnoreCase
 21400            ObjectReplicationRules = new System.Collections.Generic.Dictionary<string, string>(System.StringComparer.Ord
 21401        }
 21402    }
 21403}
 21404#endregion class FlattenedDownloadProperties
 21405
 21406#region class GetBlockListOperation
 21407namespace Azure.Storage.Blobs.Models
 21408{
 21409    /// <summary>
 21410    /// GetBlockListOperation
 21411    /// </summary>
 21412    internal partial class GetBlockListOperation
 21413    {
 21414        /// <summary>
 21415        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 21416        /// </summary>
 21417        public System.DateTimeOffset LastModified { get; internal set; }
 21418
 21419        /// <summary>
 21420        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 21421        /// </summary>
 21422        public Azure.ETag ETag { get; internal set; }
 21423
 21424        /// <summary>
 21425        /// The media type of the body of the response. For Get Block List this is 'application/xml'
 21426        /// </summary>
 21427        public string ContentType { get; internal set; }
 21428
 21429        /// <summary>
 21430        /// The size of the blob in bytes.
 21431        /// </summary>
 21432        public long BlobContentLength { get; internal set; }
 21433
 21434        /// <summary>
 21435        /// Body
 21436        /// </summary>
 21437        public Azure.Storage.Blobs.Models.BlockList Body { get; internal set; }
 21438
 21439        /// <summary>
 21440        /// Creates a new GetBlockListOperation instance
 21441        /// </summary>
 21442        public GetBlockListOperation()
 21443        {
 21444            Body = new Azure.Storage.Blobs.Models.BlockList();
 21445        }
 21446    }
 21447}
 21448#endregion class GetBlockListOperation
 21449
 21450#region class JsonTextConfigurationInternal
 21451namespace Azure.Storage.Blobs.Models
 21452{
 21453    /// <summary>
 21454    /// json text configuration
 21455    /// </summary>
 21456    internal partial class JsonTextConfigurationInternal
 21457    {
 21458        /// <summary>
 21459        /// record separator
 21460        /// </summary>
 21461        public string RecordSeparator { get; set; }
 21462
 21463        /// <summary>
 21464        /// Creates a new JsonTextConfigurationInternal instance
 21465        /// </summary>
 21466        public JsonTextConfigurationInternal() { }
 21467
 21468        /// <summary>
 21469        /// Serialize a JsonTextConfigurationInternal instance as XML.
 21470        /// </summary>
 21471        /// <param name="value">The JsonTextConfigurationInternal instance to serialize.</param>
 21472        /// <param name="name">An optional name to use for the root element instead of "JsonTextConfiguration".</param>
 21473        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 21474        /// <returns>The serialized XML element.</returns>
 21475        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.JsonTextConfigurationInternal value, s
 21476        {
 21477            System.Diagnostics.Debug.Assert(value != null);
 21478            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 21479            _element.Add(new System.Xml.Linq.XElement(
 21480                System.Xml.Linq.XName.Get("RecordSeparator", ""),
 21481                value.RecordSeparator));
 21482            return _element;
 21483        }
 21484    }
 21485}
 21486#endregion class JsonTextConfigurationInternal
 21487
 21488#region class KeyInfo
 21489namespace Azure.Storage.Blobs.Models
 21490{
 21491    /// <summary>
 21492    /// Key information
 21493    /// </summary>
 21494    internal partial class KeyInfo
 21495    {
 21496        /// <summary>
 21497        /// The date-time the key is active in ISO 8601 UTC time
 21498        /// </summary>
 21499        public System.DateTimeOffset? StartsOn { get; set; }
 21500
 21501        /// <summary>
 21502        /// The date-time the key expires in ISO 8601 UTC time
 21503        /// </summary>
 21504        public System.DateTimeOffset ExpiresOn { get; set; }
 21505
 21506        /// <summary>
 21507        /// Creates a new KeyInfo instance
 21508        /// </summary>
 21509        public KeyInfo() { }
 21510
 21511        /// <summary>
 21512        /// Serialize a KeyInfo instance as XML.
 21513        /// </summary>
 21514        /// <param name="value">The KeyInfo instance to serialize.</param>
 21515        /// <param name="name">An optional name to use for the root element instead of "KeyInfo".</param>
 21516        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 21517        /// <returns>The serialized XML element.</returns>
 21518        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.KeyInfo value, string name = "KeyInfo"
 21519        {
 21520            System.Diagnostics.Debug.Assert(value != null);
 21521            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 21522            if (value.StartsOn != null)
 21523            {
 21524                _element.Add(new System.Xml.Linq.XElement(
 21525                    System.Xml.Linq.XName.Get("Start", ""),
 21526                    value.StartsOn.Value.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ssZ", System.Globalization.CultureInfo.Inv
 21527            }
 21528            _element.Add(new System.Xml.Linq.XElement(
 21529                System.Xml.Linq.XName.Get("Expiry", ""),
 21530                value.ExpiresOn.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ssZ", System.Globalization.CultureInfo.InvariantCul
 21531            return _element;
 21532        }
 21533    }
 21534}
 21535#endregion class KeyInfo
 21536
 21537#region enum LeaseDurationType
 21538namespace Azure.Storage.Blobs.Models
 21539{
 21540    /// <summary>
 21541    /// LeaseDurationType values
 21542    /// </summary>
 21543    public enum LeaseDurationType
 21544    {
 21545        /// <summary>
 21546        /// infinite
 21547        /// </summary>
 21548        Infinite,
 21549
 21550        /// <summary>
 21551        /// fixed
 21552        /// </summary>
 21553        Fixed
 21554    }
 21555}
 21556
 21557namespace Azure.Storage.Blobs
 21558{
 21559    internal static partial class BlobRestClient
 21560    {
 21561        public static partial class Serialization
 21562        {
 21563            public static string ToString(Azure.Storage.Blobs.Models.LeaseDurationType value)
 21564            {
 21565                return value switch
 21566                {
 21567                    Azure.Storage.Blobs.Models.LeaseDurationType.Infinite => "infinite",
 21568                    Azure.Storage.Blobs.Models.LeaseDurationType.Fixed => "fixed",
 21569                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 21570                };
 21571            }
 21572
 21573            public static Azure.Storage.Blobs.Models.LeaseDurationType ParseLeaseDurationType(string value)
 21574            {
 21575                return value switch
 21576                {
 21577                    "infinite" => Azure.Storage.Blobs.Models.LeaseDurationType.Infinite,
 21578                    "fixed" => Azure.Storage.Blobs.Models.LeaseDurationType.Fixed,
 21579                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 21580                };
 21581            }
 21582        }
 21583    }
 21584}
 21585#endregion enum LeaseDurationType
 21586
 21587#region enum LeaseState
 21588namespace Azure.Storage.Blobs.Models
 21589{
 21590    /// <summary>
 21591    /// LeaseState values
 21592    /// </summary>
 21593    public enum LeaseState
 21594    {
 21595        /// <summary>
 21596        /// available
 21597        /// </summary>
 21598        Available,
 21599
 21600        /// <summary>
 21601        /// leased
 21602        /// </summary>
 21603        Leased,
 21604
 21605        /// <summary>
 21606        /// expired
 21607        /// </summary>
 21608        Expired,
 21609
 21610        /// <summary>
 21611        /// breaking
 21612        /// </summary>
 21613        Breaking,
 21614
 21615        /// <summary>
 21616        /// broken
 21617        /// </summary>
 21618        Broken
 21619    }
 21620}
 21621
 21622namespace Azure.Storage.Blobs
 21623{
 21624    internal static partial class BlobRestClient
 21625    {
 21626        public static partial class Serialization
 21627        {
 21628            public static string ToString(Azure.Storage.Blobs.Models.LeaseState value)
 21629            {
 21630                return value switch
 21631                {
 21632                    Azure.Storage.Blobs.Models.LeaseState.Available => "available",
 21633                    Azure.Storage.Blobs.Models.LeaseState.Leased => "leased",
 21634                    Azure.Storage.Blobs.Models.LeaseState.Expired => "expired",
 21635                    Azure.Storage.Blobs.Models.LeaseState.Breaking => "breaking",
 21636                    Azure.Storage.Blobs.Models.LeaseState.Broken => "broken",
 21637                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 21638                };
 21639            }
 21640
 21641            public static Azure.Storage.Blobs.Models.LeaseState ParseLeaseState(string value)
 21642            {
 21643                return value switch
 21644                {
 21645                    "available" => Azure.Storage.Blobs.Models.LeaseState.Available,
 21646                    "leased" => Azure.Storage.Blobs.Models.LeaseState.Leased,
 21647                    "expired" => Azure.Storage.Blobs.Models.LeaseState.Expired,
 21648                    "breaking" => Azure.Storage.Blobs.Models.LeaseState.Breaking,
 21649                    "broken" => Azure.Storage.Blobs.Models.LeaseState.Broken,
 21650                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 21651                };
 21652            }
 21653        }
 21654    }
 21655}
 21656#endregion enum LeaseState
 21657
 21658#region enum LeaseStatus
 21659namespace Azure.Storage.Blobs.Models
 21660{
 21661    /// <summary>
 21662    /// LeaseStatus values
 21663    /// </summary>
 21664    #pragma warning disable CA1717 // Only FlagsAttribute enums should have plural names
 21665    public enum LeaseStatus
 21666    #pragma warning restore CA1717 // Only FlagsAttribute enums should have plural names
 21667    {
 21668        /// <summary>
 21669        /// locked
 21670        /// </summary>
 21671        Locked,
 21672
 21673        /// <summary>
 21674        /// unlocked
 21675        /// </summary>
 21676        Unlocked
 21677    }
 21678}
 21679
 21680namespace Azure.Storage.Blobs
 21681{
 21682    internal static partial class BlobRestClient
 21683    {
 21684        public static partial class Serialization
 21685        {
 21686            public static string ToString(Azure.Storage.Blobs.Models.LeaseStatus value)
 21687            {
 21688                return value switch
 21689                {
 21690                    Azure.Storage.Blobs.Models.LeaseStatus.Locked => "locked",
 21691                    Azure.Storage.Blobs.Models.LeaseStatus.Unlocked => "unlocked",
 21692                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 21693                };
 21694            }
 21695
 21696            public static Azure.Storage.Blobs.Models.LeaseStatus ParseLeaseStatus(string value)
 21697            {
 21698                return value switch
 21699                {
 21700                    "locked" => Azure.Storage.Blobs.Models.LeaseStatus.Locked,
 21701                    "unlocked" => Azure.Storage.Blobs.Models.LeaseStatus.Unlocked,
 21702                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 21703                };
 21704            }
 21705        }
 21706    }
 21707}
 21708#endregion enum LeaseStatus
 21709
 21710#region enum ListBlobsIncludeItem
 21711namespace Azure.Storage.Blobs.Models
 21712{
 21713    /// <summary>
 21714    /// ListBlobsIncludeItem values
 21715    /// </summary>
 21716    internal enum ListBlobsIncludeItem
 21717    {
 21718        /// <summary>
 21719        /// copy
 21720        /// </summary>
 21721        Copy,
 21722
 21723        /// <summary>
 21724        /// deleted
 21725        /// </summary>
 21726        Deleted,
 21727
 21728        /// <summary>
 21729        /// metadata
 21730        /// </summary>
 21731        Metadata,
 21732
 21733        /// <summary>
 21734        /// snapshots
 21735        /// </summary>
 21736        Snapshots,
 21737
 21738        /// <summary>
 21739        /// uncommittedblobs
 21740        /// </summary>
 21741        Uncommittedblobs,
 21742
 21743        /// <summary>
 21744        /// versions
 21745        /// </summary>
 21746        Versions,
 21747
 21748        /// <summary>
 21749        /// tags
 21750        /// </summary>
 21751        Tags
 21752    }
 21753}
 21754
 21755namespace Azure.Storage.Blobs
 21756{
 21757    internal static partial class BlobRestClient
 21758    {
 21759        public static partial class Serialization
 21760        {
 21761            public static string ToString(Azure.Storage.Blobs.Models.ListBlobsIncludeItem value)
 21762            {
 21763                return value switch
 21764                {
 21765                    Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Copy => "copy",
 21766                    Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Deleted => "deleted",
 21767                    Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Metadata => "metadata",
 21768                    Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Snapshots => "snapshots",
 21769                    Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Uncommittedblobs => "uncommittedblobs",
 21770                    Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Versions => "versions",
 21771                    Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Tags => "tags",
 21772                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 21773                };
 21774            }
 21775
 21776            public static Azure.Storage.Blobs.Models.ListBlobsIncludeItem ParseListBlobsIncludeItem(string value)
 21777            {
 21778                return value switch
 21779                {
 21780                    "copy" => Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Copy,
 21781                    "deleted" => Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Deleted,
 21782                    "metadata" => Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Metadata,
 21783                    "snapshots" => Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Snapshots,
 21784                    "uncommittedblobs" => Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Uncommittedblobs,
 21785                    "versions" => Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Versions,
 21786                    "tags" => Azure.Storage.Blobs.Models.ListBlobsIncludeItem.Tags,
 21787                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 21788                };
 21789            }
 21790        }
 21791    }
 21792}
 21793#endregion enum ListBlobsIncludeItem
 21794
 21795#region enum ListContainersIncludeType
 21796namespace Azure.Storage.Blobs.Models
 21797{
 21798    /// <summary>
 21799    /// ListContainersIncludeType values
 21800    /// </summary>
 21801    internal enum ListContainersIncludeType
 21802    {
 21803        /// <summary>
 21804        /// metadata
 21805        /// </summary>
 21806        Metadata,
 21807
 21808        /// <summary>
 21809        /// deleted
 21810        /// </summary>
 21811        Deleted
 21812    }
 21813}
 21814
 21815namespace Azure.Storage.Blobs
 21816{
 21817    internal static partial class BlobRestClient
 21818    {
 21819        public static partial class Serialization
 21820        {
 21821            public static string ToString(Azure.Storage.Blobs.Models.ListContainersIncludeType value)
 21822            {
 21823                return value switch
 21824                {
 21825                    Azure.Storage.Blobs.Models.ListContainersIncludeType.Metadata => "metadata",
 21826                    Azure.Storage.Blobs.Models.ListContainersIncludeType.Deleted => "deleted",
 21827                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 21828                };
 21829            }
 21830
 21831            public static Azure.Storage.Blobs.Models.ListContainersIncludeType ParseListContainersIncludeType(string val
 21832            {
 21833                return value switch
 21834                {
 21835                    "metadata" => Azure.Storage.Blobs.Models.ListContainersIncludeType.Metadata,
 21836                    "deleted" => Azure.Storage.Blobs.Models.ListContainersIncludeType.Deleted,
 21837                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 21838                };
 21839            }
 21840        }
 21841    }
 21842}
 21843#endregion enum ListContainersIncludeType
 21844
 21845#region class PageBlobInfo
 21846namespace Azure.Storage.Blobs.Models
 21847{
 21848    /// <summary>
 21849    /// PageBlobInfo
 21850    /// </summary>
 21851    public partial class PageBlobInfo
 21852    {
 21853        /// <summary>
 21854        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 21855        /// </summary>
 21856        public Azure.ETag ETag { get; internal set; }
 21857
 21858        /// <summary>
 21859        /// Returns the date and time the blob was last modified. Any operation that modifies the blob, including an upd
 21860        /// </summary>
 21861        public System.DateTimeOffset LastModified { get; internal set; }
 21862
 21863        /// <summary>
 21864        /// The current sequence number for the page blob.  This is only returned for page blobs.
 21865        /// </summary>
 21866        public long BlobSequenceNumber { get; internal set; }
 21867
 21868        /// <summary>
 21869        /// Prevent direct instantiation of PageBlobInfo instances.
 21870        /// You can use BlobsModelFactory.PageBlobInfo instead.
 21871        /// </summary>
 21872        internal PageBlobInfo() { }
 21873    }
 21874
 21875    /// <summary>
 21876    /// BlobsModelFactory provides utilities for mocking.
 21877    /// </summary>
 21878    public static partial class BlobsModelFactory
 21879    {
 21880        /// <summary>
 21881        /// Creates a new PageBlobInfo instance for mocking.
 21882        /// </summary>
 21883        public static PageBlobInfo PageBlobInfo(
 21884            Azure.ETag eTag,
 21885            System.DateTimeOffset lastModified,
 21886            long blobSequenceNumber)
 21887        {
 21888            return new PageBlobInfo()
 21889            {
 21890                ETag = eTag,
 21891                LastModified = lastModified,
 21892                BlobSequenceNumber = blobSequenceNumber,
 21893            };
 21894        }
 21895    }
 21896}
 21897#endregion class PageBlobInfo
 21898
 21899#region class PageInfo
 21900namespace Azure.Storage.Blobs.Models
 21901{
 21902    /// <summary>
 21903    /// PageInfo
 21904    /// </summary>
 21905    public partial class PageInfo
 21906    {
 21907        /// <summary>
 21908        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 21909        /// </summary>
 21910        public Azure.ETag ETag { get; internal set; }
 21911
 21912        /// <summary>
 21913        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 21914        /// </summary>
 21915        public System.DateTimeOffset LastModified { get; internal set; }
 21916
 21917        /// <summary>
 21918        /// If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so
 21919        /// </summary>
 21920        #pragma warning disable CA1819 // Properties should not return arrays
 21921        public byte[] ContentHash { get; internal set; }
 21922        #pragma warning restore CA1819 // Properties should not return arrays
 21923
 21924        /// <summary>
 21925        /// This header is returned so that the client can check for message content integrity. The value of this header
 21926        /// </summary>
 21927        #pragma warning disable CA1819 // Properties should not return arrays
 21928        public byte[] ContentCrc64 { get; internal set; }
 21929        #pragma warning restore CA1819 // Properties should not return arrays
 21930
 21931        /// <summary>
 21932        /// The current sequence number for the page blob.  This is only returned for page blobs.
 21933        /// </summary>
 21934        public long BlobSequenceNumber { get; internal set; }
 21935
 21936        /// <summary>
 21937        /// The SHA-256 hash of the encryption key used to encrypt the pages. This header is only returned when the page
 21938        /// </summary>
 21939        public string EncryptionKeySha256 { get; internal set; }
 21940
 21941        /// <summary>
 21942        /// Returns the name of the encryption scope used to encrypt the blob contents and application metadata.  Note t
 21943        /// </summary>
 21944        public string EncryptionScope { get; internal set; }
 21945
 21946        /// <summary>
 21947        /// Prevent direct instantiation of PageInfo instances.
 21948        /// You can use BlobsModelFactory.PageInfo instead.
 21949        /// </summary>
 21950        internal PageInfo() { }
 21951    }
 21952
 21953    /// <summary>
 21954    /// BlobsModelFactory provides utilities for mocking.
 21955    /// </summary>
 21956    public static partial class BlobsModelFactory
 21957    {
 21958        /// <summary>
 21959        /// Creates a new PageInfo instance for mocking.
 21960        /// </summary>
 21961        public static PageInfo PageInfo(
 21962            Azure.ETag eTag,
 21963            System.DateTimeOffset lastModified,
 21964            byte[] contentHash,
 21965            byte[] contentCrc64,
 21966            long blobSequenceNumber,
 21967            string encryptionKeySha256,
 21968            string encryptionScope)
 21969        {
 21970            return new PageInfo()
 21971            {
 21972                ETag = eTag,
 21973                LastModified = lastModified,
 21974                ContentHash = contentHash,
 21975                ContentCrc64 = contentCrc64,
 21976                BlobSequenceNumber = blobSequenceNumber,
 21977                EncryptionKeySha256 = encryptionKeySha256,
 21978                EncryptionScope = encryptionScope,
 21979            };
 21980        }
 21981    }
 21982}
 21983#endregion class PageInfo
 21984
 21985#region class PageList
 21986namespace Azure.Storage.Blobs.Models
 21987{
 21988    /// <summary>
 21989    /// the list of pages
 21990    /// </summary>
 21991    internal partial class PageList
 21992    {
 21993        /// <summary>
 21994        /// PageRange
 21995        /// </summary>
 21996        public System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.PageRange> PageRange { get; internal se
 21997
 21998        /// <summary>
 21999        /// ClearRange
 22000        /// </summary>
 22001        public System.Collections.Generic.IEnumerable<Azure.Storage.Blobs.Models.ClearRange> ClearRange { get; internal 
 22002
 22003        /// <summary>
 22004        /// Creates a new PageList instance
 22005        /// </summary>
 22006        public PageList()
 22007            : this(false)
 22008        {
 22009        }
 22010
 22011        /// <summary>
 22012        /// Creates a new PageList instance
 22013        /// </summary>
 22014        /// <param name="skipInitialization">Whether to skip initializing nested objects.</param>
 22015        internal PageList(bool skipInitialization)
 22016        {
 22017            if (!skipInitialization)
 22018            {
 22019                PageRange = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.PageRange>();
 22020                ClearRange = new System.Collections.Generic.List<Azure.Storage.Blobs.Models.ClearRange>();
 22021            }
 22022        }
 22023
 22024        /// <summary>
 22025        /// Deserializes XML into a new PageList instance.
 22026        /// </summary>
 22027        /// <param name="element">The XML element to deserialize.</param>
 22028        /// <returns>A deserialized PageList instance.</returns>
 22029        internal static Azure.Storage.Blobs.Models.PageList FromXml(System.Xml.Linq.XElement element)
 22030        {
 22031            System.Diagnostics.Debug.Assert(element != null);
 22032            Azure.Storage.Blobs.Models.PageList _value = new Azure.Storage.Blobs.Models.PageList(true);
 22033            _value.PageRange = System.Linq.Enumerable.ToList(
 22034                System.Linq.Enumerable.Select(
 22035                    element.Elements(System.Xml.Linq.XName.Get("PageRange", "")),
 22036                    e => Azure.Storage.Blobs.Models.PageRange.FromXml(e)));
 22037            _value.ClearRange = System.Linq.Enumerable.ToList(
 22038                System.Linq.Enumerable.Select(
 22039                    element.Elements(System.Xml.Linq.XName.Get("ClearRange", "")),
 22040                    e => Azure.Storage.Blobs.Models.ClearRange.FromXml(e)));
 22041            CustomizeFromXml(element, _value);
 22042            return _value;
 22043        }
 22044
 22045        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.PageList value
 22046    }
 22047}
 22048#endregion class PageList
 22049
 22050#region struct PageRange
 22051namespace Azure.Storage.Blobs.Models
 22052{
 22053    /// <summary>
 22054    /// PageRange
 22055    /// </summary>
 22056    internal readonly partial struct PageRange: System.IEquatable<PageRange>
 22057    {
 22058        /// <summary>
 22059        /// Start
 22060        /// </summary>
 22061        public long Start { get; }
 22062
 22063        /// <summary>
 22064        /// End
 22065        /// </summary>
 22066        public long End { get; }
 22067
 22068        /// <summary>
 22069        /// Prevent direct instantiation of PageRange instances.
 22070        /// You can use BlobsModelFactory.PageRange instead.
 22071        /// </summary>
 22072        internal PageRange(
 22073            long start,
 22074            long end)
 22075            {
 22076                Start = start;
 22077                End = end;
 22078            }
 22079
 22080        /// <summary>
 22081        /// Check if two PageRange instances are equal.
 22082        /// </summary>
 22083        /// <param name="other">The instance to compare to.</param>
 22084        /// <returns>True if they're equal, false otherwise.</returns>
 22085        [System.ComponentModel.EditorBrowsable((System.ComponentModel.EditorBrowsableState.Never))]
 22086        public bool Equals(PageRange other)
 22087        {
 22088            if (!Start.Equals(other.Start))
 22089            {
 22090                return false;
 22091            }
 22092            if (!End.Equals(other.End))
 22093            {
 22094                return false;
 22095            }
 22096
 22097            return true;
 22098        }
 22099
 22100        /// <summary>
 22101        /// Check if two PageRange instances are equal.
 22102        /// </summary>
 22103        /// <param name="obj">The instance to compare to.</param>
 22104        /// <returns>True if they're equal, false otherwise.</returns>
 22105        [System.ComponentModel.EditorBrowsable((System.ComponentModel.EditorBrowsableState.Never))]
 22106        public override bool Equals(object obj) => obj is PageRange && Equals((PageRange)obj);
 22107
 22108        /// <summary>
 22109        /// Get a hash code for the PageRange.
 22110        /// </summary>
 22111        [System.ComponentModel.EditorBrowsable((System.ComponentModel.EditorBrowsableState.Never))]
 22112        public override int GetHashCode()
 22113        {
 22114            var hashCode = new Azure.Core.HashCodeBuilder();
 22115            hashCode.Add(Start);
 22116            hashCode.Add(End);
 22117
 22118            return hashCode.ToHashCode();
 22119        }
 22120
 22121        /// <summary>
 22122        /// Deserializes XML into a new PageRange instance.
 22123        /// </summary>
 22124        /// <param name="element">The XML element to deserialize.</param>
 22125        /// <returns>A deserialized PageRange instance.</returns>
 22126        internal static Azure.Storage.Blobs.Models.PageRange FromXml(System.Xml.Linq.XElement element)
 22127        {
 22128            System.Diagnostics.Debug.Assert(element != null);
 22129            System.Xml.Linq.XElement _child;
 22130            long start = default;
 22131            long end = default;
 22132            _child = element.Element(System.Xml.Linq.XName.Get("Start", ""));
 22133            if (_child != null)
 22134            {
 22135                start = long.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 22136            }
 22137            _child = element.Element(System.Xml.Linq.XName.Get("End", ""));
 22138            if (_child != null)
 22139            {
 22140                end = long.Parse(_child.Value, System.Globalization.CultureInfo.InvariantCulture);
 22141            }
 22142            Azure.Storage.Blobs.Models.PageRange _value = new Azure.Storage.Blobs.Models.PageRange(start, end);
 22143            CustomizeFromXml(element, _value);
 22144            return _value;
 22145        }
 22146
 22147        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.PageRange valu
 22148    }
 22149}
 22150#endregion struct PageRange
 22151
 22152#region class PageRangesInfoInternal
 22153namespace Azure.Storage.Blobs.Models
 22154{
 22155    /// <summary>
 22156    /// PageRangesInfoInternal
 22157    /// </summary>
 22158    internal partial class PageRangesInfoInternal
 22159    {
 22160        /// <summary>
 22161        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 22162        /// </summary>
 22163        public System.DateTimeOffset LastModified { get; internal set; }
 22164
 22165        /// <summary>
 22166        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 22167        /// </summary>
 22168        public Azure.ETag ETag { get; internal set; }
 22169
 22170        /// <summary>
 22171        /// The size of the blob in bytes.
 22172        /// </summary>
 22173        public long BlobContentLength { get; internal set; }
 22174
 22175        /// <summary>
 22176        /// the list of pages
 22177        /// </summary>
 22178        public Azure.Storage.Blobs.Models.PageList Body { get; internal set; }
 22179
 22180        /// <summary>
 22181        /// Creates a new PageRangesInfoInternal instance
 22182        /// </summary>
 22183        public PageRangesInfoInternal()
 22184        {
 22185            Body = new Azure.Storage.Blobs.Models.PageList();
 22186        }
 22187    }
 22188}
 22189#endregion class PageRangesInfoInternal
 22190
 22191#region enum PathRenameMode
 22192namespace Azure.Storage.Blobs.Models
 22193{
 22194    /// <summary>
 22195    /// Determines the behavior of the rename operation
 22196    /// </summary>
 22197    public enum PathRenameMode
 22198    {
 22199        /// <summary>
 22200        /// legacy
 22201        /// </summary>
 22202        Legacy,
 22203
 22204        /// <summary>
 22205        /// posix
 22206        /// </summary>
 22207        Posix
 22208    }
 22209}
 22210
 22211namespace Azure.Storage.Blobs
 22212{
 22213    internal static partial class BlobRestClient
 22214    {
 22215        public static partial class Serialization
 22216        {
 22217            public static string ToString(Azure.Storage.Blobs.Models.PathRenameMode value)
 22218            {
 22219                return value switch
 22220                {
 22221                    Azure.Storage.Blobs.Models.PathRenameMode.Legacy => "legacy",
 22222                    Azure.Storage.Blobs.Models.PathRenameMode.Posix => "posix",
 22223                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 22224                };
 22225            }
 22226
 22227            public static Azure.Storage.Blobs.Models.PathRenameMode ParsePathRenameMode(string value)
 22228            {
 22229                return value switch
 22230                {
 22231                    "legacy" => Azure.Storage.Blobs.Models.PathRenameMode.Legacy,
 22232                    "posix" => Azure.Storage.Blobs.Models.PathRenameMode.Posix,
 22233                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 22234                };
 22235            }
 22236        }
 22237    }
 22238}
 22239#endregion enum PathRenameMode
 22240
 22241#region enum PublicAccessType
 22242namespace Azure.Storage.Blobs.Models
 22243{
 22244    /// <summary>
 22245    /// Specifies whether data in the container may be accessed publicly and the level of access
 22246    /// </summary>
 22247    public enum PublicAccessType
 22248    {
 22249        /// <summary>
 22250        /// none
 22251        /// </summary>
 22252        None,
 22253
 22254        /// <summary>
 22255        /// container
 22256        /// </summary>
 22257        BlobContainer,
 22258
 22259        /// <summary>
 22260        /// blob
 22261        /// </summary>
 22262        Blob
 22263    }
 22264}
 22265
 22266namespace Azure.Storage.Blobs
 22267{
 22268    internal static partial class BlobRestClient
 22269    {
 22270        public static partial class Serialization
 22271        {
 22272            public static string ToString(Azure.Storage.Blobs.Models.PublicAccessType value)
 22273            {
 22274                return value switch
 22275                {
 22276                    Azure.Storage.Blobs.Models.PublicAccessType.None => null,
 22277                    Azure.Storage.Blobs.Models.PublicAccessType.BlobContainer => "container",
 22278                    Azure.Storage.Blobs.Models.PublicAccessType.Blob => "blob",
 22279                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 22280                };
 22281            }
 22282
 22283            public static Azure.Storage.Blobs.Models.PublicAccessType ParsePublicAccessType(string value)
 22284            {
 22285                return value switch
 22286                {
 22287                    null => Azure.Storage.Blobs.Models.PublicAccessType.None,
 22288                    "container" => Azure.Storage.Blobs.Models.PublicAccessType.BlobContainer,
 22289                    "blob" => Azure.Storage.Blobs.Models.PublicAccessType.Blob,
 22290                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 22291                };
 22292            }
 22293        }
 22294    }
 22295}
 22296#endregion enum PublicAccessType
 22297
 22298#region class QueryFormat
 22299namespace Azure.Storage.Blobs.Models
 22300{
 22301    /// <summary>
 22302    /// QueryFormat
 22303    /// </summary>
 22304    internal partial class QueryFormat
 22305    {
 22306        /// <summary>
 22307        /// The quick query format type.
 22308        /// </summary>
 22309        public Azure.Storage.Blobs.Models.QueryFormatType? Type { get; set; }
 22310
 22311        /// <summary>
 22312        /// delimited text configuration
 22313        /// </summary>
 22314        public Azure.Storage.Blobs.Models.DelimitedTextConfigurationInternal DelimitedTextConfiguration { get; set; }
 22315
 22316        /// <summary>
 22317        /// json text configuration
 22318        /// </summary>
 22319        public Azure.Storage.Blobs.Models.JsonTextConfigurationInternal JsonTextConfiguration { get; set; }
 22320
 22321        /// <summary>
 22322        /// Creates a new QueryFormat instance
 22323        /// </summary>
 22324        public QueryFormat()
 22325        {
 22326            DelimitedTextConfiguration = new Azure.Storage.Blobs.Models.DelimitedTextConfigurationInternal();
 22327            JsonTextConfiguration = new Azure.Storage.Blobs.Models.JsonTextConfigurationInternal();
 22328        }
 22329
 22330        /// <summary>
 22331        /// Serialize a QueryFormat instance as XML.
 22332        /// </summary>
 22333        /// <param name="value">The QueryFormat instance to serialize.</param>
 22334        /// <param name="name">An optional name to use for the root element instead of "QueryFormat".</param>
 22335        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 22336        /// <returns>The serialized XML element.</returns>
 22337        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.QueryFormat value, string name = "Quer
 22338        {
 22339            System.Diagnostics.Debug.Assert(value != null);
 22340            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 22341            if (value.Type != null)
 22342            {
 22343                _element.Add(new System.Xml.Linq.XElement(
 22344                    System.Xml.Linq.XName.Get("Type", ""),
 22345                    Azure.Storage.Blobs.BlobRestClient.Serialization.ToString(value.Type.Value)));
 22346            }
 22347            if (value.DelimitedTextConfiguration != null)
 22348            {
 22349                _element.Add(Azure.Storage.Blobs.Models.DelimitedTextConfigurationInternal.ToXml(value.DelimitedTextConf
 22350            }
 22351            if (value.JsonTextConfiguration != null)
 22352            {
 22353                _element.Add(Azure.Storage.Blobs.Models.JsonTextConfigurationInternal.ToXml(value.JsonTextConfiguration,
 22354            }
 22355            return _element;
 22356        }
 22357    }
 22358}
 22359#endregion class QueryFormat
 22360
 22361#region enum QueryFormatType
 22362namespace Azure.Storage.Blobs.Models
 22363{
 22364    /// <summary>
 22365    /// The quick query format type.
 22366    /// </summary>
 22367    internal enum QueryFormatType
 22368    {
 22369        /// <summary>
 22370        /// delimited
 22371        /// </summary>
 22372        Delimited,
 22373
 22374        /// <summary>
 22375        /// json
 22376        /// </summary>
 22377        Json
 22378    }
 22379}
 22380
 22381namespace Azure.Storage.Blobs
 22382{
 22383    internal static partial class BlobRestClient
 22384    {
 22385        public static partial class Serialization
 22386        {
 22387            public static string ToString(Azure.Storage.Blobs.Models.QueryFormatType value)
 22388            {
 22389                return value switch
 22390                {
 22391                    Azure.Storage.Blobs.Models.QueryFormatType.Delimited => "delimited",
 22392                    Azure.Storage.Blobs.Models.QueryFormatType.Json => "json",
 22393                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 22394                };
 22395            }
 22396
 22397            public static Azure.Storage.Blobs.Models.QueryFormatType ParseQueryFormatType(string value)
 22398            {
 22399                return value switch
 22400                {
 22401                    "delimited" => Azure.Storage.Blobs.Models.QueryFormatType.Delimited,
 22402                    "json" => Azure.Storage.Blobs.Models.QueryFormatType.Json,
 22403                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 22404                };
 22405            }
 22406        }
 22407    }
 22408}
 22409#endregion enum QueryFormatType
 22410
 22411#region class QueryRequest
 22412namespace Azure.Storage.Blobs.Models
 22413{
 22414    /// <summary>
 22415    /// the quick query body
 22416    /// </summary>
 22417    internal partial class QueryRequest
 22418    {
 22419        /// <summary>
 22420        /// the query type
 22421        /// </summary>
 22422        public string QueryType { get; set; }
 22423
 22424        /// <summary>
 22425        /// a query statement
 22426        /// </summary>
 22427        public string Expression { get; set; }
 22428
 22429        /// <summary>
 22430        /// InputSerialization
 22431        /// </summary>
 22432        public Azure.Storage.Blobs.Models.QuerySerialization InputSerialization { get; set; }
 22433
 22434        /// <summary>
 22435        /// OutputSerialization
 22436        /// </summary>
 22437        public Azure.Storage.Blobs.Models.QuerySerialization OutputSerialization { get; set; }
 22438
 22439        /// <summary>
 22440        /// Creates a new QueryRequest instance
 22441        /// </summary>
 22442        public QueryRequest()
 22443        {
 22444            InputSerialization = new Azure.Storage.Blobs.Models.QuerySerialization();
 22445            OutputSerialization = new Azure.Storage.Blobs.Models.QuerySerialization();
 22446        }
 22447
 22448        /// <summary>
 22449        /// Serialize a QueryRequest instance as XML.
 22450        /// </summary>
 22451        /// <param name="value">The QueryRequest instance to serialize.</param>
 22452        /// <param name="name">An optional name to use for the root element instead of "QueryRequest".</param>
 22453        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 22454        /// <returns>The serialized XML element.</returns>
 22455        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.QueryRequest value, string name = "Que
 22456        {
 22457            System.Diagnostics.Debug.Assert(value != null);
 22458            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 22459            _element.Add(new System.Xml.Linq.XElement(
 22460                System.Xml.Linq.XName.Get("QueryType", ""),
 22461                value.QueryType));
 22462            _element.Add(new System.Xml.Linq.XElement(
 22463                System.Xml.Linq.XName.Get("Expression", ""),
 22464                value.Expression));
 22465            if (value.InputSerialization != null)
 22466            {
 22467                _element.Add(Azure.Storage.Blobs.Models.QuerySerialization.ToXml(value.InputSerialization, "InputSeriali
 22468            }
 22469            if (value.OutputSerialization != null)
 22470            {
 22471                _element.Add(Azure.Storage.Blobs.Models.QuerySerialization.ToXml(value.OutputSerialization, "OutputSeria
 22472            }
 22473            return _element;
 22474        }
 22475    }
 22476}
 22477#endregion class QueryRequest
 22478
 22479#region class QuerySerialization
 22480namespace Azure.Storage.Blobs.Models
 22481{
 22482    /// <summary>
 22483    /// QuerySerialization
 22484    /// </summary>
 22485    internal partial class QuerySerialization
 22486    {
 22487        /// <summary>
 22488        /// Format
 22489        /// </summary>
 22490        public Azure.Storage.Blobs.Models.QueryFormat Format { get; set; }
 22491
 22492        /// <summary>
 22493        /// Creates a new QuerySerialization instance
 22494        /// </summary>
 22495        public QuerySerialization()
 22496        {
 22497            Format = new Azure.Storage.Blobs.Models.QueryFormat();
 22498        }
 22499
 22500        /// <summary>
 22501        /// Serialize a QuerySerialization instance as XML.
 22502        /// </summary>
 22503        /// <param name="value">The QuerySerialization instance to serialize.</param>
 22504        /// <param name="name">An optional name to use for the root element instead of "QuerySerialization".</param>
 22505        /// <param name="ns">An optional namespace to use for the root element instead of "".</param>
 22506        /// <returns>The serialized XML element.</returns>
 22507        internal static System.Xml.Linq.XElement ToXml(Azure.Storage.Blobs.Models.QuerySerialization value, string name 
 22508        {
 22509            System.Diagnostics.Debug.Assert(value != null);
 22510            System.Xml.Linq.XElement _element = new System.Xml.Linq.XElement(System.Xml.Linq.XName.Get(name, ns));
 22511            _element.Add(Azure.Storage.Blobs.Models.QueryFormat.ToXml(value.Format, "Format", ""));
 22512            return _element;
 22513        }
 22514    }
 22515}
 22516#endregion class QuerySerialization
 22517
 22518#region enum RehydratePriority
 22519namespace Azure.Storage.Blobs.Models
 22520{
 22521    /// <summary>
 22522    /// Optional: Indicates the priority with which to rehydrate an archived blob.
 22523    /// </summary>
 22524    public enum RehydratePriority
 22525    {
 22526        /// <summary>
 22527        /// High
 22528        /// </summary>
 22529        High,
 22530
 22531        /// <summary>
 22532        /// Standard
 22533        /// </summary>
 22534        Standard
 22535    }
 22536}
 22537#endregion enum RehydratePriority
 22538
 22539#region enum SequenceNumberAction
 22540namespace Azure.Storage.Blobs.Models
 22541{
 22542    /// <summary>
 22543    /// Required if the x-ms-blob-sequence-number header is set for the request. This property applies to page blobs onl
 22544    /// </summary>
 22545    public enum SequenceNumberAction
 22546    {
 22547        /// <summary>
 22548        /// max
 22549        /// </summary>
 22550        Max,
 22551
 22552        /// <summary>
 22553        /// update
 22554        /// </summary>
 22555        Update,
 22556
 22557        /// <summary>
 22558        /// increment
 22559        /// </summary>
 22560        Increment
 22561    }
 22562}
 22563
 22564namespace Azure.Storage.Blobs
 22565{
 22566    internal static partial class BlobRestClient
 22567    {
 22568        public static partial class Serialization
 22569        {
 22570            public static string ToString(Azure.Storage.Blobs.Models.SequenceNumberAction value)
 22571            {
 22572                return value switch
 22573                {
 22574                    Azure.Storage.Blobs.Models.SequenceNumberAction.Max => "max",
 22575                    Azure.Storage.Blobs.Models.SequenceNumberAction.Update => "update",
 22576                    Azure.Storage.Blobs.Models.SequenceNumberAction.Increment => "increment",
 22577                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 22578                };
 22579            }
 22580
 22581            public static Azure.Storage.Blobs.Models.SequenceNumberAction ParseSequenceNumberAction(string value)
 22582            {
 22583                return value switch
 22584                {
 22585                    "max" => Azure.Storage.Blobs.Models.SequenceNumberAction.Max,
 22586                    "update" => Azure.Storage.Blobs.Models.SequenceNumberAction.Update,
 22587                    "increment" => Azure.Storage.Blobs.Models.SequenceNumberAction.Increment,
 22588                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 22589                };
 22590            }
 22591        }
 22592    }
 22593}
 22594#endregion enum SequenceNumberAction
 22595
 22596#region class SetHttpHeadersOperation
 22597namespace Azure.Storage.Blobs.Models
 22598{
 22599    /// <summary>
 22600    /// SetHttpHeadersOperation
 22601    /// </summary>
 22602    internal partial class SetHttpHeadersOperation
 22603    {
 22604        /// <summary>
 22605        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 22606        /// </summary>
 22607        public Azure.ETag ETag { get; internal set; }
 22608
 22609        /// <summary>
 22610        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 22611        /// </summary>
 22612        public System.DateTimeOffset LastModified { get; internal set; }
 22613
 22614        /// <summary>
 22615        /// The current sequence number for a page blob. This header is not returned for block blobs or append blobs
 22616        /// </summary>
 22617        public long BlobSequenceNumber { get; internal set; }
 22618
 22619        /// <summary>
 22620        /// Prevent direct instantiation of SetHttpHeadersOperation instances.
 22621        /// You can use BlobsModelFactory.SetHttpHeadersOperation instead.
 22622        /// </summary>
 22623        internal SetHttpHeadersOperation() { }
 22624    }
 22625}
 22626#endregion class SetHttpHeadersOperation
 22627
 22628#region class SetMetadataOperation
 22629namespace Azure.Storage.Blobs.Models
 22630{
 22631    /// <summary>
 22632    /// SetMetadataOperation
 22633    /// </summary>
 22634    internal partial class SetMetadataOperation
 22635    {
 22636        /// <summary>
 22637        /// The ETag contains a value that you can use to perform operations conditionally. If the request version is 20
 22638        /// </summary>
 22639        public Azure.ETag ETag { get; internal set; }
 22640
 22641        /// <summary>
 22642        /// Returns the date and time the container was last modified. Any operation that modifies the blob, including a
 22643        /// </summary>
 22644        public System.DateTimeOffset LastModified { get; internal set; }
 22645
 22646        /// <summary>
 22647        /// A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicat
 22648        /// </summary>
 22649        public string VersionId { get; internal set; }
 22650
 22651        /// <summary>
 22652        /// The value of this header is set to true if the contents of the request are successfully encrypted using the 
 22653        /// </summary>
 22654        public bool IsServerEncrypted { get; internal set; }
 22655
 22656        /// <summary>
 22657        /// The SHA-256 hash of the encryption key used to encrypt the metadata. This header is only returned when the m
 22658        /// </summary>
 22659        public string EncryptionKeySha256 { get; internal set; }
 22660
 22661        /// <summary>
 22662        /// Returns the name of the encryption scope used to encrypt the blob contents and application metadata.  Note t
 22663        /// </summary>
 22664        public string EncryptionScope { get; internal set; }
 22665
 22666        /// <summary>
 22667        /// Prevent direct instantiation of SetMetadataOperation instances.
 22668        /// You can use BlobsModelFactory.SetMetadataOperation instead.
 22669        /// </summary>
 22670        internal SetMetadataOperation() { }
 22671    }
 22672}
 22673#endregion class SetMetadataOperation
 22674
 22675#region enum SkuName
 22676namespace Azure.Storage.Blobs.Models
 22677{
 22678    /// <summary>
 22679    /// Identifies the sku name of the account
 22680    /// </summary>
 22681    public enum SkuName
 22682    {
 22683        /// <summary>
 22684        /// Standard_LRS
 22685        /// </summary>
 22686        StandardLrs,
 22687
 22688        /// <summary>
 22689        /// Standard_GRS
 22690        /// </summary>
 22691        StandardGrs,
 22692
 22693        /// <summary>
 22694        /// Standard_RAGRS
 22695        /// </summary>
 22696        StandardRagrs,
 22697
 22698        /// <summary>
 22699        /// Standard_ZRS
 22700        /// </summary>
 22701        StandardZrs,
 22702
 22703        /// <summary>
 22704        /// Premium_LRS
 22705        /// </summary>
 22706        PremiumLrs
 22707    }
 22708}
 22709
 22710namespace Azure.Storage.Blobs
 22711{
 22712    internal static partial class BlobRestClient
 22713    {
 22714        public static partial class Serialization
 22715        {
 22716            public static string ToString(Azure.Storage.Blobs.Models.SkuName value)
 22717            {
 22718                return value switch
 22719                {
 22720                    Azure.Storage.Blobs.Models.SkuName.StandardLrs => "Standard_LRS",
 22721                    Azure.Storage.Blobs.Models.SkuName.StandardGrs => "Standard_GRS",
 22722                    Azure.Storage.Blobs.Models.SkuName.StandardRagrs => "Standard_RAGRS",
 22723                    Azure.Storage.Blobs.Models.SkuName.StandardZrs => "Standard_ZRS",
 22724                    Azure.Storage.Blobs.Models.SkuName.PremiumLrs => "Premium_LRS",
 22725                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 22726                };
 22727            }
 22728
 22729            public static Azure.Storage.Blobs.Models.SkuName ParseSkuName(string value)
 22730            {
 22731                return value switch
 22732                {
 22733                    "Standard_LRS" => Azure.Storage.Blobs.Models.SkuName.StandardLrs,
 22734                    "Standard_GRS" => Azure.Storage.Blobs.Models.SkuName.StandardGrs,
 22735                    "Standard_RAGRS" => Azure.Storage.Blobs.Models.SkuName.StandardRagrs,
 22736                    "Standard_ZRS" => Azure.Storage.Blobs.Models.SkuName.StandardZrs,
 22737                    "Premium_LRS" => Azure.Storage.Blobs.Models.SkuName.PremiumLrs,
 22738                    _ => throw new System.ArgumentOutOfRangeException(nameof(value), value, "Unknown Azure.Storage.Blobs
 22739                };
 22740            }
 22741        }
 22742    }
 22743}
 22744#endregion enum SkuName
 22745
 22746#region class StorageError
 22747namespace Azure.Storage.Blobs.Models
 22748{
 22749    /// <summary>
 22750    /// StorageError
 22751    /// </summary>
 22752    internal partial class StorageError
 22753    {
 22754        /// <summary>
 22755        /// Message
 22756        /// </summary>
 22757        public string Message { get; internal set; }
 22758
 22759        /// <summary>
 22760        /// Code
 22761        /// </summary>
 22762        public string Code { get; internal set; }
 22763
 22764        /// <summary>
 22765        /// Prevent direct instantiation of StorageError instances.
 22766        /// You can use BlobsModelFactory.StorageError instead.
 22767        /// </summary>
 22768        internal StorageError() { }
 22769
 22770        /// <summary>
 22771        /// Deserializes XML into a new StorageError instance.
 22772        /// </summary>
 22773        /// <param name="element">The XML element to deserialize.</param>
 22774        /// <returns>A deserialized StorageError instance.</returns>
 22775        internal static Azure.Storage.Blobs.Models.StorageError FromXml(System.Xml.Linq.XElement element)
 22776        {
 22777            System.Diagnostics.Debug.Assert(element != null);
 22778            System.Xml.Linq.XElement _child;
 22779            Azure.Storage.Blobs.Models.StorageError _value = new Azure.Storage.Blobs.Models.StorageError();
 22780            _child = element.Element(System.Xml.Linq.XName.Get("Message", ""));
 22781            if (_child != null)
 22782            {
 22783                _value.Message = _child.Value;
 22784            }
 22785            _child = element.Element(System.Xml.Linq.XName.Get("Code", ""));
 22786            if (_child != null)
 22787            {
 22788                _value.Code = _child.Value;
 22789            }
 22790            CustomizeFromXml(element, _value);
 22791            return _value;
 22792        }
 22793
 22794        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.StorageError v
 22795    }
 22796}
 22797#endregion class StorageError
 22798
 22799#region class UserDelegationKey
 22800namespace Azure.Storage.Blobs.Models
 22801{
 22802    /// <summary>
 22803    /// A user delegation key
 22804    /// </summary>
 22805    public partial class UserDelegationKey
 22806    {
 22807        /// <summary>
 22808        /// The Azure Active Directory object ID in GUID format.
 22809        /// </summary>
 22810        public string SignedObjectId { get; internal set; }
 22811
 22812        /// <summary>
 22813        /// The Azure Active Directory tenant ID in GUID format
 22814        /// </summary>
 22815        public string SignedTenantId { get; internal set; }
 22816
 22817        /// <summary>
 22818        /// Abbreviation of the Azure Storage service that accepts the key
 22819        /// </summary>
 22820        public string SignedService { get; internal set; }
 22821
 22822        /// <summary>
 22823        /// The service version that created the key
 22824        /// </summary>
 22825        public string SignedVersion { get; internal set; }
 22826
 22827        /// <summary>
 22828        /// The key as a base64 string
 22829        /// </summary>
 22830        public string Value { get; internal set; }
 22831
 22832        /// <summary>
 22833        /// The date-time the key expires
 22834        /// </summary>
 22835        public System.DateTimeOffset SignedExpiresOn { get; internal set; }
 22836
 22837        /// <summary>
 22838        /// The date-time the key is active
 22839        /// </summary>
 22840        public System.DateTimeOffset SignedStartsOn { get; internal set; }
 22841
 22842        /// <summary>
 22843        /// Prevent direct instantiation of UserDelegationKey instances.
 22844        /// You can use BlobsModelFactory.UserDelegationKey instead.
 22845        /// </summary>
 22846        internal UserDelegationKey() { }
 22847
 22848        /// <summary>
 22849        /// Deserializes XML into a new UserDelegationKey instance.
 22850        /// </summary>
 22851        /// <param name="element">The XML element to deserialize.</param>
 22852        /// <returns>A deserialized UserDelegationKey instance.</returns>
 22853        internal static Azure.Storage.Blobs.Models.UserDelegationKey FromXml(System.Xml.Linq.XElement element)
 22854        {
 22855            System.Diagnostics.Debug.Assert(element != null);
 22856            System.Xml.Linq.XElement _child;
 22857            Azure.Storage.Blobs.Models.UserDelegationKey _value = new Azure.Storage.Blobs.Models.UserDelegationKey();
 22858            _child = element.Element(System.Xml.Linq.XName.Get("SignedOid", ""));
 22859            if (_child != null)
 22860            {
 22861                _value.SignedObjectId = _child.Value;
 22862            }
 22863            _child = element.Element(System.Xml.Linq.XName.Get("SignedTid", ""));
 22864            if (_child != null)
 22865            {
 22866                _value.SignedTenantId = _child.Value;
 22867            }
 22868            _child = element.Element(System.Xml.Linq.XName.Get("SignedService", ""));
 22869            if (_child != null)
 22870            {
 22871                _value.SignedService = _child.Value;
 22872            }
 22873            _child = element.Element(System.Xml.Linq.XName.Get("SignedVersion", ""));
 22874            if (_child != null)
 22875            {
 22876                _value.SignedVersion = _child.Value;
 22877            }
 22878            _child = element.Element(System.Xml.Linq.XName.Get("Value", ""));
 22879            if (_child != null)
 22880            {
 22881                _value.Value = _child.Value;
 22882            }
 22883            _child = element.Element(System.Xml.Linq.XName.Get("SignedExpiry", ""));
 22884            if (_child != null)
 22885            {
 22886                _value.SignedExpiresOn = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.Inva
 22887            }
 22888            _child = element.Element(System.Xml.Linq.XName.Get("SignedStart", ""));
 22889            if (_child != null)
 22890            {
 22891                _value.SignedStartsOn = System.DateTimeOffset.Parse(_child.Value, System.Globalization.CultureInfo.Invar
 22892            }
 22893            CustomizeFromXml(element, _value);
 22894            return _value;
 22895        }
 22896
 22897        static partial void CustomizeFromXml(System.Xml.Linq.XElement element, Azure.Storage.Blobs.Models.UserDelegation
 22898    }
 22899
 22900    /// <summary>
 22901    /// BlobsModelFactory provides utilities for mocking.
 22902    /// </summary>
 22903    public static partial class BlobsModelFactory
 22904    {
 22905        /// <summary>
 22906        /// Creates a new UserDelegationKey instance for mocking.
 22907        /// </summary>
 22908        public static UserDelegationKey UserDelegationKey(
 22909            string signedObjectId,
 22910            string signedTenantId,
 22911            string signedService,
 22912            string signedVersion,
 22913            string value,
 22914            System.DateTimeOffset signedExpiresOn,
 22915            System.DateTimeOffset signedStartsOn)
 22916        {
 22917            return new UserDelegationKey()
 22918            {
 22919                SignedObjectId = signedObjectId,
 22920                SignedTenantId = signedTenantId,
 22921                SignedService = signedService,
 22922                SignedVersion = signedVersion,
 22923                Value = value,
 22924                SignedExpiresOn = signedExpiresOn,
 22925                SignedStartsOn = signedStartsOn,
 22926            };
 22927        }
 22928    }
 22929}
 22930#endregion class UserDelegationKey
 22931#endregion Models
 22932