BlobGetPropertiesHeaders
                    class BlobGetPropertiesHeaders
                
                using Azure.Core;
using Azure.Storage.Blobs.Models;
using System;
using System.Collections.Generic;
namespace Azure.Storage.Blobs
{
    internal class BlobGetPropertiesHeaders
    {
        private readonly Response _response;
        public DateTimeOffset? LastModified {
            get {
                if (!_response.get_Headers().TryGetValue("Last-Modified", out DateTimeOffset? value))
                    return null;
                return value;
            }
        }
        public DateTimeOffset? CreationTime {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-creation-time", out DateTimeOffset? value))
                    return null;
                return value;
            }
        }
        public IDictionary<string, string> Metadata {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-meta-", out IDictionary<string, string> value))
                    return null;
                return value;
            }
        }
        public string ObjectReplicationPolicyId {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-or-policy-id", ref result))
                    return null;
                return result;
            }
        }
        public IDictionary<string, string> ObjectReplicationRules {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-or-", out IDictionary<string, string> value))
                    return null;
                return value;
            }
        }
        public BlobType? BlobType {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string value = default(string);
                if (!headers.TryGetValue("x-ms-blob-type", ref value))
                    return null;
                return value.ToBlobType();
            }
        }
        public DateTimeOffset? CopyCompletionTime {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-copy-completion-time", out DateTimeOffset? value))
                    return null;
                return value;
            }
        }
        public string CopyStatusDescription {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-copy-status-description", ref result))
                    return null;
                return result;
            }
        }
        public string CopyId {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-copy-id", ref result))
                    return null;
                return result;
            }
        }
        public string CopyProgress {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-copy-progress", ref result))
                    return null;
                return result;
            }
        }
        public string CopySource {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-copy-source", ref result))
                    return null;
                return result;
            }
        }
        public CopyStatus? CopyStatus {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string value = default(string);
                if (!headers.TryGetValue("x-ms-copy-status", ref value))
                    return null;
                return value.ToCopyStatus();
            }
        }
        public bool? IsIncrementalCopy {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-incremental-copy", out bool? value))
                    return null;
                return value;
            }
        }
        public string DestinationSnapshot {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-copy-destination-snapshot", ref result))
                    return null;
                return result;
            }
        }
        public LeaseDurationType? LeaseDuration {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string value = default(string);
                if (!headers.TryGetValue("x-ms-lease-duration", ref value))
                    return null;
                return value.ToLeaseDurationType();
            }
        }
        public LeaseState? LeaseState {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string value = default(string);
                if (!headers.TryGetValue("x-ms-lease-state", ref value))
                    return null;
                return value.ToLeaseState();
            }
        }
        public LeaseStatus? LeaseStatus {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string value = default(string);
                if (!headers.TryGetValue("x-ms-lease-status", ref value))
                    return null;
                return value.ToLeaseStatus();
            }
        }
        public long? ContentLength {
            get {
                if (!_response.get_Headers().TryGetValue("Content-Length", out long? value))
                    return null;
                return value;
            }
        }
        public string ContentType {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("Content-Type", ref result))
                    return null;
                return result;
            }
        }
        public byte[] ContentMD5 {
            get {
                if (!_response.get_Headers().TryGetValue("Content-MD5", out byte[] value))
                    return null;
                return value;
            }
        }
        public string ContentEncoding {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("Content-Encoding", ref result))
                    return null;
                return result;
            }
        }
        public string ContentDisposition {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("Content-Disposition", ref result))
                    return null;
                return result;
            }
        }
        public string ContentLanguage {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("Content-Language", ref result))
                    return null;
                return result;
            }
        }
        public string CacheControl {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("Cache-Control", ref result))
                    return null;
                return result;
            }
        }
        public long? BlobSequenceNumber {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-blob-sequence-number", out long? value))
                    return null;
                return value;
            }
        }
        public string Version {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-version", ref result))
                    return null;
                return result;
            }
        }
        public string AcceptRanges {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("Accept-Ranges", ref result))
                    return null;
                return result;
            }
        }
        public int? BlobCommittedBlockCount {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-blob-committed-block-count", out int? value))
                    return null;
                return value;
            }
        }
        public bool? IsServerEncrypted {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-server-encrypted", out bool? value))
                    return null;
                return value;
            }
        }
        public string EncryptionKeySha256 {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-encryption-key-sha256", ref result))
                    return null;
                return result;
            }
        }
        public string EncryptionScope {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-encryption-scope", ref result))
                    return null;
                return result;
            }
        }
        public string AccessTier {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-access-tier", ref result))
                    return null;
                return result;
            }
        }
        public bool? AccessTierInferred {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-access-tier-inferred", out bool? value))
                    return null;
                return value;
            }
        }
        public string ArchiveStatus {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-archive-status", ref result))
                    return null;
                return result;
            }
        }
        public DateTimeOffset? AccessTierChangeTime {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-access-tier-change-time", out DateTimeOffset? value))
                    return null;
                return value;
            }
        }
        public string VersionId {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-version-id", ref result))
                    return null;
                return result;
            }
        }
        public bool? IsCurrentVersion {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-is-current-version", out bool? value))
                    return null;
                return value;
            }
        }
        public long? TagCount {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-tag-count", out long? value))
                    return null;
                return value;
            }
        }
        public DateTimeOffset? ExpiresOn {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-expiry-time", out DateTimeOffset? value))
                    return null;
                return value;
            }
        }
        public bool? IsSealed {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-blob-sealed", out bool? value))
                    return null;
                return value;
            }
        }
        public string RehydratePriority {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string result = default(string);
                if (!headers.TryGetValue("x-ms-rehydrate-priority", ref result))
                    return null;
                return result;
            }
        }
        public DateTimeOffset? LastAccessed {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-last-access-time", out DateTimeOffset? value))
                    return null;
                return value;
            }
        }
        public DateTimeOffset? ImmutabilityPolicyExpiresOn {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-immutability-policy-until-date", out DateTimeOffset? value))
                    return null;
                return value;
            }
        }
        public BlobImmutabilityPolicyMode? ImmutabilityPolicyMode {
            get {
                ResponseHeaders headers = _response.get_Headers();
                string value = default(string);
                if (!headers.TryGetValue("x-ms-immutability-policy-mode", ref value))
                    return null;
                return value.ToBlobImmutabilityPolicyMode();
            }
        }
        public bool? LegalHold {
            get {
                if (!_response.get_Headers().TryGetValue("x-ms-legal-hold", out bool? value))
                    return null;
                return value;
            }
        }
        public BlobGetPropertiesHeaders(Response response)
        {
            _response = response;
        }
    }
}