< Summary

Class:Azure.Storage.Files.DataLake.DataLakeClientOptions
Assembly:Azure.Storage.Files.DataLake
File(s):C:\Git\azure-sdk-for-net\sdk\storage\Azure.Storage.Files.DataLake\src\DataLakeClientOptions.cs
Covered lines:143
Uncovered lines:3
Coverable lines:146
Total lines:262
Line coverage:97.9% (143 of 146)
Covered branches:2
Total branches:4
Branch coverage:50% (2 of 4)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
get_Version()-100%100%
.ctor(...)-87.5%50%
get_GeoRedundantSecondaryUri()-0%100%
AddHeadersAndQueryParameters()-100%100%
Build(...)-100%100%
Build(...)-0%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\storage\Azure.Storage.Files.DataLake\src\DataLakeClientOptions.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using Azure.Core;
 6using Azure.Core.Pipeline;
 7using Azure.Storage.Blobs;
 8using Azure.Storage.Files.DataLake.Models;
 9
 10namespace Azure.Storage.Files.DataLake
 11{
 12    /// <summary>
 13    /// Provides the client configuration options for connecting to Azure Data Lake service.
 14    /// </summary>
 15    public class DataLakeClientOptions : ClientOptions
 16    {
 17        /// <summary>
 18        /// The Latest service version supported by this client library.
 19        /// </summary>
 20        internal const ServiceVersion LatestVersion = StorageVersionExtensions.LatestVersion;
 21
 22        /// <summary>
 23        /// The versions of Azure Data Lake Sevice supported by this client
 24        /// library.  For more, see
 25        /// <see href="https://docs.microsoft.com/en-us/rest/api/storageservices/versioning-for-the-azure-storage-servic
 26        /// Versioning for the Azure Storage services</see>.
 27        /// </summary>
 28        public enum ServiceVersion
 29        {
 30#pragma warning disable CA1707 // Identifiers should not contain underscores
 31            /// <summary>
 32            /// The 2019-02-02 service version described at
 33            /// <see href="https://docs.microsoft.com/en-us/rest/api/storageservices/version-2019-02-02">
 34            /// Version 2019-02-02</see>
 35            /// </summary>
 36            V2019_02_02 = 1,
 37
 38            /// <summary>
 39            /// The 2019-07-07 service version described at
 40            /// <see href="https://docs.microsoft.com/en-us/rest/api/storageservices/version-2019-07-07">
 41            /// Version 2019-07-07</see>
 42            /// </summary>
 43            V2019_07_07 = 2,
 44
 45            /// <summary>
 46            /// The 2019-12-12 service version.
 47            /// </summary>
 48            V2019_12_12 = 3
 49#pragma warning restore CA1707 // Identifiers should not contain underscores
 50        }
 51
 52        /// <summary>
 53        /// Gets the <see cref="ServiceVersion"/> of the service API used when
 54        /// making requests.  For more, see
 55        /// <see href="https://docs.microsoft.com/en-us/rest/api/storageservices/versioning-for-the-azure-storage-servic
 56        /// </summary>
 329857        public ServiceVersion Version { get; }
 58
 59        /// <summary>
 60        /// Initializes a new instance of the <see cref="DataLakeClientOptions"/>
 61        /// class.
 62        /// </summary>
 63        /// <param name="version">
 64        /// The <see cref="ServiceVersion"/> of the service API used when
 65        /// making requests.
 66        /// </param>
 329867        public DataLakeClientOptions(ServiceVersion version = LatestVersion)
 68        {
 329869            if (ServiceVersion.V2019_02_02 <= version
 329870                && version <= LatestVersion)
 71            {
 329872                Version = version;
 73            }
 74            else
 75            {
 076                throw Errors.VersionNotSupported(nameof(version));
 77            }
 78
 329879            this.Initialize();
 329880            AddHeadersAndQueryParameters();
 329881        }
 82
 83        /// <summary>
 84        /// Gets or sets the secondary storage <see cref="Uri"/> that can be read from for the storage account if the
 85        /// account is enabled for RA-GRS.
 86        ///
 87        /// If this property is set, the secondary Uri will be used for GET or HEAD requests during retries.
 88        /// If the status of the response from the secondary Uri is a 404, then subsequent retries for
 89        /// the request will not use the secondary Uri again, as this indicates that the resource
 90        /// may not have propagated there yet. Otherwise, subsequent retries will alternate back and forth
 91        /// between primary and secondary Uri.
 92        /// </summary>
 093        public Uri GeoRedundantSecondaryUri { get; set; }
 94
 95        /// <summary>
 96        /// Add headers and query parameters in <see cref="DiagnosticsOptions.LoggedHeaderNames"/> and <see cref="Diagno
 97        /// </summary>
 98        private void AddHeadersAndQueryParameters()
 99        {
 100            // Data Lake headers
 3298101            Diagnostics.LoggedHeaderNames.Add("x-ms-properties");
 3298102            Diagnostics.LoggedHeaderNames.Add("x-ms-client-request-id");
 3298103            Diagnostics.LoggedHeaderNames.Add("If-Modified-Since");
 3298104            Diagnostics.LoggedHeaderNames.Add("If-Unmodified-Since");
 3298105            Diagnostics.LoggedHeaderNames.Add("If-Match");
 3298106            Diagnostics.LoggedHeaderNames.Add("If-None-Match");
 3298107            Diagnostics.LoggedHeaderNames.Add("x-ms-rename-source");
 3298108            Diagnostics.LoggedHeaderNames.Add("x-ms-source-lease-id");
 3298109            Diagnostics.LoggedHeaderNames.Add("x-ms-permissions");
 3298110            Diagnostics.LoggedHeaderNames.Add("x-ms-umask");
 3298111            Diagnostics.LoggedHeaderNames.Add("x-ms-owner");
 3298112            Diagnostics.LoggedHeaderNames.Add("x-ms-group");
 3298113            Diagnostics.LoggedHeaderNames.Add("x-ms-acl");
 114
 115            // Data Lake query parameters
 3298116            Diagnostics.LoggedQueryParameters.Add("recursive");
 3298117            Diagnostics.LoggedQueryParameters.Add("resource");
 3298118            Diagnostics.LoggedQueryParameters.Add("action");
 3298119            Diagnostics.LoggedQueryParameters.Add("position");
 3298120            Diagnostics.LoggedQueryParameters.Add("retainUncommittedData");
 3298121            Diagnostics.LoggedQueryParameters.Add("close");
 3298122            Diagnostics.LoggedQueryParameters.Add("timeout");
 3298123            Diagnostics.LoggedQueryParameters.Add("directory");
 3298124            Diagnostics.LoggedQueryParameters.Add("continuation");
 3298125            Diagnostics.LoggedQueryParameters.Add("upn");
 3298126            Diagnostics.LoggedQueryParameters.Add("maxResults");
 3298127            Diagnostics.LoggedQueryParameters.Add("mode");
 128
 129            // Blob headers
 3298130            Diagnostics.LoggedHeaderNames.Add("Access-Control-Allow-Origin");
 3298131            Diagnostics.LoggedHeaderNames.Add("x-ms-date");
 3298132            Diagnostics.LoggedHeaderNames.Add("x-ms-error-code");
 3298133            Diagnostics.LoggedHeaderNames.Add("x-ms-request-id");
 3298134            Diagnostics.LoggedHeaderNames.Add("x-ms-version");
 3298135            Diagnostics.LoggedHeaderNames.Add("Accept-Ranges");
 3298136            Diagnostics.LoggedHeaderNames.Add("Content-Disposition");
 3298137            Diagnostics.LoggedHeaderNames.Add("Content-Encoding");
 3298138            Diagnostics.LoggedHeaderNames.Add("Content-Language");
 3298139            Diagnostics.LoggedHeaderNames.Add("Content-MD5");
 3298140            Diagnostics.LoggedHeaderNames.Add("Content-Range");
 3298141            Diagnostics.LoggedHeaderNames.Add("Vary");
 3298142            Diagnostics.LoggedHeaderNames.Add("x-ms-content-crc64");
 3298143            Diagnostics.LoggedHeaderNames.Add("x-ms-copy-action");
 3298144            Diagnostics.LoggedHeaderNames.Add("x-ms-copy-completion-time");
 3298145            Diagnostics.LoggedHeaderNames.Add("x-ms-copy-id");
 3298146            Diagnostics.LoggedHeaderNames.Add("x-ms-copy-progress");
 3298147            Diagnostics.LoggedHeaderNames.Add("x-ms-copy-status");
 3298148            Diagnostics.LoggedHeaderNames.Add("x-ms-has-immutability-policy");
 3298149            Diagnostics.LoggedHeaderNames.Add("x-ms-has-legal-hold");
 3298150            Diagnostics.LoggedHeaderNames.Add("x-ms-lease-state");
 3298151            Diagnostics.LoggedHeaderNames.Add("x-ms-lease-status");
 3298152            Diagnostics.LoggedHeaderNames.Add("x-ms-range");
 3298153            Diagnostics.LoggedHeaderNames.Add("x-ms-request-server-encrypted");
 3298154            Diagnostics.LoggedHeaderNames.Add("x-ms-server-encrypted");
 3298155            Diagnostics.LoggedHeaderNames.Add("x-ms-snapshot");
 3298156            Diagnostics.LoggedHeaderNames.Add("x-ms-source-range");
 3298157            Diagnostics.LoggedHeaderNames.Add("x-ms-access-tier");
 3298158            Diagnostics.LoggedHeaderNames.Add("x-ms-access-tier-change-time");
 3298159            Diagnostics.LoggedHeaderNames.Add("x-ms-access-tier-inferred");
 3298160            Diagnostics.LoggedHeaderNames.Add("x-ms-account-kind");
 3298161            Diagnostics.LoggedHeaderNames.Add("x-ms-archive-status");
 3298162            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-append-offset");
 3298163            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-cache-control");
 3298164            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-committed-block-count");
 3298165            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-condition-appendpos");
 3298166            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-condition-maxsize");
 3298167            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-content-disposition");
 3298168            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-content-encoding");
 3298169            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-content-language");
 3298170            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-content-length");
 3298171            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-content-md5");
 3298172            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-content-type");
 3298173            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-public-access");
 3298174            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-sequence-number");
 3298175            Diagnostics.LoggedHeaderNames.Add("x-ms-blob-type");
 3298176            Diagnostics.LoggedHeaderNames.Add("x-ms-copy-destination-snapshot");
 3298177            Diagnostics.LoggedHeaderNames.Add("x-ms-creation-time");
 3298178            Diagnostics.LoggedHeaderNames.Add("x-ms-default-encryption-scope");
 3298179            Diagnostics.LoggedHeaderNames.Add("x-ms-delete-snapshots");
 3298180            Diagnostics.LoggedHeaderNames.Add("x-ms-delete-type-permanent");
 3298181            Diagnostics.LoggedHeaderNames.Add("x-ms-deny-encryption-scope-override");
 3298182            Diagnostics.LoggedHeaderNames.Add("x-ms-encryption-algorithm");
 3298183            Diagnostics.LoggedHeaderNames.Add("x-ms-if-sequence-number-eq");
 3298184            Diagnostics.LoggedHeaderNames.Add("x-ms-if-sequence-number-le");
 3298185            Diagnostics.LoggedHeaderNames.Add("x-ms-if-sequence-number-lt");
 3298186            Diagnostics.LoggedHeaderNames.Add("x-ms-incremental-copy");
 3298187            Diagnostics.LoggedHeaderNames.Add("x-ms-lease-action");
 3298188            Diagnostics.LoggedHeaderNames.Add("x-ms-lease-break-period");
 3298189            Diagnostics.LoggedHeaderNames.Add("x-ms-lease-duration");
 3298190            Diagnostics.LoggedHeaderNames.Add("x-ms-lease-id");
 3298191            Diagnostics.LoggedHeaderNames.Add("x-ms-lease-time");
 3298192            Diagnostics.LoggedHeaderNames.Add("x-ms-page-write");
 3298193            Diagnostics.LoggedHeaderNames.Add("x-ms-proposed-lease-id");
 3298194            Diagnostics.LoggedHeaderNames.Add("x-ms-range-get-content-md5");
 3298195            Diagnostics.LoggedHeaderNames.Add("x-ms-rehydrate-priority");
 3298196            Diagnostics.LoggedHeaderNames.Add("x-ms-sequence-number-action");
 3298197            Diagnostics.LoggedHeaderNames.Add("x-ms-sku-name");
 3298198            Diagnostics.LoggedHeaderNames.Add("x-ms-source-content-md5");
 3298199            Diagnostics.LoggedHeaderNames.Add("x-ms-source-if-match");
 3298200            Diagnostics.LoggedHeaderNames.Add("x-ms-source-if-modified-since");
 3298201            Diagnostics.LoggedHeaderNames.Add("x-ms-source-if-none-match");
 3298202            Diagnostics.LoggedHeaderNames.Add("x-ms-source-if-unmodified-since");
 3298203            Diagnostics.LoggedHeaderNames.Add("x-ms-tag-count");
 3298204            Diagnostics.LoggedHeaderNames.Add("x-ms-encryption-key-sha256");
 205
 206            // Blob query parameters
 3298207            Diagnostics.LoggedQueryParameters.Add("comp");
 3298208            Diagnostics.LoggedQueryParameters.Add("maxresults");
 3298209            Diagnostics.LoggedQueryParameters.Add("rscc");
 3298210            Diagnostics.LoggedQueryParameters.Add("rscd");
 3298211            Diagnostics.LoggedQueryParameters.Add("rsce");
 3298212            Diagnostics.LoggedQueryParameters.Add("rscl");
 3298213            Diagnostics.LoggedQueryParameters.Add("rsct");
 3298214            Diagnostics.LoggedQueryParameters.Add("se");
 3298215            Diagnostics.LoggedQueryParameters.Add("si");
 3298216            Diagnostics.LoggedQueryParameters.Add("sip");
 3298217            Diagnostics.LoggedQueryParameters.Add("sp");
 3298218            Diagnostics.LoggedQueryParameters.Add("spr");
 3298219            Diagnostics.LoggedQueryParameters.Add("sr");
 3298220            Diagnostics.LoggedQueryParameters.Add("srt");
 3298221            Diagnostics.LoggedQueryParameters.Add("ss");
 3298222            Diagnostics.LoggedQueryParameters.Add("st");
 3298223            Diagnostics.LoggedQueryParameters.Add("sv");
 3298224            Diagnostics.LoggedQueryParameters.Add("include");
 3298225            Diagnostics.LoggedQueryParameters.Add("marker");
 3298226            Diagnostics.LoggedQueryParameters.Add("prefix");
 3298227            Diagnostics.LoggedQueryParameters.Add("copyid");
 3298228            Diagnostics.LoggedQueryParameters.Add("restype");
 3298229            Diagnostics.LoggedQueryParameters.Add("blockid");
 3298230            Diagnostics.LoggedQueryParameters.Add("blocklisttype");
 3298231            Diagnostics.LoggedQueryParameters.Add("delimiter");
 3298232            Diagnostics.LoggedQueryParameters.Add("prevsnapshot");
 3298233            Diagnostics.LoggedQueryParameters.Add("ske");
 3298234            Diagnostics.LoggedQueryParameters.Add("skoid");
 3298235            Diagnostics.LoggedQueryParameters.Add("sks");
 3298236            Diagnostics.LoggedQueryParameters.Add("skt");
 3298237            Diagnostics.LoggedQueryParameters.Add("sktid");
 3298238            Diagnostics.LoggedQueryParameters.Add("skv");
 3298239            Diagnostics.LoggedQueryParameters.Add("snapshot");
 3298240        }
 241
 242        /// <summary>
 243        /// Create an HttpPipeline from DataLakeClientOptions.
 244        /// </summary>
 245        /// <param name="authentication">Optional authentication policy.</param>
 246        /// <returns>An HttpPipeline to use for Storage requests.</returns>
 247        internal HttpPipeline Build(HttpPipelinePolicy authentication = null)
 248        {
 3094249            return this.Build(authentication, GeoRedundantSecondaryUri);
 250        }
 251
 252        /// <summary>
 253        /// Create an HttpPipeline from DataLakeClientOptions.
 254        /// </summary>
 255        /// <param name="credentials">Optional authentication credentials.</param>
 256        /// <returns>An HttpPipeline to use for Storage requests.</returns>
 257        internal HttpPipeline Build(object credentials)
 258        {
 0259            return this.Build(credentials, GeoRedundantSecondaryUri);
 260        }
 261    }
 262}