diff --git a/package.json b/package.json index fba01fb1ce54..547475160d41 100644 --- a/package.json +++ b/package.json @@ -31,4 +31,4 @@ "npm": ">=9.0.0" }, "private": true -} +} \ No newline at end of file diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp new file mode 100644 index 000000000000..459e637297a1 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -0,0 +1,70 @@ +import "@azure-tools/typespec-client-generator-core"; +import "./main.tsp"; + +using TypeSpec.Http; +using Azure.ClientGenerator.Core; +using Storage.Blob; + +namespace Customizations; + +/** Parameters to be added in client constructors */ +model BlobServiceClientParameters { + ...ContainerNamePathParameter; + ...BlobPathParameter; +} + +@@clientNamespace(Storage.Blob, "Azure.Storage.Blobs"); +@@clientNamespace(Storage.Blob.Container, "Azure.Storage.Blobs"); +@@clientNamespace(Storage.Blob.Container.Blob, "Azure.Storage.Blobs"); +@@clientNamespace(Storage.Blob.Container.AppendBlob, "Azure.Storage.Blobs"); +@@clientNamespace(Storage.Blob.Container.BlockBlob, "Azure.Storage.Blobs"); +@@clientNamespace(Storage.Blob.Container.PageBlob, "Azure.Storage.Blobs"); + +@@clientName(Storage.Blob, "ServiceClient"); + +@@clientInitialization(Storage.Blob.Container, + { + parameters: ContainerNamePathParameter, + initializedBy: InitializedBy.parent | InitializedBy.individually, + } +); +@@clientInitialization(Storage.Blob.Container.Blob, + { + parameters: BlobServiceClientParameters, + initializedBy: InitializedBy.parent | InitializedBy.individually, + } +); +@@clientInitialization(Storage.Blob.Container.AppendBlob, + { + parameters: BlobServiceClientParameters, + initializedBy: InitializedBy.parent | InitializedBy.individually, + } +); +@@clientInitialization(Storage.Blob.Container.BlockBlob, + { + parameters: BlobServiceClientParameters, + initializedBy: InitializedBy.parent | InitializedBy.individually, + } +); +@@clientInitialization(Storage.Blob.Container.PageBlob, + { + parameters: BlobServiceClientParameters, + initializedBy: InitializedBy.parent | InitializedBy.individually, + } +); + +@@clientName(ContainerProperties.denyEncryptionScopeOverride, + "PreventEncryptionScopeOverride" +); +@@clientName(ContainerProperties.immutableStorageWithVersioningEnabled, + "IsImmutableStorageWithVersioningEnabled" +); +@@clientName(BlobPropertiesInternal.expiryTime, "ExpiresOn"); +@@clientName(BlobPropertiesInternal.sealed, "IsSealed"); +@@clientName(BlobPropertiesInternal.lastAccessTime, "LastAccessedOn"); +@@clientName(BlobPropertiesInternal.immutabilityPolicyUntilDate, + "ImmutabilityPolicyExpiresOn" +); + +@@clientName(MetadataHeaders, "metadata", "rust"); +@@clientName(ObjectReplicationHeaders, "objectReplicationHeaders", "rust"); diff --git a/specification/storage/Microsoft.BlobStorage/examples/2025-01-05/placeholder.md b/specification/storage/Microsoft.BlobStorage/examples/2025-01-05/placeholder.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp new file mode 100644 index 000000000000..320fe53f05de --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -0,0 +1,41 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./routes.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; + +@useAuth( + ApiKeyAuth | OAuth2Auth<[ + { + type: OAuth2FlowType.implicit, + authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize", + scopes: ["https://storage.azure.com/.default"], + } + ]> +) +@service({ + title: "Azure Storage Blob service", +}) +@server( + "{url}", + "The host name of the blob storage account, e.g. accountName.blob.core.windows.net", + { + @doc("The host name of the blob storage account, e.g. accountName.blob.core.windows.net") + url: url, + } +) +@versioned(Versions) +namespace Storage.Blob; + +#suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard typespec recommendation" +#suppress "@azure-tools/typespec-azure-core/no-enum" "Following standard typespec recommendation" +@doc("The Azure.Storage.Blob service versions.") +enum Versions { + @doc("The 2025-01-05 version of the Azure.Storage.Blob service.") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + v2025_01_05: "2025-01-05", +} diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp new file mode 100644 index 000000000000..3356637f2d88 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -0,0 +1,2153 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/xml"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.Core; +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; +using Azure.ClientGenerator.Core; + +namespace Storage.Blob; + +/** The error response. */ +@error +model StorageError { + /** The error message. */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API" + Message?: string; +} + +/// Models + +/** Represents a single block in a block blob. It describes the block's ID and size. */ +model Block { + /** The base64 encoded block ID. */ + @Xml.name("Name") + name: string; + + /** The block size in bytes. */ + @Xml.name("Size") + size: int64; +} + +/** Contains the committed and uncommitted blocks in a block blob. */ +model BlockList { + /** The list of committed blocks. */ + @Xml.name("CommittedBlocks") + committedBlocks?: Block[]; + + /** The list of uncommitted blocks. */ + @Xml.name("UncommittedBlocks") + uncommittedBlocks?: Block[]; +} + +/** The Block lookup list. */ +@Xml.name("BlockList") +model BlockLookupList { + /** The committed blocks */ + @Xml.unwrapped + @Xml.name("Committed") + committed?: string[]; + + /** The uncommitted blocks */ + @Xml.unwrapped + @Xml.name("Uncommitted") + uncommitted?: string[]; + + /** The latest blocks */ + @Xml.unwrapped + @Xml.name("Latest") + latest?: string[]; +} + +/** Represents an array of signed identifiers */ +@Xml.name("SignedIdentifiers") +model SignedIdentifiers is Array; + +/** The signed identifier. */ +@Xml.name("SignedIdentifier") +model SignedIdentifier { + /** The unique ID for the signed identifier. */ + @Xml.name("Id") id: string; + + /** The access policy for the signed identifier. */ + @Xml.name("AccessPolicy") accessPolicy: AccessPolicy; +} + +/** The result of a Filter Blobs API call */ +@Xml.name("EnumerationResults") +model FilterBlobSegment { + /** The service endpoint. */ + @Xml.attribute + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; + + /** The filter for the blobs. */ + @Xml.name("Where") where: string; + + /** The blob segment. */ + @Xml.name("Blobs") blobs: FilterBlobItem[]; + + /** The next marker of the blobs. */ + @Xml.name("NextMarker") + nextMarker?: string; +} + +/** The filter blob item. */ +@Xml.name("Blob") +model FilterBlobItem { + /** The name of the blob. */ + @Xml.name("Name") name: string; + + /** The properties of the blob. */ + @Xml.name("ContainerName") containerName: string; + + /** The metadata of the blob. */ + @Xml.unwrapped tags?: BlobTags; + + /** The version ID of the blob. */ + @Xml.name("VersionId") versionId?: string; + + /** Whether it is the current version of the blob */ + @Xml.name("IsCurrentVersion") isCurrentVersion?: boolean; +} + +/** Include this parameter to specify that the container's metadata be returned as part of the response body. */ +union ListContainersIncludeType { + /** Include metadata */ + metadata: "metadata", + + /** Include deleted */ + deleted: "deleted", + + /** Include system */ + system: "system", + + string, +} + +/** The filter blobs includes. */ +union FilterBlobsIncludeItem { + /** The filter includes no versions. */ + None: "none", + + /** The filter includes n versions. */ + Versions: "versions", + + /** Extensible */ + string, +} + +/** The account kind. */ +union AccountKind { + /** The storage account is a general-purpose account. */ + Storage: "Storage", + + /** The storage account is a blob storage account. */ + BlobStorage: "BlobStorage", + + /** The storage account is a storage V2 account. */ + StorageV2: "StorageV2", + + /** The storage account is a file storage account. */ + FileStorage: "FileStorage", + + /** The storage account is a block blob storage account. */ + BlockBlobStorage: "BlockBlobStorage", + + /** Extensible */ + string, +} + +/** The SKU types */ +union SkuName { + /** The standard LRS SKU. */ + StandardLRS: "Standard_LRS", + + /** The standard GRS SKU. */ + StandardGRS: "Standard_GRS", + + /** The standard RAGRS SKU. */ + StandardRAGRS: "Standard_RAGRS", + + /** The standard ZRS SKU. */ + StandardZRS: "Standard_ZRS", + + /** The premium LRS SKU. */ + PremiumLRS: "Premium_LRS", + + /** Extensible */ + string, +} + +/** The list container segment response */ +@Xml.name("EnumerationResults") +model ListContainersSegmentResponse { + /** The service endpoint. */ + @Xml.attribute + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; + + /** The prefix of the containers. */ + @Xml.name("Prefix") prefix?: string; + + /** The marker of the containers. */ + @Xml.name("Marker") marker?: string; + + /** The max results of the containers. */ + @Xml.name("MaxResults") maxResults?: int32; + + /** The container segment. */ + @Xml.name("Containers") + containerItems: ContainerItem[]; + + /** The next marker of the containers. */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API. The casing is correct." + @continuationToken + @Xml.name("NextMarker") + NextMarker?: string; +} + +/** An Azure Storage container. */ +@Xml.name("Container") +model ContainerItem { + /** The name of the container. */ + @Xml.name("Name") name: string; + + /** Whether the container is deleted. */ + @Xml.name("Deleted") delete?: boolean; + + /** The version of the container. */ + @Xml.name("Version") version?: string; + + /** The properties of the container. */ + @Xml.name("Properties") properties: ContainerProperties; + + /** The metadata of the container. */ + @Xml.name("Metadata") metadata?: Record; +} + +/** The properties of a container. */ +model ContainerProperties { + /** The date-time the container was last modified in RFC1123 format. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @Xml.name("Last-Modified") + lastModified: utcDateTime; + + /** The ETag of the container. */ + @Xml.name("ETag") eTag: string; + + /** The lease status of the container. */ + @Xml.name("LeaseStatus") leaseStatus?: LeaseStatus; + + /** The lease state of the container. */ + @Xml.name("LeaseState") leaseState?: LeaseState; + + /** The lease duration of the container. */ + @Xml.name("LeaseDuration") leaseDuration?: LeaseDuration; + + /** The public access type of the container. */ + @Xml.name("PublicAccess") publicAccess?: PublicAccessType; + + /** Whether it has an immutability policy. */ + @Xml.name("HasImmutabilityPolicy") hasImmutabilityPolicy?: boolean; + + /** The has legal hold status of the container. */ + @Xml.name("HasLegalHold") hasLegalHold?: boolean; + + /** The default encryption scope of the container. */ + @Xml.name("DefaultEncryptionScope") defaultEncryptionScope?: string; + + /** Whether to prevent encryption scope override. */ + @Xml.name("DenyEncryptionScopeOverride") + denyEncryptionScopeOverride?: boolean; + + /** The deleted time of the container. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @Xml.name("DeletedTime") + deletedTime?: utcDateTime; + + /** The remaining retention days of the container. */ + @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; + + /** Whether immutable storage with versioning is enabled. */ + @Xml.name("ImmutableStorageWithVersioningEnabled") + immutableStorageWithVersioningEnabled?: boolean; +} + +/** Stats for the storage service. */ +model StorageServiceStats { + /** The geo replication stats. */ + @Xml.name("GeoReplication") geoReplication?: GeoReplication; +} + +/** Geo-Replication information for the Secondary Storage Service */ +model GeoReplication { + /** The status of the secondary location */ + @Xml.name("Status") status: GeoReplicationStatusType; + + /** A GMT date/time value, to the second. All primary writes preceding this value are guaranteed to be available for read operations at the secondary. Primary writes after this point in time may or may not be available for reads. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @Xml.name("LastSyncTime") + lastSyncTime: utcDateTime; +} + +/** The geo replication status. */ +union GeoReplicationStatusType { + /** The geo replication is live. */ + Live: "live", + + /** The geo replication is bootstrap. */ + Bootstrap: "bootstrap", + + /** The geo replication is unavailable. */ + Unavailable: "unavailable", + + /** Extensible */ + string, +} + +/** Key information */ +model KeyInfo { + /** The date-time the key is active. */ + @Xml.name("Start") start: string; + + /** The date-time the key expires. */ + @Xml.name("Expiry") expiry: string; +} + +/** A user delegation key. */ +model UserDelegationKey { + /** The Azure Active Directory object ID in GUID format. */ + @Xml.name("SignedOid") signedOid: uuid; + + /** The Azure Active Directory tenant ID in GUID format. */ + @Xml.name("SignedTid") signedTid: uuid; + + /** The date-time the key is active. */ + @Xml.name("SignedStart") signedStart: string; + + /** The date-time the key expires. */ + @Xml.name("SignedExpiry") signedExpiry: string; + + /** Abbreviation of the Azure Storage service that accepts the key. */ + @Xml.name("SignedService") signedService: string; + + /** The service version that created the key. */ + @Xml.name("SignedVersion") signedVersion: string; + + /** The key as a base64 string. */ + @Xml.name("Value") value: string; +} + +/** The public access types. */ +union PublicAccessType { + /** Blob access. */ + Blob: "blob", + + /** Container access. */ + Container: "container", + + /** Extensible */ + string, +} + +/** The copy status. */ +union CopyStatus { + /** The copy operation is pending. */ + Pending: "pending", + + /** The copy operation succeeded. */ + Success: "success", + + /** The copy operation failed. */ + Failed: "failed", + + /** The copy operation is aborted. */ + Aborted: "aborted", + + /** Extensible */ + string, +} + +/** The lease duration. */ +union LeaseDuration { + /** The lease is of infinite duration. */ + Infinite: "infinite", + + /** The lease is of fixed duration. */ + Fixed: "fixed", + + /** Extensible */ + string, +} + +/** The lease state. */ +union LeaseState { + /** The lease is available. */ + Available: "available", + + /** The lease is currently leased. */ + Leased: "leased", + + /** The lease is expired. */ + Expired: "expired", + + /** The lease is breaking. */ + Breaking: "breaking", + + /** The lease is broken. */ + Broken: "broken", + + /** Extensible */ + string, +} + +/** The lease status. */ +union LeaseStatus { + /** The lease is unlocked. */ + Unlocked: "unlocked", + + /** The lease is locked. */ + Locked: "locked", + + /** Extensible */ + string, +} + +/** Represents an access policy. */ +model AccessPolicy { + /** The date-time the policy is active. */ + @Xml.name("Start") start: utcDateTime; + + /** The date-time the policy expires. */ + @Xml.name("Expiry") expiry: utcDateTime; + + /** The permissions for acl the policy. */ + @Xml.name("Permission") permission: string; +} + +/** The access tiers. */ +union AccessTier { + /** The hot P4 tier. */ + P4: "P4", + + /** The hot P6 tier. */ + P6: "P6", + + /** The hot P10 tier. */ + P10: "P10", + + /** The hot P15 tier. */ + P15: "P15", + + /** The hot P20 tier. */ + P20: "P20", + + /** The hot P30 tier. */ + P30: "P30", + + /** The hot P40 tier. */ + P40: "P40", + + /** The hot P50 tier. */ + P50: "P50", + + /** The hot P60 tier. */ + P60: "P60", + + /** The hot P70 tier. */ + P70: "P70", + + /** The hot P80 tier. */ + P80: "P80", + + /** The hot access tier. */ + Hot: "Hot", + + /** The cool access tier. */ + Cool: "Cool", + + /** The archive access tier. */ + Archive: "Archive", + + /** The Premium access tier. */ + Premium: "Premium", + + /** The Cold access tier. */ + Cold: "Cold", + + /** Extensible */ + string, +} + +/** The archive status. */ +union ArchiveStatus { + /** The archive status is rehydrating pending to hot. */ + RehydratePendingToHot: "rehydrate-pending-to-hot", + + /** The archive status is rehydrating pending to cool. */ + RehydratePendingToCool: "rehydrate-pending-to-cool", + + /** The archive status is rehydrating pending to archive. */ + RehydratePendingToCold: "rehydrate-pending-to-cold", + + /** Extensible */ + string, +} + +/** An Azure Storage Blob */ +@Xml.name("Blob") +model BlobItemInternal { + /** The name of the blob. */ + @Xml.name("Name") name: BlobName; + + /** Whether the blob is deleted. */ + @Xml.name("Deleted") deleted: boolean; + + /** The snapshot of the blob. */ + @Xml.name("Snapshot") snapshot: string; + + /** The version id of the blob. */ + @Xml.name("VersionId") versionId?: string; + + /** Whether the blob is the current version. */ + @Xml.name("IsCurrentVersion") isCurrentVersion?: boolean; + + /** The properties of the blob. */ + @Xml.name("Properties") properties: BlobPropertiesInternal; + + /** The metadata of the blob. */ + @Xml.name("Metadata") metadata?: BlobMetadata; + + /** The tags of the blob. */ + @Xml.name("BlobTags") blobTags?: BlobTags; + + /** The object replication metadata of the blob. */ + #suppress "@azure-tools/typespec-autorest/unsupported-param-type" "Existing API" + @Xml.name("ObjectReplicationMetadata") + objectReplicationMetadata?: ObjectReplicationMetadata; + + /** Whether the blog has versions only. */ + @Xml.name("HasVersionsOnly") hasVersionsOnly?: boolean; +} + +/** The properties of a blob. */ +@Xml.name("Properties") +model BlobPropertiesInternal { + /** The date-time the blob was created in RFC1123 format. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @Xml.name("Creation-Time") + creationTime?: utcDateTime; + + /** The date-time the blob was last modified in RFC1123 format. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @Xml.name("Last-Modified") + lastModified: utcDateTime; + + /** The blog ETag. */ + @Xml.name("ETag") eTag: string; + + /** The content length of the blob. */ + @Xml.name("Content-Length") contentLength?: int64; + + /** The content type of the blob. */ + @Xml.name("Content-Type") contentType?: string; + + /** The content encoding of the blob. */ + @Xml.name("Content-Encoding") contentEncoding?: string; + + /** The content language of the blob. */ + @Xml.name("Content-Language") contentLanguage?: string; + + /** The content MD5 of the blob. */ + @Xml.name("Content-MD5") contentMd5?: bytes; + + /** The content disposition of the blob. */ + @Xml.name("Content-Disposition") contentDisposition?: string; + + /** The cache control of the blob. */ + @Xml.name("Cache-Control") cacheControl?: string; + + /** The sequence number of the blob. */ + @Xml.name("x-ms-blob-sequence-number") blobSequenceNumber?: int64; + + /** The blob type. */ + @Xml.name("BlobType") blobType?: BlobType; + + /** The lease status of the blob. */ + @Xml.name("LeaseStatus") leaseStatus?: LeaseStatus; + + /** The lease state of the blob. */ + @Xml.name("LeaseState") leaseState?: LeaseState; + + /** The lease duration of the blob. */ + @Xml.name("LeaseDuration") leaseDuration?: LeaseDuration; + + /** The copy ID of the blob. */ + @Xml.name("CopyId") copyId?: string; + + /** The copy status of the blob. */ + @Xml.name("CopyStatus") copyStatus?: CopyStatus; + + /** The copy source of the blob. */ + @Xml.name("CopySource") copySource?: string; + + /** The copy progress of the blob. */ + @Xml.name("CopyProgress") copyProgress?: string; + + /** The copy completion time of the blob. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @Xml.name("CopyCompletionTime") + copyCompletionTime?: utcDateTime; + + /** The copy status description of the blob. */ + @Xml.name("CopyStatusDescription") copyStatusDescription?: string; + + /** Whether the blog is encrypted on the server. */ + @Xml.name("ServerEncrypted") serverEncrypted?: boolean; + + /** Whether the blog is incremental copy. */ + @Xml.name("IncrementalCopy") incrementalCopy?: boolean; + + /** The name of the destination snapshot. */ + @Xml.name("DestinationSnapshot") destinationSnapshot?: string; + + /** The time the blob was deleted. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @Xml.name("DeletedTime") + deletedTime?: utcDateTime; + + /** The remaining retention days of the blob. */ + @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; + + /** The access tier of the blob. */ + @Xml.name("AccessTier") accessTier?: AccessTier; + + /** Whether the access tier is inferred. */ + @Xml.name("AccessTierInferred") accessTierInferred?: boolean; + + /** The archive status of the blob. */ + @Xml.name("ArchiveStatus") archiveStatus?: ArchiveStatus; + + /** Customer provided key sha256 */ + @Xml.name("CustomerProvidedKeySha256") customerProvidedKeySha256?: string; + + /** The encryption scope of the blob. */ + @Xml.name("EncryptionScope") encryptionScope?: string; + + /** The access tier change time of the blob. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @Xml.name("AccessTierChangeTime") + accessTierChangeTime?: utcDateTime; + + /** The number of tags for the blob. */ + @Xml.name("TagCount") tagCount?: int32; + + /** The expire time of the blob. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @Xml.name("Expiry-Time") + expiryTime?: utcDateTime; + + /** Whether the blob is sealed. */ + @Xml.name("Sealed") + sealed?: boolean; + + /** The rehydrate priority of the blob. */ + @Xml.name("RehydratePriority") rehydratePriority?: RehydratePriority; + + /** The last access time of the blob. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @Xml.name("LastAccessTime") + lastAccessTime?: utcDateTime; + + /** The immutability policy until time of the blob. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @Xml.name("ImmutabilityPolicyUntilDate") + immutabilityPolicyUntilDate?: utcDateTime; + + /** The immutability policy mode of the blob. */ + @Xml.name("ImmutabilityPolicyMode") + immutabilityPolicyMode?: BlobImmutabilityPolicyMode; + + /** Whether the blob is under legal hold. */ + @Xml.name("LegalHold") legalHold?: boolean; +} + +/** The immutability policy mode. */ +union BlobImmutabilityPolicyMode { + /** The immutability policy is mutable. */ + Mutable: "Mutable", + + /** The immutability policy is locked. */ + Locked: "Locked", + + /** The immutability policy is unlocked. */ + Unlocked: "Unlocked", + + /** Extensible */ + string, +} + +/** The blob type. */ +union BlobType { + /** The blob is a block blob. */ + BlockBlob: "BlockBlob", + + /** The blob is a page blob. */ + PageBlob: "PageBlob", + + /** The blob is an append blob. */ + AppendBlob: "AppendBlob", + + /** Extensible */ + string, +} + +/** If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard. */ +@Xml.name("RehydratePriority") +union RehydratePriority { + /** The rehydrate priority is high. */ + High: "High", + + /** The rehydrate priority is standard. */ + Standard: "Standard", + + /** Extensible */ + string, +} + +/** The blob metadata. */ +// TODO: check if this needs an unwrapped decorator +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" +model BlobMetadata is Record { + /** Whether the blob metadata is encrypted. */ + @Xml.attribute + @Xml.name("Encrypted") + encrypted?: string; +} + +/** The blob tags. */ +@Xml.name("Tag") +model BlobTag { + /** The key of the tag. */ + @Xml.name("Key") key: string; + + /** The value of the tag. */ + @Xml.name("Value") value: string; +} + +/** The object replication metadata. */ +@Xml.name("OrMetadata") +model ObjectReplicationMetadata is Record; + +/// Service Properties + +/** The service properties. */ +model StorageServiceProperties { + /** The logging properties. */ + @Xml.name("Logging") logging?: Logging; + + /** The hour metrics properties. */ + @Xml.name("HourMetrics") hourMetrics?: Metrics; + + /** The minute metrics properties. */ + @Xml.name("MinuteMetrics") minuteMetrics?: Metrics; + + /** The CORS properties. */ + @Xml.name("Cors") cors?: CorsRule[]; + + /** The default service version. */ + @Xml.name("DefaultServiceVersion") defaultServiceVersion?: string; + + /** The delete retention policy. */ + @Xml.name("DeleteRetentionPolicy") deleteRetentionPolicy?: RetentionPolicy; + + /** The static website properties. */ + @Xml.name("StaticWebsite") staticWebsite?: StaticWebsite; +} + +/** The properties that enable an account to host a static website */ +model StaticWebsite { + /** Indicates whether this account is hosting a static website */ + @Xml.name("Enabled") enabled: boolean; + + /** The index document. */ + @Xml.name("IndexDocument") indexDocument?: string; + + /** The error document. */ + @Xml.name("ErrorDocument404Path") errorDocument404Path?: string; + + /** Absolute path of the default index page */ + @Xml.name("DefaultIndexDocumentPath") defaultIndexDocumentPath?: string; +} + +/** CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain */ +model CorsRule { + /** The allowed origins. */ + @Xml.name("AllowedOrigins") allowedOrigins: string; + + /** The allowed methods. */ + @Xml.name("AllowedMethods") allowedMethods: string; + + /** The allowed headers. */ + @Xml.name("AllowedHeaders") allowedHeaders: string; + + /** The exposed headers. */ + @Xml.name("ExposedHeaders") exposedHeaders: string; + + /** The maximum age in seconds. */ + @Xml.name("MaxAgeInSeconds") + @minValue(0) + maxAgeInSeconds: int32; +} + +/** The metrics properties. */ +model Metrics { + /** The version of the metrics properties. */ + @Xml.name("Version") version?: string; + + /** Whether it is enabled. */ + @Xml.name("Enabled") enabled: boolean; + + /** Whether to include API in the metrics. */ + @Xml.name("IncludeAPIs") includeApis?: boolean; + + /** The retention policy of the metrics. */ + @Xml.name("RetentionPolicy") retentionPolicy?: RetentionPolicy; +} + +/** Azure Analytics Logging settings. */ +model Logging { + /** The version of the logging properties. */ + @Xml.name("Version") version: string; + + /** Whether delete operation is logged. */ + @Xml.name("Delete") delete: boolean; + + /** Whether read operation is logged. */ + @Xml.name("Read") read: boolean; + + /** Whether write operation is logged. */ + @Xml.name("Write") write: boolean; + + /** The retention policy of the logs. */ + @Xml.name("RetentionPolicy") retentionPolicy: RetentionPolicy; +} + +/** The retention policy. */ +model RetentionPolicy { + /** Whether to enable the retention policy. */ + @Xml.name("Enabled") enabled: boolean; + + /** The number of days to retain the logs. */ + @Xml.name("Days") + @minValue(1) + days?: int32; + + /** Whether to allow permanent delete. */ + @Xml.name("AllowPermanentDelete") allowPermanentDelete?: boolean; +} + +// List Blobs + +/** An enumeration of blobs. */ +@Xml.name("EnumerationResults") +model ListBlobsFlatSegmentResponse { + /** The service endpoint. */ + @Xml.attribute + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; + + /** The container name. */ + @Xml.attribute + @Xml.name("ContainerName") + containerName: string; + + /** The prefix of the blobs. */ + @Xml.name("Prefix") prefix?: string; + + /** The marker of the blobs. */ + @Xml.name("Marker") marker?: string; + + /** The max results of the blobs. */ + @Xml.name("MaxResults") maxResults?: int32; + + /** The blob segment. */ + segment: BlobFlatListSegment; + + /** The next marker of the blobs. */ + @continuationToken + @Xml.name("NextMarker") + nextMarker?: string; +} + +/** The blob flat list segment. */ +@Xml.name("Blobs") +model BlobFlatListSegment { + /** The blob items. */ + @Xml.name("BlobItems") blobItems: BlobItemInternal[]; +} + +/** Represents a page list. */ +model PageList { + /** The page ranges. */ + @Xml.name("PageRange") pageRange?: PageRange[]; + + /** The clear ranges. */ + @Xml.name("ClearRange") clearRange?: ClearRange[]; + + /** The next marker. */ + @continuationToken + @Xml.name("NextMarker") + nextMarker?: string; +} + +/** The page range. */ +model PageRange { + /** The start of the byte range. */ + @Xml.name("Start") start: int64; + + /** The end of the byte range. */ + @Xml.name("End") end: int64; +} + +/** The clear range. */ +model ClearRange { + /** The start of the byte range. */ + @Xml.name("Start") start: int64; + + /** The end of the byte range. */ + @Xml.name("End") end: int64; +} + +/** Represents blob tags. */ +@Xml.name("Tags") +model BlobTags { + /** Represents the blob tags. */ + @Xml.name("TagSet") blobTagSet: BlobTag[]; +} + +/** The query request, note only SQL supported */ +union QueryRequestType { + /** The SQL request query type. */ + SQL: "SQL", + + /** Extensible */ + string, +} + +/** Groups the set of query request settings. */ +model QueryRequest { + /** Required. The type of the provided query expression. */ + @Xml.name("QueryType") queryType: QueryRequestType; + + /** The query expression in SQL. The maximum size of the query expression is 256KiB. */ + @Xml.name("Expression") expression: string; + + /** The input serialization settings. */ + @Xml.name("InputSerialization") inputSerialization?: QuerySerialization; + + /** The output serialization settings. */ + @Xml.name("OutputSerialization") outputSerialization?: QuerySerialization; +} + +/** The query serialization settings. */ +model QuerySerialization { + /** The query format. */ + @Xml.name("Format") format: QueryFormat; +} + +/** The query format settings. */ +model QueryFormat { + /** The query type. */ + @Xml.name("Type") type: QueryType; + + /** The delimited text configuration. */ + @Xml.name("DelimitedTextConfiguration") + delimitedTextConfiguration?: DelimitedTextConfiguration; + + /** The JSON text configuration. */ + @Xml.name("JsonTextConfiguration") + jsonTextConfiguration?: JsonTextConfiguration; + + /** The Apache Arrow configuration. */ + @Xml.name("ArrowConfiguration") arrowConfiguration?: ArrowConfiguration; + + /** The Parquet configuration. */ + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" + @Xml.name("ParquetConfiguration") + parquetTextConfiguration?: ParquetConfiguration; +} + +/** Represents the delimited text configuration. */ +model DelimitedTextConfiguration { + /** The string used to separate columns. */ + @Xml.name("ColumnSeparator") columnSeparator?: string; + + /** The string used to quote a specific field. */ + @Xml.name("FieldQuote") fieldQuote?: string; + + /** The string used to separate records. */ + @Xml.name("RecordSeparator") recordSeparator?: string; + + /** The string used to escape a quote character in a field. */ + @Xml.name("EscapeChar") escapeChar?: string; + + /** Represents whether the data has headers. */ + @Xml.name("HasHeaders") headersPresent?: boolean; +} + +/** Represents the JSON text configuration. */ +model JsonTextConfiguration { + /** The string used to separate records. */ + @Xml.name("RecordSeparator") recordSeparator?: string; +} + +/** Represents the Apache Arrow configuration. */ +model ArrowConfiguration { + /** The Apache Arrow schema */ + @Xml.name("Schema") schema: ArrowField[]; +} + +/** Represents an Apache Arrow field. */ +@Xml.name("Field") +model ArrowField { + /** The arrow field type. */ + @Xml.name("Type") type: string; + + /** The arrow field name. */ + @Xml.name("Name") name?: string; + + /** The arrow field precision. */ + @Xml.name("Precision") precision?: int32; + + /** The arrow field scale. */ + @Xml.name("Scale") scale?: int32; +} + +/** Represents the Parquet configuration. */ +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" +model ParquetConfiguration is Record; + +/** The query format type. */ +@Xml.name("Type") +union QueryType { + /** The query format type is delimited. */ + Delimited: "delimited", + + /** The query format type is JSON. */ + JSON: "json", + + /** The query format type is Apache Arrow. */ + Arrow: "arrow", + + /** The query format type is Parquet. */ + Parquet: "parquet", + + /** Extensible */ + string, +} + +/// Parameters + +/** The blob append offset response header. */ +alias BlobAppendOffsetResponseHeader = { + /** This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes. */ + @header("x-ms-blob-append-offset") + blobAppendOffset?: string; +}; + +/** The blob condition append position parameter. */ +alias BlobConditionAppendPosParameter = { + /** Optional conditional header, used only for the Append Block operation. A number indicating the byte offset to compare. Append Block will succeed only if the append position is equal to this number. If it is not, the request will fail with the AppendPositionConditionNotMet error (HTTP status code 412 - Precondition Failed). */ + @header("x-ms-blob-condition-appendpos") + appendPosition?: int64; +}; + +/** The blob condition max size parameter. */ +alias BlobConditionMaxSizeParameter = { + /** Optional conditional header. The max length in bytes permitted for the append blob. If the Append Block operation would cause the blob to exceed that limit or if the blob size is already greater than the value specified in this header, the request will fail with MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed). */ + @header("x-ms-blob-condition-maxsize") + maxSize?: int64; +}; + +/** The sequence number action parameter. */ +alias SequenceNumberActionParameter = { + /** Required if the x-ms-blob-sequence-number header is set for the request. This property applies to page blobs only. This property indicates how the service should modify the blob's sequence number */ + @header("x-ms-sequence-number-action") + sequenceNumberAction: SequenceNumberActionType; +}; + +/** The sequence number actions. */ +union SequenceNumberActionType { + /** Increment the sequence number. */ + Increment: "increment", + + /** Set the maximum for the sequence number. */ + Max: "max", + + /** Update the sequence number. */ + Update: "update", + + /** Extensible */ + string, +} + +/** The sequence number parameter. */ +alias SequenceNumberParameter = { + /** Set for page blobs only. The sequence number is a user-controlled value that you can use to track requests. The value of the sequence number must be between 0 and 2^63 - 1. */ + @header("x-ms-blob-sequence-number") + blobSequenceNumber?: int64 = 0; +}; + +/** The blob content length required parameter. */ +alias BlobContentLengthRequired = { + /** This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary. */ + @header("x-ms-blob-content-length") + blobContentLength: int64; +}; + +/** The deny encryption scope override response header. */ +alias DenyEncryptionScopeOverride = { + /** If a blob has a lease and the lease is of infinite duration then the value of this header is set to true, otherwise it is set to false. */ + @clientName("PreventEncryptionScopeOverride") + @header("x-ms-deny-encryption-scope-override") + denyEncryptionScopeOverride?: boolean; +}; + +/** Specifies whether data in the container may be accessed publicly and the level of access */ +alias BlobPublicAccess = { + /** The public access setting for the container. */ + @header("x-ms-blob-public-access") + access?: PublicAccessType; +}; + +/** Optional: Indicates the priority with which to rehydrate an archived blob. */ +alias RehydratePriorityHeader = { + /** If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard. */ + @header("x-ms-rehydrate-priority") + rehydratePriority?: RehydratePriority; +}; + +/** The expires on response header. */ +alias ExpiryTimeHeader = { + /** The time this blob will expire. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @clientName("ExpiresOn") + @encode("rfc7231") + @header("x-ms-expiry-time") + expiryTime?: utcDateTime; +}; + +/** The immutability policy expires on response header. */ +alias ImmutabilityPolicyExpiresOnResponseHeader = { + /** UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @clientName("ImmutabilityPolicyExpiresOn") + @encode("rfc7231") + @header("x-ms-immutability-policy-until-date") + immutabilityPolicyUntilDate?: utcDateTime; +}; + +/** The last accessed response header. */ +alias LastAccessedResponseHeader = { + /** UTC date/time value generated by the service that indicates the time at which the blob was last read or written to */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @header("x-ms-last-access-time") + lastAccessed?: utcDateTime; +}; + +/** The is sealed response header. */ +alias IsSealedResponseHeader = { + /** If this blob has been sealed */ + @header("x-ms-blob-sealed") + isSealed?: boolean; +}; + +/** The tag count response header. */ +alias TagCountResponseHeader = { + /** The number of tags associated with the blob */ + @header("x-ms-tag-count") + tagCount?: int64; +}; + +/** The blob committed block count response header. */ +alias BlobCommittedBlockCountResponseHeader = { + /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ + @header("x-ms-blob-committed-block-count") + blobCommittedBlockCount?: int32; +}; + +/** The accept ranges response header. */ +alias AcceptRangesResponseHeader = { + /** Indicates that the service supports requests for partial blob content. */ + @header("Accept-Ranges") acceptRanges?: string; +}; + +/** The is current version response header. */ +alias IsCurrentVersionResponseHeader = { + /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ + @header("x-ms-is-current-version") + isCurrentVersion?: boolean; +}; + +/** The lease status response header. */ +alias LeaseStatusResponseHeader = { + /** The lease status of the blob. */ + @header("x-ms-lease-status") + leaseStatus?: LeaseStatus; +}; + +/** The lease state response header. */ +alias LeaseStateResponseHeader = { + /** Lease state of the blob. */ + @header("x-ms-lease-state") + leaseState?: LeaseState; +}; + +/** The copy source response header. */ +alias CopySourceResponseHeader = { + /** URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List. */ + @header("x-ms-copy-source") + copySource?: string; +}; + +/** The copy progress response header. */ +alias CopyProgressResponseHeader = { + /** Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List */ + @header("x-ms-copy-progress") + copyProgress?: string; +}; + +/** The copy status description response header. */ +alias CopyStatusDescriptionResponseHeader = { + /** Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List */ + @header("x-ms-copy-status-description") + copyStatusDescription?: string; +}; + +/** The copy completion time response header. */ +alias CopyCompletionTimeResponseHeader = { + /** Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @header("x-ms-copy-completion-time") + copyCompletionTime?: utcDateTime; +}; + +/** The blob type response header. */ +alias BlobTypeResponseHeader = { + /** The type of the blob. */ + @header("x-ms-blob-type") + blobType?: BlobType; +}; + +/** The object replication policy response header. */ +alias ObjectReplicationPolicyIdResponseHeader = { + /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ + @header("x-ms-or-policy-id") + objectReplicationPolicyId?: string; +}; + +/** The if sequence number equal to parameter. */ +alias IfSequenceNumberEqualToParameter = { + /** Specify this header value to operate only on a blob if it has the specified sequence number. */ + @header("x-ms-if-sequence-number-eq") + ifSequenceNumberEqualTo?: int64; +}; + +/** THe if sequence number less than parameter. */ +alias IfSequenceNumberLessThanParameter = { + /** Specify this header value to operate only on a blob if it has a sequence number less than the specified. */ + @header("x-ms-if-sequence-number-lt") + ifSequenceNumberLessThan?: int64; +}; + +/** The if sequence number less than or equal to parameter. */ +alias IfSequenceNumberLessThanOrEqualToParameter = { + /** Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified. */ + @header("x-ms-if-sequence-number-le") + ifSequenceNumberLessThanOrEqualTo?: int64; +}; + +/** The block list types. */ +union BlockListType { + /** The list of committed blocks. */ + Committed: "committed", + + /** The list of uncommitted blocks. */ + Uncommitted: "uncommitted", + + /** Both lists together. */ + All: "all", + + /** Extensible */ + string, +} + +/** The source content CRC64 parameter. */ +alias SourceContentCrc64Parameter = { + /** Specify the crc64 calculated for the range of bytes that must be read from the copy source. */ + @header("x-ms-source-content-crc64") + sourceContentCrc64?: bytes; +}; + +/** The source range parameter. */ +alias SourceRangeParameter = { + /** Bytes of source data in the specified range. */ + @header("x-ms-source-range") + sourceRange?: string; +}; + +/** The source URL parameter. */ +alias SourceUrlParameter = { + /** Specify a URL to the copy source. */ + @header("x-ms-copy-source") + sourceUrl: string; +}; + +/** The Block ID parameter. */ +alias BlockIdParameter = { + /** A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal to 64 bytes in size. For a given blob, the length of the value specified for the blockid parameter must be the same size for each block. */ + @query + @clientName("blockId") + blockid: string; +}; + +/** The account kind response header. */ +alias AccountKindResponseHeader = { + /** Identifies the account kind */ + @header("x-ms-account-kind") + accountKind?: AccountKind; +}; + +/** The SKU name response header. */ +alias SkuNameResponseHeader = { + /** Identifies the sku name of the account */ + @header("x-ms-sku-name") + skuName?: SkuName; +}; + +/** The content CRC 64 response header. */ +alias ContentCrc64ResponseHeader = { + /** This response header is returned so that the client can check for the integrity of the copied content. */ + @header("x-ms-content-crc64") + contentCrc64: string; +}; + +/** The copy status response header. */ +alias CopyStatusResponseHeader = { + /** State of the copy operation identified by x-ms-copy-id. */ + @header("x-ms-copy-status") + copyStatus: CopyStatus; +}; + +/** The copy ID response header. */ +alias CopyIdResponseHeader = { + /** String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy. */ + @header("x-ms-copy-id") + copyId?: string; +}; + +/** The source if unmodified since parameter. */ +alias SourceIfUnmodifiedSinceParameter = { + /** Specify this header value to operate only on a blob if it has not been modified since the specified date/time. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @header("x-ms-source-if-unmodified-since") + sourceIfUnmodifiedSince?: utcDateTime; +}; + +/** The lease time response header. */ +alias LeaseTimeResponseHeader = { + /** Approximate time remaining in the lease period, in seconds. */ + @header("x-ms-lease-time") + leaseTime?: int32; +}; + +/** The lease break period parameter. */ +alias LeaseBreakPeriodParameter = { + /** For a break operation, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. This break period is only used if it is shorter than the time remaining on the lease. If longer, the time remaining on the lease is used. A new lease will not be available before the break period has expired, but the lease may be held for longer than the break period. If this header does not appear with a break operation, a fixed-duration lease breaks after the remaining lease period elapses, and an infinite lease breaks immediately. */ + @header("x-ms-lease-break-period") + breakPeriod?: int32; +}; + +/** The lease ID parameter. */ +alias LeaseIdOptionalParameter = { + /** If specified, the operation only succeeds if the resource's lease is active and matches this ID. */ + @header("x-ms-lease-id") leaseId?: string; +}; + +/** The lease ID required parameter. */ +alias LeaseIdRequiredParameter = { + /** Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ + @header("x-ms-lease-id") + leaseId: string; +}; + +/** The lease ID response header. */ +alias LeaseIdResponseHeader = { + /** Uniquely identifies a blobs' lease */ + @header("x-ms-lease-id") + leaseId?: string; +}; + +/** The is server encrypted response header. */ +alias IsServerEncryptedResponseHeader = { + /** The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise. */ + @clientName("isServerEncrypted") + @header("x-ms-request-server-encrypted") + requestServerEncrypted?: boolean; +}; + +/** The legal hold response header. */ +alias LegalHoldResponseHeader = { + /** Specifies the legal hold status to set on the blob. */ + @header("x-ms-legal-hold") + legalHold: boolean; +}; + +/** The legal hold required parameter. */ +alias LegalHoldRequiredParameter = { + /** Required. Specifies the legal hold status to set on the blob. */ + @header("x-ms-legal-hold") + legalHold: boolean; +}; + +/** The immutability policy mode response header. */ +alias ImmutabilityPolicyModeResponseHeader = { + /** Indicates the immutability policy mode of the blob. */ + @header("x-ms-immutability-policy-mode") + immutabilityPolicyMode: BlobImmutabilityPolicyMode; +}; + +/** The blob sequence number response header. */ +alias BlobSequenceNumberResponseHeader = { + /** The current sequence number for a page blob. This header is not returned for block blobs or append blobs. */ + @header("x-ms-blob-sequence-number") + blobSequenceNumber: int64; +}; + +/** The blob expiration options parameter. */ +alias BlobExpiryOptionsParameter = { + /** Required. Indicates mode of the expiry time */ + @header("x-ms-expiry-option") + expiryOptions: BlobExpiryOptions; +}; + +/** The blob expiration options. */ +union BlobExpiryOptions { + /** Never expire. */ + NeverExpire: "NeverExpire", + + /** Relative to creation time. */ + RelativeToCreation: "RelativeToCreation", + + /** Relative to now. */ + RelativeToNow: "RelativeToNow", + + /** Absolute time. */ + Absolute: "Absolute", + + /** Extensible */ + string, +} + +/** The Content-Language response header. */ +alias ContentLanguageResponseHeader = { + /** This header returns the value that was specified for the Content-Language request header. */ + @header("Content-Language") contentLanguage: string; +}; + +/** The Content-Disposition response header. */ +alias ContentDispositionResponseHeader = { + /** This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified. */ + @header("Content-Disposition") contentDisposition: string; +}; + +/** The Cache-Control response header. */ +alias CacheControlResponseHeader = { + /** This header is returned if it was previously specified for the blob. */ + @header("Cache-Control") cacheControl: string; +}; + +/** The Content-Encoding response header. */ +alias ContentEncodingResponseParameter = { + /** This header returns the value that was specified for the Content-Encoding request header */ + @header("Content-Encoding") contentEncoding: string; +}; + +/** The Content-Range response header. */ +alias ContentRangeResponseHeader = { + /** Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header. */ + @header("Content-Range") contentRange: string; +}; + +/** The Content-MD5 response header. */ +alias ContentMd5ResponseHeader = { + /** If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity. */ + @header("Content-MD5") contentMd5: string; +}; + +/** The Content-Length response header. */ +alias ContentLengthResponseHeader = { + /** The number of bytes present in the response body. */ + @header("Content-Length") contentLength: int64; +}; + +/** The version ID response header. */ +alias VersionIdResponseHeader = { + /** A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob. */ + @header("x-ms-version-id") + versionId: string; +}; + +/** The creation time response header. */ +alias CreationTimeResponseHeader = { + /** Returns the date and time the blob was created. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @header("x-ms-creation-time") + creationTime: utcDateTime; +}; + +/** The last modified response header */ +alias LastModifiedResponseHeader = { + /** The date/time that the container was last modified. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @header("Last-Modified") + lastModified: utcDateTime; +}; + +/** The Date response header */ +alias DateResponseHeader = { + /** UTC date/time value generated by the service that indicates the time at which the response was initiated */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @header("Date") + date: utcDateTime; +}; + +/** The ETag response header */ +alias EtagResponseHeader = { + /** The ETag contains a value that you can use to perform operations conditionally. */ + @header("ETag") eTag: string; +}; + +/** The copy source tags header parameter. */ +alias CopySourceTagsParameter = { + /** Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags. */ + @header("x-ms-copy-source-tags") + copySourceTags?: string; +}; + +/** The blob copy source tags types. */ +union BlobCopySourceTags { + /** The replace blob source tags option. */ + Replace: "REPLACE", + + /** The copy blob source tags option. */ + Copy: "COPY", + + /** Extensible */ + string, +} + +/** The copy source authorization header parameter */ +alias CopySourceAuthorizationParameter = { + /** Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source. */ + @header("x-ms-copy-source-authorization") + copySourceAuthorization?: string; +}; + +/** The copy source blob properties parameter. */ +alias CopySourceBlobPropertiesParameter = { + /** Optional, default is true. Indicates if properties from the source blob should be copied. */ + @header("x-ms-copy-source-blob-properties") + copySourceBlobProperties?: boolean; +}; + +/** The copy source header parameter. */ +alias CopySourceParameter = { + /** Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature. */ + @header("x-ms-copy-source") + copySource: string; +}; + +/** The source content MD5 header parameter. */ +alias SourceContentMd5Parameter = { + /** Specify the md5 calculated for the range of bytes that must be read from the copy source. */ + @header("x-ms-source-content-md5") + sourceContentMd5?: string; +}; + +/** The source if tags parameter. */ +alias SourceIfTagsParameter = { + /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ + @header("x-ms-source-if-tags") + sourceIfTags?: string; +}; + +/** The source if match parameter. */ +alias SourceIfMatchParameter = { + /** Specify an ETag value to operate only on blobs with a matching value. */ + @header("x-ms-source-if-match") + sourceIfMatch?: string; +}; + +/** The source if none match parameter. */ +alias SourceIfNoneMatchParameter = { + /** Specify this header value to operate only on a blob if it has been modified since the specified date/time. */ + @header("x-ms-source-if-none-match") + sourceIfNoneMatch?: string; +}; + +/** The source if modified since parameter. */ +alias SourceIfModifiedSinceParameter = { + /** Specify this header value to operate only on a blob if it has been modified since the specified date/time. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("x-ms-source-if-modified-since") + @encode("rfc7231") + sourceIfModifiedSince?: utcDateTime; +}; + +/** The content CRC64 parameter. */ +alias ContentCrc64Parameter = { + /** Specify the transactional crc64 for the body, to be validated by the service. */ + @clientName("transactionalContentCrc64") + @header("x-ms-content-crc64") + contentCrc64?: string; +}; + +/** The access tier optional parameter. */ +alias AccessTierOptional = { + /** The tier to be set on the blob. */ + @header("x-ms-access-tier") + tier?: AccessTier; +}; + +/** The content MD5 parameter. */ +alias ContentMd5Parameter = { + /** Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded. */ + @clientName("transactionalContentMD5") + @header("Content-MD5") + contentMd5?: string; +}; + +/** The legal hold optional parameter. */ +alias LegalHoldOptionalParameter = { + /** Specified if a legal hold should be set on the blob. */ + @header("x-ms-legal-hold") + legalHold?: boolean; +}; + +/** The immutability policy mode parameter. */ +alias ImmutabilityPolicyModeParameter = { + /** Specifies the immutability policy mode to set on the blob. */ + @header("x-ms-immutability-policy-mode") + immutabilityPolicyMode?: BlobImmutabilityPolicyMode; +}; + +/** The immutability policy expiration parameter. */ +alias ImmutabilityPolicyExpiryParameter = { + /** Specifies the date time when the blobs immutability policy is set to expire. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @header("x-ms-immutability-policy-until-date") + immutabilityPolicyExpiry?: utcDateTime; +}; + +/** The blobs tags header parameter. */ +alias BlobTagsHeaderParameter = { + /** Optional. Used to set blob tags in various blob operations. */ + @clientName("BlobTagsString") + @header("x-ms-tags") + blobTags?: string; +}; + +/** The blob sequence number parameter. */ +alias BlobSequenceNumberParameter = { + /** Optional. The sequence number is a user-controlled property that you can use to track requests. The value of the sequence number must be between 0 and 2^63 - 1. The default value is 0. */ + @header("x-ms-blob-sequence-number") + blobSequenceNumber?: int64; +}; + +/** The encryption scope parameter. */ +alias EncryptionScopeParameter = { + /** Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key. */ + @header("x-ms-encryption-scope") + encryptionScope?: string; +}; + +/** The encryption scope response header. */ +alias EncryptionScopeResponseHeader = { + /** If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range */ + @header("x-ms-encryption-scope") + encryptionScope?: string; +}; + +/** The blob content disposition parameter. */ +alias BlobContentDispositionParameter = { + /** Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request. */ + @header("x-ms-blob-content-disposition") + blobContentDisposition?: string; +}; + +/** The blob cache control parameter. */ +alias BlobCacheControlParameter = { + /** Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request. */ + @header("x-ms-blob-cache-control") + blobCacheControl?: string; +}; + +/** The blob content MD5 parameter. */ +alias BlobContentMd5Parameter = { + /** Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded. */ + @header("x-ms-blob-content-md5") + blobContentMd5?: bytes; +}; + +/** The blob content MD5 response header. */ +alias BlobContentMd5ResponseHeader = { + /** If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range */ + @header("x-ms-blob-content-md5") + blobContentMd5?: bytes; +}; + +/** The blob content type parameter. */ +alias BlobContentLanguageParameter = { + /** Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request. */ + @header("x-ms-blob-content-language") + blobContentLanguage?: string; +}; + +/** The blob content type parameter. */ +alias BlobContentEncodingParameter = { + /** Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request. */ + @header("x-ms-blob-content-encoding") + blobContentEncoding?: string; +}; + +/** The blob content type parameter. */ +alias BlobContentTypeParameter = { + /** Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request. */ + @header("x-ms-blob-content-type") + blobContentType?: string; +}; + +/** The premium page blob access tier types. */ +union PremiumPageBlobAccessTier { + /** The premium page blob access tier is P4. */ + P4: "P4", + + /** The premium page blob access tier is P6. */ + P6: "P6", + + /** The premium page blob access tier is P10. */ + P10: "P10", + + /** The premium page blob access tier is P15. */ + P15: "P15", + + /** The premium page blob access tier is P20. */ + P20: "P20", + + /** The premium page blob access tier is P30. */ + P30: "P30", + + /** The premium page blob access tier is P40. */ + P40: "P40", + + /** The premium page blob access tier is P50. */ + P50: "P50", + + /** The premium page blob access tier is P60. */ + P60: "P60", + + /** The premium page blob access tier is P70. */ + P70: "P70", + + /** The premium page blob access tier is P80. */ + P80: "P80", + + /** Extensible */ + string, +} + +/** The blob name parameter. */ +alias BlobPathParameter = { + /** The name of the blob. */ + @minLength(1) + @maxLength(1024) + @pattern("^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$") + @path + blob: string; +}; + +/** The type of blob deletions. */ +union BlobDeleteType { + /** Permanently delete the blob. */ + Permanent: "Permanent", + + /** Extensible */ + string, +} + +/** The delete snapshots option type. */ +union DeleteSnapshotsOptionType { + /** The delete snapshots include option is only. */ + Only: "only", + + /** The delete snapshots include option is include. */ + Include: "include", + + /** Extensible */ + string, +} + +/** The encryption algorithm parameter. */ +alias EncryptionAlgorithmParameter = { + /** Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256. */ + @header("x-ms-encryption-algorithm") + encryptionAlgorithm?: EncryptionAlgorithmType; +}; + +/** The algorithm used to produce the encryption key hash. Currently, the only accepted value is \"AES256\". Must be provided if the x-ms-encryption-key header is provided. */ +union EncryptionAlgorithmType { + /** The AES256 encryption algorithm. */ + AES256: "AES256", + + /** Extensible */ + string, +} + +/** The encryption key SHA256 hash parameter. */ +alias EncryptionKeySha256Parameter = { + /** Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key. */ + @header("x-ms-encryption-key-sha256") + encryptionKeySha256?: string; +}; + +/** The encryption key SHA256 response header. */ +alias EncryptionKeySha256ResponseHeader = { + /** The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key. */ + @header("x-ms-encryption-key-sha256") + encryptionKeySha256?: string; +}; + +/** The encryption key parameter. */ +alias EncryptionKeyParameter = { + /** Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key. */ + @header("x-ms-encryption-key") + encryptionKey?: string; +}; + +/** The If-Tags parameters. */ +alias IfTagsParameter = { + /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ + @header("x-ms-if-tags") + ifTags?: string; +}; + +/** The If-Match parameter. */ +alias IfMatchParameter = { + /** A condition that must be met in order for the request to be processed. */ + @header("If-Match") + ifMatch?: string; +}; + +/** The If-None-Match parameter. */ +alias IfNoneMatchParameter = { + /** A condition that must be met in order for the request to be processed. */ + @header("If-None-Match") + ifNoneMatch?: string; +}; + +/** The range parameter. */ +alias RangeParameter = { + /** Return only the bytes of the blob in the specified range. */ + @header("x-ms-range") + range?: string; +}; + +/** The version ID parameter. */ +alias VersionIdParameter = { + /** The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer. */ + @query + @clientName("versionId") + versionid?: string; +}; + +/** The snapshot parameter. */ +alias SnapshotParameter = { + @doc("The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.") + @query + snapshot?: string; +}; + +/** Represents a blob name. */ +model BlobName { + /** Whether the blob name is encoded. */ + @Xml.attribute + @Xml.name("Encoded") + encoded: boolean; + + /** The blob name. */ + @Xml.unwrapped content: string; +} + +/** Represents a blob prefix. */ +model BlobPrefix { + /** The blob name. */ + @Xml.name("Name") name: BlobName; +} + +/** Represents an array of blobs. */ +@Xml.name("Blobs") +model BlobHierarchyListSegment { + /** The blob items */ + @Azure.Core.items + @Xml.name("BlobItems") + blobItems: BlobItemInternal[]; + + /** The blob prefixes. */ + @Xml.name("BlobPrefixes") blobPrefixes?: BlobPrefix[]; +} + +/** An enumeration of blobs */ +@Xml.name("EnumerationResults") +model ListBlobsHierarchySegmentResponse { + /** The service endpoint. */ + @Xml.attribute + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; + + /** The container name. */ + @Xml.attribute + @Xml.name("ContainerName") + containerName: string; + + /** The delimiter of the blobs. */ + @Xml.name("Delimiter") delimiter?: string; + + /** The prefix of the blobs. */ + @Xml.name("Prefix") prefix?: string; + + /** The marker of the blobs. */ + @Xml.name("Marker") marker?: string; + + /** The max results of the blobs. */ + @Xml.name("MaxResults") maxResults?: int32; + + /** The blob segment. */ + segment: BlobHierarchyListSegment; + + /** The next marker of the blobs. */ + @continuationToken + @Xml.name("NextMarker") + nextMarker?: string; +} + +/** The list blob includes parameter. */ +alias ListBlobsIncludeParameter = { + /** Include this parameter to specify one or more datasets to include in the response. */ + @query + include?: ListBlobsIncludeItem[]; +}; + +/** The list blob includes parameter values. */ +union ListBlobsIncludeItem { + /** The include copies. */ + Copy: "copy", + + /** The include deleted blobs. */ + Deleted: "deleted", + + /** The include metadata. */ + Metadata: "metadata", + + /** The include snapshots. */ + Snapshots: "snapshots", + + /** The include uncommitted blobs. */ + UncommittedBlobs: "uncommittedblobs", + + /** The include versions. */ + Versions: "versions", + + /** The include tags. */ + Tags: "tags", + + /** The include immutable policy. */ + ImmutabilityPolicy: "immutabilitypolicy", + + /** The include legal hold. */ + LegalHold: "legalhold", + + /** The include deleted with versions. */ + DeletedWithVersions: "deletedwithversions", + + /** Extensible */ + string, +} + +/** The lease duration parameter. */ +alias LeaseDurationHeader = { + /** Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change. */ + @header("x-ms-lease-duration") + duration?: int32; +}; + +/** The container name path parameter */ +alias ContainerNamePathParameter = { + /** The name of the container. */ + @path + containerName: string; +}; + +// NOTE: This does not explicitly let emitters know that this is a collection header for metadata. Logic should be handwritten to handle this. +alias MetadataHeaders = { + /** The metadata headers. */ + #suppress "@azure-tools/typespec-autorest/unsupported-param-type" "Record string will help generate" + @header("x-ms-meta") metadata?: Record; +}; + +// NOTE: this does not explicitly let emitters know that this is a special type of header used for collection of object replication headers. Logic should be handwritten to handle this. +alias ObjectReplicationHeaders = { + /** Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed). */ + @header("x-ms-or") objectReplicationRules?: Record; +}; + +/** The If-Unmodified-Since header. */ +alias IfUnmodifiedSinceParameter = { + /** A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @header("If-Unmodified-Since") + ifUnmodifiedSince?: utcDateTime; +}; + +/** The If-Modified-Since header. */ +alias IfModifiedSinceParameter = { + /** A date-time value. A request is made under the condition that the resource has been modified since the specified date-time. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @header("If-Modified-Since") + ifModifiedSince?: utcDateTime; +}; + +/** The filter blobs include parameter. */ +alias FilterBlobsIncludeParameter = { + /** Include this parameter to specify one or more datasets to include in the response. */ + @query + include?: FilterBlobsIncludeItem[]; +}; + +/** The filter blobs where parameter. */ +alias FilterBlobsWhereParameter = { + /** Filters the results to return only to return only blobs whose tags match the specified expression. */ + @query + where?: string; +}; + +/** The Content-Length header. */ +alias ContentLengthParameter = { + /** The length of the request. */ + @header("Content-Length") contentLength: int64; +}; + +/** The max results parameter. */ +alias MaxResultsParameter = { + /** Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items. */ + @query + @minValue(1) + maxresults?: int32; +}; + +/** The marker parameter. */ +alias MarkerParameter = { + /** A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client. */ + @continuationToken + @query + marker?: string; +}; + +/** The prefix parameter. */ +alias PrefixParameter = { + /** Filters the results to return only containers whose name begins with the specified prefix. */ + @query prefix?: string; +}; + +/** The timeout parameter. */ +alias TimeoutParameter = { + @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") + @query + @minValue(0) + timeout?: int32; +}; + +/** The required lease ID header. */ +alias ProposedLeaseIdRequiredParameter = { + /** Required. The proposed lease ID for the container. */ + @header("x-ms-proposed-lease-id") proposedLeaseId: string; +}; + +/** The optional lease ID header. */ +alias ProposedLeaseIdOptionalParameter = { + /** Optional. The proposed lease ID for the container. */ + @header("x-ms-proposed-lease-id") proposedLeaseId?: string; +}; + +/** The body parameter. */ +alias BodyParameter = { + /** The body of the request. */ + @body + body: bytes; +}; + +alias IsHierarchicalNamespaceEnabled = { + /** Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled. */ + @header("x-ms-is-hns-enabled") + isHierarchicalNamespaceEnabled?: boolean; +}; + +alias StructuredBodyTypeResponseHeader = { + /** Indicates the response body contains a structured message and specifies the message schema version and properties. */ + @header("x-ms-structured-body") + structuredBodyType?: string; +}; + +alias StructuredContentLengthParameter = { + /** Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length. */ + @header("x-ms-structured-content-length") + structuredContentLength?: int64; +}; + +alias StructuredContentLengthResponseHeader = { + /** The length of the blob/file content inside the message body when the response body is returned as a structured message. Will always be smaller than Content-Length. */ + @header("x-ms-structured-content-length") + structuredContentLength?: int64; +}; + +alias StructuredBodyPut = { + /** Required if the request body is a structured message. Specifies the message schema version and properties. */ + @header("x-ms-structured-body") + structuredBodyType?: string; +}; diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp new file mode 100644 index 000000000000..e9795e6ed99d --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -0,0 +1,2188 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@typespec/http"; +import "./models.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.ClientGenerator.Core; + +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." +namespace Storage.Blob { + alias ApiVersionHeader = { + /** Specifies the version of the operation to use for this request. */ + @apiVersion + @header("x-ms-version") + version: string; + }; + + /** Azure Storage Blob basic operation template */ + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." + op StorageOperation< + TParams extends TypeSpec.Reflection.Model | void, + TResponse extends TypeSpec.Reflection.Model | void, + RequestMediaType extends string = "application/xml", + ResponseMediaType extends string = "application/xml", + TError = StorageError + >( + /** Content-Type header */ + #suppress "@typespec/http/content-type-ignored" "Template for existing API" + @header("Content-Type") + contentType: RequestMediaType, + + ...ApiVersionHeader, + ...TParams, + ...ClientRequestIdHeader, + ): (TResponse & { + /** Content-Type header */ + #suppress "@typespec/http/content-type-ignored" "Template for existing API" + @header("Content-Type") + contentType: ResponseMediaType; + + ...RequestIdResponseHeader; + ...ClientRequestIdHeader; + }) | TError; + + /** Sets properties for a storage account's Blob service endpoint, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("/?restype=service&comp=properties") + op setProperties is StorageOperation< + TimeoutParameter & StorageServiceProperties, + { + @statusCode statusCode: 202; + } + >; + + /** Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + @get + @route("/?restype=service&comp=properties") + op getProperties is StorageOperation< + TimeoutParameter, + StorageServiceProperties + >; + + /** Retrieves statistics related to replication for the Blob service. It is only available on the secondary location endpoint when read-access geo-redundant replication is enabled for the storage account. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + @get + @route("/?restype=service&comp=stats") + op getStatistics is StorageOperation< + TimeoutParameter, + DateResponseHeader & StorageServiceStats + >; + + /** The List Containers Segment operation returns a list of the containers under the specified account */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("/?comp=list") + op listContainersSegment is StorageOperation< + { + ...PrefixParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...TimeoutParameter; + + /** Include this parameter to specify that the container's metadata be returned as part of the response body. */ + @query include?: Array; + }, + ListContainersSegmentResponse + >; + + /** Retrieves a user delegation key for the Blob service. This is only a valid operation when using bearer token authentication. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + @post + @route("/?restype=service&comp=userdelegationkey") + op getUserDelegationKey is StorageOperation< + KeyInfo & TimeoutParameter, + UserDelegationKey & DateResponseHeader + >; + + /** Returns the sku name and account kind. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @get + @route("/?restype=account&comp=properties") + op getAccountInfo is StorageOperation< + TimeoutParameter, + { + ...DateResponseHeader; + ...SkuNameResponseHeader; + ...AccountKindResponseHeader; + + /** Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled. */ + @header("x-ms-is-hns-enabled") + isHierarchicalNamespaceEnabled?: boolean; + } + >; + + /** The Batch operation allows multiple API calls to be embedded into a single HTTP request. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @post + @route("/?comp=batch") + op submitBatch( + /** Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_ */ + @header("Content-Type") + multipartContentType: "multipart/mixed", + + ...ApiVersionHeader, + ...TimeoutParameter, + ...ClientRequestIdHeader, + ...ContentLengthParameter, + ...BodyParameter, + ): (BodyParameter & { + /** The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID */ + #suppress "@typespec/http/content-type-ignored" "Template for existing API" + @header("Content-Type") + contentType: "multipart/mixed"; + + ...RequestIdResponseHeader; + ...ClientRequestIdHeader; + }) | StorageError; + + /** The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("/?comp=blobs") + op filterBlobs is StorageOperation< + { + ...TimeoutParameter; + ...FilterBlobsWhereParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...FilterBlobsIncludeParameter; + }, + DateResponseHeader & FilterBlobSegment + >; + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." + @route("/{containerName}") + namespace Container { + /** Creates a new container under the specified account. If the container with the same name already exists, the operation fails. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?restype=container") + op create is StorageOperation< + { + ...ContainerNamePathParameter; + ...TimeoutParameter; + ...MetadataHeaders; + ...BlobPublicAccess; + + /** Optional. Version 2019-07-07 and later. Specifies the default encryption scope to set on the container and use for all future writes. */ + @header("x-ms-default-encryption-scope") + defaultEncryptionScope?: string; + + ...DenyEncryptionScopeOverride; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; + + /** returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @get + @route("?restype=container") + op getProperties is StorageOperation< + { + ...ContainerNamePathParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + }, + { + ...MetadataHeaders; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...LeaseDurationHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...BlobPublicAccess; + + /** Indicates whether the container has an immutability policy set on it. */ + @header("x-ms-has-immutability-policy") + hasImmutabilityPolicy?: boolean; + + /** Indicates whether the container has a legal hold. */ + @header("x-ms-has-legal-hold") + hasLegalHold?: boolean; + + /** The default encryption scope for the container. */ + @header("x-ms-default-encryption-scope") + defaultEncryptionScope?: string; + + ...DenyEncryptionScopeOverride; + + /** Indicates whether version level worm is enabled on a container */ + @header("x-ms-immutable-storage-with-versioning-enabled") + isImmutableStorageWithVersioningEnabled?: boolean; + } + >; + + /** operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @delete + @route("?restype=container") + op delete is StorageOperation< + { + ...ContainerNamePathParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + }, + { + @statusCode statusCode: 202; + ...DateResponseHeader; + } + >; + + /** operation sets one or more user-defined name-value pairs for the specified container. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?restype=container&comp=metadata") + op setMetadata is StorageOperation< + { + ...ContainerNamePathParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...MetadataHeaders; + ...IfModifiedSinceParameter; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; + + /** gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + @get + @route("?restype=container&comp=acl") + op getAccessPolicy is StorageOperation< + { + ...ContainerNamePathParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + }, + { + @body body: SignedIdentifiers; + ...BlobPublicAccess; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; + + /** sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?restype=container&comp=acl") + op setAccessPolicy is StorageOperation< + { + ...ContainerNamePathParameter; + + /** The access control list for the container. */ + #suppress "@azure-tools/typespec-azure-core/request-body-problem" "Existing API" + @body + containerAcl: SignedIdentifiers; + + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...BlobPublicAccess; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; + + /** Restores a previously-deleted container. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?restype=container&comp=undelete") + op restore is StorageOperation< + { + ...ContainerNamePathParameter; + + /** Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore. */ + @header("x-ms-deleted-container-name") + deletedContainerName?: string; + + /** Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore. */ + @header("x-ms-deleted-container-version") + deletedContainerVersion?: string; + + ...TimeoutParameter; + }, + { + @statusCode statusCode: 201; + ...DateResponseHeader; + } + >; + + /** Renames an existing container. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?restype=container&comp=rename") + op rename is StorageOperation< + { + ...ContainerNamePathParameter; + + /** Required. Specifies the name of the container to rename. */ + @header("x-ms-source-container-name") + sourceContainerName: string; + + /** A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ + @header("x-ms-source-lease-id") + sourceLeaseId?: string; + + ...TimeoutParameter; + }, + DateResponseHeader + >; + + /** The Batch operation allows multiple API calls to be embedded into a single HTTP request. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @post + @route("?restype=container&comp=batch") + op submitBatch( + ...ContainerNamePathParameter, + + /** The batch request content */ + ...BodyParameter, + + /** Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_ */ + @header("Content-Type") + multipartContentType: "multipart/mixed", + + ...ContentLengthParameter, + ...TimeoutParameter, + ...ApiVersionHeader, + ...ClientRequestIdHeader, + ): ({ + @statusCode statusCode: 202; + + /** Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_ */ + @header("Content-Type") + multipartContentType: "multipart/mixed"; + + ...RequestIdResponseHeader; + } & BodyParameter) | StorageError; + + /** The Filter Blobs operation enables callers to list blobs in a container whose tags match a given search expression. Filter blobs searches within the given container. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("?restype=container&comp=blobs") + op filterBlobs is StorageOperation< + { + ...ContainerNamePathParameter; + ...TimeoutParameter; + ...FilterBlobsWhereParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...FilterBlobsIncludeParameter; + }, + DateResponseHeader & FilterBlobSegment + >; + + /** The Acquire Lease operation requests a new lease on a container. The lease lock duration can be 15 to 60 seconds, or can be infinite. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=lease&restype=container&acquire") + op acquireLease is StorageOperation< + { + ...ContainerNamePathParameter; + ...LeaseDurationHeader; + ...TimeoutParameter; + ...ProposedLeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + }, + { + @statusCode statusCode: 201; + ...LeaseIdResponseHeader; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; + + /** The Release Lease operation frees the lease if it's no longer needed, so that another client can immediately acquire a lease against the container. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=lease&restype=container&release") + op releaseLease is StorageOperation< + { + ...ContainerNamePathParameter; + ...LeaseIdRequiredParameter; + ...TimeoutParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; + + /** The Renew Lease operation renews an existing lease. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=lease&restype=container&renew") + op renewLease is StorageOperation< + { + ...ContainerNamePathParameter; + ...LeaseIdRequiredParameter; + ...TimeoutParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + }, + { + ...LeaseIdResponseHeader; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; + + /** The Break Lease operation ends a lease and ensures that another client can't acquire a new lease until the current lease period has expired. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?comp=lease&restype=container&break") + op breakLease is StorageOperation< + { + ...ContainerNamePathParameter; + ...TimeoutParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...LeaseBreakPeriodParameter; + }, + { + @statusCode statusCode: 202; + ...LeaseTimeResponseHeader; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...LeaseIdResponseHeader; + ...DateResponseHeader; + } + >; + + /** The Change Lease operation is used to change the ID of an existing lease. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=lease&restype=container&change") + op changeLease is StorageOperation< + { + ...ContainerNamePathParameter; + ...LeaseIdRequiredParameter; + ...ProposedLeaseIdRequiredParameter; + ...TimeoutParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + }, + { + ...LeaseIdResponseHeader; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; + + /** The List Blobs operation returns a list of the blobs under the specified container. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("?restype=container&comp=list&flat") + op listBlobFlatSegment is StorageOperation< + { + ...ContainerNamePathParameter; + ...PrefixParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...ListBlobsIncludeParameter; + ...TimeoutParameter; + }, + ListBlobsFlatSegmentResponse & DateResponseHeader + >; + + /** The List Blobs operation returns a list of the blobs under the specified container. A delimiter can be used to traverse a virtual hierarchy of blobs as though it were a file system. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("?restype=container&comp=list&hierarchy") + op listBlobHierarchySegment is StorageOperation< + { + ...ContainerNamePathParameter; + + /** When the request includes this parameter, the operation returns a BlobPrefix element in the response body that acts as a placeholder for all blobs whose names begin with the same substring up to the appearance of the delimiter character. The delimiter may be a single character or a string. */ + @query delimiter: string; + + ...PrefixParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...ListBlobsIncludeParameter; + ...TimeoutParameter; + }, + ListBlobsHierarchySegmentResponse & DateResponseHeader + >; + + /** Returns the sku name and account kind */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @get + @route("?restype=account&comp=properties") + op getAccountInfo is StorageOperation< + { + ...ContainerNamePathParameter; + ...TimeoutParameter; + }, + { + ...DateResponseHeader; + ...SkuNameResponseHeader; + ...AccountKindResponseHeader; + ...IsHierarchicalNamespaceEnabled; + } + >; + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." + @route("/{blob}") + namespace Blob { + /** The Download operation reads or downloads a blob from the system, including its metadata and properties. You can also call Download to read a snapshot. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + op download( + ...ApiVersionHeader, + ...ClientRequestIdHeader, + ...ContainerNamePathParameter, + ...BlobPathParameter, + ...SnapshotParameter, + ...VersionIdParameter, + ...TimeoutParameter, + ...RangeParameter, + ...LeaseIdOptionalParameter, + + /** When set to true and specified together with the Range, the service returns the MD5 hash for the range, as long as the range is less than or equal to 4 MB in size. */ + @header("x-ms-range-get-content-md5") + rangeGetContentMd5?: boolean, + + /** Optional. When this header is set to true and specified together with the Range header, the service returns the CRC64 hash for the range, as long as the range is less than or equal to 4 MB in size. */ + @header("x-ms-range-get-content-crc64") + rangeGetContentCrc64?: boolean, + + /** Specifies the response content should be returned as a structured message and specifies the message schema version and properties. */ + @header("x-ms-structured-body") + structuredBodyType?: string, + + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...IfTagsParameter, + ...ConditionalRequestHeaders, + ): (BodyParameter & { + /** The media type of the body of the response. */ + @header("Content-Type") + contentType: "application/octet-stream"; + + ...RequestIdResponseHeader; + ...ClientRequestIdHeader; + ...MetadataHeaders; + ...ObjectReplicationHeaders; + ...LastModifiedResponseHeader; + ...CreationTimeResponseHeader; + ...ObjectReplicationPolicyIdResponseHeader; + ...ContentLengthResponseHeader; + ...ContentRangeResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopyStatusResponseHeader; + ...CopySourceResponseHeader; + ...LeaseDurationHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; + ...AcceptRangesResponseHeader; + ...DateResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...BlobContentMd5ResponseHeader; + ...TagCountResponseHeader; + ...IsSealedResponseHeader; + ...LastAccessedResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + ...LegalHoldResponseHeader; + ...StructuredBodyTypeResponseHeader; + ...StructuredContentLengthResponseHeader; + }) | (BodyParameter & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" + @statusCode statusCode: 206; + + /** The media type of the body of the response. */ + @header("Content-Type") + contentType: "application/octet-stream"; + + ...RequestIdResponseHeader; + ...ClientRequestIdHeader; + ...MetadataHeaders; + ...ObjectReplicationHeaders; + ...LastModifiedResponseHeader; + ...CreationTimeResponseHeader; + ...ObjectReplicationPolicyIdResponseHeader; + ...ContentLengthResponseHeader; + ...ContentRangeResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...BlobTypeResponseHeader; + ...ContentCrc64ResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopyStatusResponseHeader; + ...CopySourceResponseHeader; + ...LeaseDurationHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; + ...AcceptRangesResponseHeader; + ...DateResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...BlobContentMd5ResponseHeader; + ...TagCountResponseHeader; + ...IsSealedResponseHeader; + ...LastAccessedResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + ...LegalHoldResponseHeader; + ...StructuredBodyTypeResponseHeader; + ...StructuredContentLengthResponseHeader; + }) | StorageError; + + /** The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system properties for the blob. It does not return the content of the blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @head + op getProperties is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...SnapshotParameter; + ...VersionIdParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + }, + { + ...MetadataHeaders; + ...ObjectReplicationHeaders; + ...LastModifiedResponseHeader; + ...CreationTimeResponseHeader; + ...ObjectReplicationPolicyIdResponseHeader; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopyStatusResponseHeader; + ...CopySourceResponseHeader; + + /** Included if the blob is incremental copy blob. */ + @header("x-ms-incremental-copy") + isIncrementalCopy?: boolean; + + /** Included if the blob is incremental copy blob or incremental copy snapshot, if x-ms-copy-status is success. Snapshot time of the last successful incremental copy snapshot for this blob. */ + @header("x-ms-copy-destination-snapshot") + destinationSnapshot?: string; + + ...LeaseDurationHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...ContentLengthResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...CacheControlResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + ...AcceptRangesResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...AccessTierOptional; + + /** For page blobs on a premium storage account only. If the access tier is not explicitly set on the blob, the tier is inferred based on its content length and this header will be returned with true value. */ + @header("x-ms-access-tier-inferred") + accessTierInferred?: boolean; + + /** For blob storage LRS accounts, valid values are rehydrate-pending-to-hot/rehydrate-pending-to-cool. If the blob is being rehydrated and is not complete then this header is returned indicating that rehydrate is pending and also tells the destination tier. */ + @header("x-ms-archive-status") + archiveStatus?: ArchiveStatus; + + /** The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @header("x-ms-access-tier-change-time") + accessTierChangeTime?: utcDateTime; + + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; + ...TagCountResponseHeader; + ...ExpiryTimeHeader; + ...IsSealedResponseHeader; + ...RehydratePriorityHeader; + ...LastAccessedResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + ...LegalHoldResponseHeader; + }, + "application/octet-stream" + >; + + /** If the storage account's soft delete feature is disabled then, when a blob is deleted, it is permanently removed from the storage account. If the storage account's soft delete feature is enabled, then, when a blob is deleted, it is marked for deletion and becomes inaccessible immediately. However, the blob service retains the blob or snapshot for the number of days specified by the DeleteRetentionPolicy section of [Storage service properties] (Set-Blob-Service-Properties.md). After the specified number of days has passed, the blob's data is permanently removed from the storage account. Note that you continue to be charged for the soft-deleted blob's storage until it is permanently removed. Use the List Blobs API and specify the \"include=deleted\" query parameter to discover which blobs and snapshots have been soft deleted. You can then use the Undelete Blob API to restore a soft-deleted blob. All other operations on a soft-deleted blob or snapshot causes the service to return an HTTP status code of 404 (ResourceNotFound). */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @delete + op delete is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...SnapshotParameter; + ...VersionIdParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + + /** Required if the blob has associated snapshots. Specify one of the following two options: include: Delete the base blob and all of its snapshots. only: Delete only the blob's snapshots and not the blob itself */ + @header("x-ms-delete-snapshots") + deleteSnapshots?: DeleteSnapshotsOptionType; + + ...ConditionalRequestHeaders; + ...IfTagsParameter; + + /** Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled. */ + @query + @clientName("blobDeleteType") + deletetype?: BlobDeleteType; + }, + { + @statusCode statusCode: 202; + ...DateResponseHeader; + } + >; + + /** Undelete a blob that was previously soft deleted */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?comp=undelete") + op undelete is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + }, + DateResponseHeader + >; + + /** Set the expiration time of a blob */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?comp=expiry") + op setExpiry is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...BlobExpiryOptionsParameter; + ...ExpiryTimeHeader; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; + + /** The Set HTTP Headers operation sets system properties on the blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=properties&SetHTTPHeaders") + op setHttpHeaders is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...BlobCacheControlParameter; + ...BlobContentTypeParameter; + ...BlobContentMd5Parameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + } + >; + + /** Set the immutability policy of a blob */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=immutabilityPolicies") + op setImmutabilityPolicy is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...IfUnmodifiedSinceParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...SnapshotParameter; + ...VersionIdParameter; + }, + { + ...DateResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + } + >; + + /** The Delete Immutability Policy operation deletes the immutability policy on the blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @delete + @route("?comp=immutabilityPolicies") + op deleteImmutabilityPolicy is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...SnapshotParameter; + ...VersionIdParameter; + }, + DateResponseHeader + >; + + /** The Set Legal Hold operation sets a legal hold on the blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=legalhold") + op setLegalHold is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...LegalHoldRequiredParameter; + ...SnapshotParameter; + ...VersionIdParameter; + }, + { + ...DateResponseHeader; + ...LegalHoldResponseHeader; + } + >; + + /** The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=metadata") + op setMetadata is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...MetadataHeaders; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; + + /** The Acquire Lease operation requests a new lease on a blob. The lease lock duration can be 15 to 60 seconds, or can be infinite. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=lease&acquire") + op acquireLease is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...LeaseDurationHeader; + ...ProposedLeaseIdOptionalParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...LeaseIdResponseHeader; + } + >; + + /** The Release Lease operation frees the lease if it's no longer needed, so that another client can immediately acquire a lease against the blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=lease&release") + op releaseLease is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...LeaseIdRequiredParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; + + /** The Renew Lease operation renews an existing lease. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=lease&renew") + op renewLease is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...LeaseIdRequiredParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...LeaseIdResponseHeader; + } + >; + + /** The Change Lease operation is used to change the ID of an existing lease. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=lease&change") + op changeLease is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...LeaseIdRequiredParameter; + ...ProposedLeaseIdOptionalParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...LeaseIdResponseHeader; + } + >; + + /** The Break Lease operation ends a lease and ensures that another client can't acquire a new lease until the current lease period has expired. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?comp=lease&break") + op breakLease is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...LeaseBreakPeriodParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 202; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...LeaseTimeResponseHeader; + } + >; + + /** The Create Snapshot operation creates a read-only snapshot of a blob */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?comp=snapshot") + op createSnapshot is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...MetadataHeaders; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...LeaseIdOptionalParameter; + }, + { + @statusCode statusCode: 201; + + /** Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot. */ + @header("x-ms-snapshot") + snapshot?: string; + + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + } + >; + + /** The Start Copy From URL operation copies a blob or an internet resource to a new blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?comp=copy") + op startCopyFromUrl is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...MetadataHeaders; + ...AccessTierOptional; + ...RehydratePriorityHeader; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...SourceIfTagsParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...CopySourceParameter; + ...LeaseIdOptionalParameter; + ...BlobTagsHeaderParameter; + + /** Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer. */ + @header("x-ms-seal-blob") + sealBlob?: boolean; + + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + }, + { + @statusCode statusCode: 202; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...CopyIdResponseHeader; + ...CopyStatusResponseHeader; + } + >; + + /** The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return a response until the copy is complete. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?comp=copy&sync") + op copyFromUrl is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...MetadataHeaders; + ...AccessTierOptional; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...CopySourceParameter; + ...LeaseIdOptionalParameter; + ...SourceContentMd5Parameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + ...CopySourceAuthorizationParameter; + ...EncryptionScopeParameter; + ...CopySourceTagsParameter; + }, + { + @statusCode statusCode: 202; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...CopyIdResponseHeader; + ...CopyStatusResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; + + /** The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination blob with zero length and full metadata. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + @put + @route("?comp=copy©id") + op abortCopyFromUrl is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + + /** The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation. */ + @clientName("copyId") + @query + copyid: string; + + ...LeaseIdOptionalParameter; + }, + { + @statusCode statusCode: 204; + ...DateResponseHeader; + } + >; + + /** The Set Tier operation sets the tier on a block blob. The operation is allowed on a page blob or block blob, but not on an append blob. A block blob's tier determines Hot/Cool/Archive storage type. This operation does not update the blob's ETag. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("?comp=tier") + op setTier is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...SnapshotParameter; + ...VersionIdParameter; + ...TimeoutParameter; + + /** Indicates the tier to be set on the blob. */ + @header("x-ms-access-tier") + tier: AccessTier; + + ...RehydratePriorityHeader; + ...LeaseIdOptionalParameter; + ...IfTagsParameter; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" + @statusCode statusCode: 200 | 202; + } + >; + + /** Returns the sku name and account kind */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @get + @route("?restype=account&comp=properties&blob") + op getAccountInfo is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + }, + { + ...DateResponseHeader; + ...AccountKindResponseHeader; + ...SkuNameResponseHeader; + ...IsHierarchicalNamespaceEnabled; + } + >; + + /** The Get Blob Tags operation enables users to get tags on a blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + @get + @route("?comp=tags") + op getTags is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...SnapshotParameter; + ...VersionIdParameter; + ...LeaseIdOptionalParameter; + ...IfTagsParameter; + }, + BlobTags & DateResponseHeader + >; + + /** The Set Tags operation enables users to set tags on a blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + @put + @route("?comp=tags") + op setTags is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...VersionIdParameter; + ...ContentMd5Parameter; + ...ContentCrc64Parameter; + ...IfTagsParameter; + ...LeaseIdOptionalParameter; + + /** The blob tags. */ + @body + tags: BlobTags; + }, + { + @statusCode statusCode: 204; + ...DateResponseHeader; + } + >; + } + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." + namespace PageBlob { + /** The Create operation creates a new page blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("/{containerName}/{blob}?PageBlob") + op create is StorageOperation< + { + ...MetadataHeaders; + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...ContentLengthParameter; + + /** Optional. Indicates the tier to be set on the page blob. */ + @header("x-ms-access-tier") + tier?: PremiumPageBlobAccessTier; + + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMd5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...BlobContentLengthRequired; + ...BlobSequenceNumberParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + + /** The type of the blob. */ + @header("x-ms-blob-type") + blobType: BlobType.PageBlob; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + }, + "application/octet-stream" + >; + + /** The Upload Pages operation writes a range of pages to a page blob */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + #suppress "@azure-tools/typespec-azure-core/byos" "Existing API" + @put + @route("/{containerName}/{blob}?comp=page&update") + op uploadPages is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + + /** The data to upload. */ + ...BodyParameter; + + ...ContentLengthParameter; + ...ContentMd5Parameter; + ...ContentCrc64Parameter; + ...TimeoutParameter; + ...RangeParameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfSequenceNumberLessThanOrEqualToParameter; + ...IfSequenceNumberLessThanParameter; + ...IfSequenceNumberEqualToParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...StructuredBodyPut; + ...StructuredContentLengthParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...StructuredBodyTypeResponseHeader; + }, + "application/octet-stream" + >; + + /** The Clear Pages operation clears a range of pages from a page blob */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("/{containerName}/{blob}?comp=page&clear") + op clearPages is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...ContentLengthParameter; + ...TimeoutParameter; + ...RangeParameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfSequenceNumberLessThanOrEqualToParameter; + ...IfSequenceNumberLessThanParameter; + ...IfSequenceNumberEqualToParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + }, + "application/octet-stream" + >; + + /** The Upload Pages operation writes a range of pages to a page blob where the contents are read from a URL. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("/{containerName}/{blob}?comp=page&update&fromUrl") + op uploadPagesFromUrl is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...SourceUrlParameter; + + /** Bytes of source data in the specified range. The length of this range should match the ContentLength header and x-ms-range/Range destination range header. */ + @header("x-ms-source-range") + sourceRange: string; + + ...SourceContentMd5Parameter; + ...SourceContentCrc64Parameter; + ...ContentLengthParameter; + ...TimeoutParameter; + + /** Bytes of source data in the specified range. The length of this range should match the ContentLength header and x-ms-range/Range destination range header. */ + @header("x-ms-range") + range: string; + + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...LeaseIdOptionalParameter; + ...IfSequenceNumberLessThanOrEqualToParameter; + ...IfSequenceNumberLessThanParameter; + ...IfSequenceNumberEqualToParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...CopySourceAuthorizationParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + }, + "application/octet-stream" + >; + + /** The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("/{containerName}/{blob}?comp=pagelist") + op getPageRanges is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...SnapshotParameter; + ...TimeoutParameter; + ...RangeParameter; + ...LeaseIdOptionalParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...MarkerParameter; + ...MaxResultsParameter; + }, + PageList & { + ...LastModifiedResponseHeader; + ...EtagResponseHeader; + ...BlobContentLengthRequired; + ...DateResponseHeader; + } + >; + + /** The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob or snapshot of a page blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("/{containerName}/{blob}?comp=pagelist&diff") + op getPageRangesDiff is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...SnapshotParameter; + ...TimeoutParameter; + + /** Optional in version 2015-07-08 and newer. The prevsnapshot parameter is a DateTime value that specifies that the response will contain only pages that were changed between target blob and previous snapshot. Changed pages include both updated and cleared pages. The target blob may be a snapshot, as long as the snapshot specified by prevsnapshot is the older of the two. Note that incremental snapshots are currently supported only for blobs created on or after January 1, 2016. */ + @query + prevsnapshot?: string; + + /** Optional. This header is only supported in service versions 2019-04-19 and after and specifies the URL of a previous snapshot of the target blob. The response will only contain pages that were changed between the target blob and its previous snapshot. */ + @header("x-ms-previous-snapshot-url") + prevSnapshotUrl?: string; + + ...RangeParameter; + ...LeaseIdOptionalParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...MarkerParameter; + ...MaxResultsParameter; + }, + PageList & { + ...LastModifiedResponseHeader; + ...EtagResponseHeader; + ...BlobContentLengthRequired; + ...DateResponseHeader; + } + >; + + /** The Resize operation increases the size of the page blob to the specified size. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("/{containerName}/{blob}?comp=properties&Resize") + op resize is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...BlobContentLengthRequired; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + } + >; + + /** The Update Sequence Number operation sets the blob's sequence number. The operation will fail if the specified sequence number is less than the current sequence number of the blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("/{containerName}/{blob}?comp=properties&UpdateSequenceNumber") + op updateSequenceNumber is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...SequenceNumberActionParameter; + ...SequenceNumberParameter; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + } + >; + + /** The Copy Incremental operation copies a snapshot of the source page blob to a destination page blob. The snapshot is copied such that only the differential changes between the previously copied snapshot are transferred to the destination. The copied snapshots are complete copies of the original snapshot and can be read or copied from as usual. This API is supported since REST version 2016-05-31. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("/{containerName}/{blob}?comp=incrementalcopy") + op copyIncremental is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...CopySourceParameter; + }, + { + @statusCode statusCode: 202; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...CopyIdResponseHeader; + ...CopyStatusResponseHeader; + } + >; + } + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." + namespace AppendBlob { + /** The Create operation creates a new append blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("/{containerName}/{blob}?AppendBlob") + op create is StorageOperation< + { + ...MetadataHeaders; + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...ContentLengthParameter; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMd5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + + /** The type of the blob. */ + @header("x-ms-blob-type") + blobType: BlobType.AppendBlob; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + }, + "application/octet-stream" + >; + + /** The Append Block operation commits a new block of data to the end of an append blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + #suppress "@azure-tools/typespec-azure-core/byos" "Existing API" + @put + @route("/{containerName}/{blob}?comp=appendblock") + op appendBlock is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + + /** The data to upload. */ + ...BodyParameter; + + ...TimeoutParameter; + ...ContentLengthParameter; + ...ContentMd5Parameter; + ...ContentCrc64Parameter; + ...LeaseIdOptionalParameter; + ...BlobConditionMaxSizeParameter; + ...BlobConditionAppendPosParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...StructuredBodyPut; + ...StructuredContentLengthParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...DateResponseHeader; + ...BlobAppendOffsetResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...StructuredBodyTypeResponseHeader; + }, + "application/octet-stream" + >; + + /** The Append Block From URL operation creates a new block to be committed as part of an append blob where the contents are read from a URL. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("/{containerName}/{blob}?comp=appendblock&fromUrl") + op appendBlockFromUrl is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...SourceUrlParameter; + ...SourceRangeParameter; + ...SourceContentMd5Parameter; + ...SourceContentCrc64Parameter; + ...TimeoutParameter; + ...ContentLengthParameter; + ...ContentMd5Parameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...LeaseIdOptionalParameter; + ...BlobConditionMaxSizeParameter; + ...BlobConditionAppendPosParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...CopySourceAuthorizationParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...DateResponseHeader; + ...BlobAppendOffsetResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; + + /** The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version 2019-12-12 version or later. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("/{containerName}/{blob}?comp=seal") + op seal is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...ConditionalRequestHeaders; + ...BlobConditionAppendPosParameter; + }, + { + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...IsSealedResponseHeader; + } + >; + } + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." + namespace BlockBlob { + /** The Upload Block Blob operation updates the content of an existing block blob. Updating an existing block blob overwrites any existing metadata on the blob. Partial updates are not supported with Put Blob; the content of the existing blob is overwritten with the content of the new blob. To perform a partial update of the content of a block blob, use the Put Block List operation. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + #suppress "@azure-tools/typespec-azure-core/byos" "Existing API" + @put + @route("/{containerName}/{blob}?BlockBlob") + op upload is StorageOperation< + { + ...MetadataHeaders; + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...BodyParameter; + ...TimeoutParameter; + ...ContentMd5Parameter; + ...ContentLengthParameter; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMd5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...AccessTierOptional; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + ...ContentCrc64Parameter; + ...StructuredBodyPut; + ...StructuredContentLengthParameter; + + /** The type of the blob. */ + @header("x-ms-blob-type") + blobType: BlobType.BlockBlob; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...StructuredBodyTypeResponseHeader; + }, + "application/octet-stream" + >; + + /** The Put Blob from URL operation creates a new Block Blob where the contents of the blob are read from a given URL. This API is supported beginning with the 2020-04-08 version. Partial updates are not supported with Put Blob from URL; the content of an existing blob is overwritten with the content of the new blob. To perform partial updates to a block blob’s contents using a source URL, use the Put Block from URL API in conjunction with Put Block List. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("/{containerName}/{blob}?BlockBlob&fromUrl") + op putBlobFromUrl is StorageOperation< + { + ...MetadataHeaders; + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...ContentMd5Parameter; + ...ContentLengthParameter; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMd5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...AccessTierOptional; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...SourceIfTagsParameter; + ...SourceContentMd5Parameter; + ...BlobTagsHeaderParameter; + ...CopySourceParameter; + ...CopySourceBlobPropertiesParameter; + ...CopySourceAuthorizationParameter; + ...CopySourceTagsParameter; + + /** The type of the blob. */ + @header("x-ms-blob-type") + blobType: BlobType.BlockBlob; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + }, + "application/octet-stream" + >; + + /** The Stage Block operation creates a new block to be committed as part of a blob */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + #suppress "@azure-tools/typespec-azure-core/byos" "Existing API" + @put + @route("/{containerName}/{blob}?comp=block") + op stageBlock is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...BlockIdParameter; + ...ContentLengthParameter; + ...ContentMd5Parameter; + ...ContentCrc64Parameter; + ...BodyParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...StructuredBodyPut; + ...StructuredContentLengthParameter; + }, + { + @statusCode statusCode: 201; + ...DateResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...StructuredBodyTypeResponseHeader; + }, + "application/octet-stream" + >; + + /** The Stage Block From URL operation creates a new block to be committed as part of a blob where the contents are read from a URL. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("/{containerName}/{blob}?comp=block&fromURL") + op stageBlockFromUrl is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...BlockIdParameter; + ...ContentLengthParameter; + ...SourceUrlParameter; + ...SourceRangeParameter; + ...SourceContentMd5Parameter; + ...SourceContentCrc64Parameter; + ...TimeoutParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...LeaseIdOptionalParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...CopySourceAuthorizationParameter; + }, + { + @statusCode statusCode: 201; + ...DateResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; + + /** The Commit Block List operation writes a blob by specifying the list of block IDs that make up the blob. In order to be written as part of a blob, a block must have been successfully written to the server in a prior Put Block operation. You can call Put Block List to update a blob by uploading only those blocks that have changed, then committing the new and existing blocks together. You can do this by specifying whether to commit a block from the committed block list or from the uncommitted block list, or to commit the most recently uploaded version of the block, whichever list it may belong to. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @put + @route("/{containerName}/{blob}?comp=blocklist") + op commitBlockList is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...TimeoutParameter; + ...BlobCacheControlParameter; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMd5Parameter; + ...ContentMd5Parameter; + ...ContentCrc64Parameter; + ...MetadataHeaders; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...AccessTierOptional; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + + /** Blob Blocks. */ + @body blocks: BlockLookupList; + + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; + + /** The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + @get + @route("/{containerName}/{blob}?comp=blocklist") + op getBlockList is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + ...SnapshotParameter; + + /** Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together. */ + @query + @clientName("listType") + blocklisttype: BlockListType; + + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...IfTagsParameter; + }, + BlockList & { + ...LastModifiedResponseHeader; + ...EtagResponseHeader; + ...BlobContentLengthRequired; + ...DateResponseHeader; + } + >; + + /** The Query operation enables users to select/project on blob data by providing simple query expressions. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/byos" "Existing API" + @post + @route("/{containerName}/{blob}?comp=query") + op query is StorageOperation< + { + ...ContainerNamePathParameter; + ...BlobPathParameter; + + /** The query request */ + @body + queryRequest: QueryRequest; + + ...SnapshotParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + }, + BodyParameter & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" + @statusCode statusCode: 200 | 206; + ...MetadataHeaders; + ...LastModifiedResponseHeader; + ...ContentLengthResponseHeader; + ...ContentRangeResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...BlobTypeResponseHeader; + ...ContentCrc64ResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopySourceResponseHeader; + ...CopyStatusResponseHeader; + ...LeaseDurationHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...AcceptRangesResponseHeader; + ...DateResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...BlobContentMd5ResponseHeader; + }, + "application/xml", + "application/octet-stream" + >; + } + } +} diff --git a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml new file mode 100644 index 000000000000..85860efa7c93 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml @@ -0,0 +1,45 @@ +parameters: + "service-dir": + default: "sdk/storage" + "dependencies": + "additionalDirectories": [] + default: "" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "data-plane" + emitter-output-dir: "{project-root}/.." + examples-dir: "{project-root}/examples" + output-file: "{azure-resource-provider-folder}/Microsoft.BlobStorage/{version-status}/{version}/blob.json" + "@azure-tools/typespec-python": + package-dir: "azure-storage-blob" + package-name: "{package-dir}" + package-mode: dataplane + flavor: azure + "@azure-tools/typespec-csharp": + package-dir: "Azure.Storage.Blob" + namespace: "{package-dir}" + clear-output-folder: true + model-namespace: false + flavor: azure + "@azure-tools/typespec-ts": + package-dir: "azure-storage-blob-rest" + generateMetadata: true + generateTest: true + packageDetails: + name: "@azure-rest/azure-storage-blob-rest" + description: "Azure.Storage.Blob Service" + flavor: azure + "@azure-tools/typespec-java": + package-dir: "azure-storage-blob" + namespace: com.azure.storage.blob + flavor: azure + "@azure-tools/typespec-rust": + package-dir: "azure_storage_blobs" + crate-name: "azure_storage_blobs" + crate-version: "0.1.0" + flavor: azure +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/readme.md b/specification/storage/data-plane/Microsoft.BlobStorage/readme.md index 1ea989887762..53d548612850 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/readme.md +++ b/specification/storage/data-plane/Microsoft.BlobStorage/readme.md @@ -4,9 +4,10 @@ This is the AutoRest configuration file for BlobStorage. - --- + ## Getting Started + To build the SDK for BlobStorage, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: > `autorest` @@ -14,16 +15,16 @@ To build the SDK for BlobStorage, simply [Install AutoRest](https://aka.ms/autor To see additional help and options, run: > `autorest --help` + --- ## Configuration - - ### Basic Information + These are the global settings for the BlobStorage API. -``` yaml +```yaml openapi-type: data-plane tag: package-2025-01 use-internal-constructors: true @@ -34,91 +35,100 @@ add-credentials: true These settings apply only when `--tag=package-2020-10` is specified on the command line. -``` yaml $(tag) == 'package-2020-10' +```yaml $(tag) == 'package-2020-10' input-file: -- preview/2020-10-02/blob.json + - preview/2020-10-02/blob.json ``` ### Tag: package-2020-12 These settings apply only when `--tag=package-2020-12` is specified on the command line. -``` yaml $(tag) == 'package-2020-12' +```yaml $(tag) == 'package-2020-12' input-file: -- preview/2020-12-06/blob.json + - preview/2020-12-06/blob.json ``` ### Tag: package-2021-02 These settings apply only when `--tag=package-2021-02` is specified on the command line. -``` yaml $(tag) == 'package-2021-02' +```yaml $(tag) == 'package-2021-02' input-file: -- preview/2021-02-12/blob.json + - preview/2021-02-12/blob.json ``` ### Tag: package-2021-04 These settings apply only when `--tag=package-2021-04` is specified on the command line. -``` yaml $(tag) == 'package-2021-04' +```yaml $(tag) == 'package-2021-04' input-file: -- preview/2021-04-10/blob.json + - preview/2021-04-10/blob.json ``` ### Tag: package-2021-08 These settings apply only when `--tag=package-2021-08` is specified on the command line. -``` yaml $(tag) == 'package-2021-08' +```yaml $(tag) == 'package-2021-08' input-file: -- preview/2021-08-06/blob.json + - preview/2021-08-06/blob.json ``` ### Tag: package-2021-12-preview These settings apply only when `--tag=package-2021-12-preview` is specified on the command line. -``` yaml $(tag) == 'package-2021-12-preview' +```yaml $(tag) == 'package-2021-12-preview' input-file: -- preview/2021-12-02/blob.json + - preview/2021-12-02/blob.json ``` ### Tag: package-2021-12 These settings apply only when `--tag=package-2021-12` is specified on the command line. -``` yaml $(tag) == 'package-2021-12' +```yaml $(tag) == 'package-2021-12' input-file: -- stable/2021-12-02/blob.json + - stable/2021-12-02/blob.json ``` ### Tag: package-2024-08 These settings apply only when `--tag=package-2024-08` is specified on the command line. -``` yaml $(tag) == 'package-2024-08' +```yaml $(tag) == 'package-2024-08' input-file: -- stable/2024-08-04/blob.json + - stable/2024-08-04/blob.json ``` ### Tag: package-2025-01 These settings apply only when `--tag=package-2025-01` is specified on the command line. -``` yaml $(tag) == 'package-2025-01' +```yaml $(tag) == 'package-2025-01' input-file: -- stable/2025-01-05/blob.json + - stable/2025-01-05/blob.json ``` ### Suppression -``` yaml + +```yaml directive: - suppress: DefinitionsPropertiesNamesCamelCase - reason: These parameters are predfined by storage specifications + reason: These parameters are predfined by storage specifications - suppress: XmsPathsMustOverloadPaths - suppress: XmsExamplesRequired - suppress: LongRunningOperationsWithLongRunningExtension - suppress: OAV107 ``` ---- \ No newline at end of file + +--- + +```yaml +suppressions: + - code: LroExtension + from: blob.json + reason: Legacy operations not defined as lro +``` diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2025-01-05/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2025-01-05/blob.json index b7c484e46775..030a6d158163 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2025-01-05/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2025-01-05/blob.json @@ -1,2779 +1,2815 @@ { "swagger": "2.0", "info": { - "title": "Azure Blob Storage", + "title": "Azure Storage Blob service", "version": "2025-01-05", - "x-ms-code-generation-settings": { - "header": "MIT", - "strictSpecAdherence": false - } + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, + "schemes": [ + "https" + ], "x-ms-parameterized-host": { "hostTemplate": "{url}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { - "$ref": "#/parameters/Url" + "name": "url", + "in": "path", + "description": "The host name of the blob storage account, e.g. accountName.blob.core.windows.net", + "required": true, + "type": "string", + "format": "uri", + "x-ms-skip-url-encoding": true } ] }, - "schemes": [ - "https" + "produces": [ + "application/json" ], "consumes": [ - "application/xml" + "application/json" ], - "produces": [ - "application/xml" + "security": [ + { + "ApiKeyAuth": [] + }, + { + "OAuth2Auth": [ + "https://storage.azure.com/.default" + ] + } ], - "paths": {}, - "x-ms-paths": { - "/?restype=service&comp=properties": { - "put": { - "tags": [ - "service" + "securityDefinitions": { + "ApiKeyAuth": { + "type": "apiKey", + "name": "api-key", + "in": "header" + }, + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://storage.azure.com/.default": "" + } + } + }, + "tags": [], + "paths": { + "": { + "get": { + "operationId": "GetProperties", + "description": "Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "produces": [ + "application/xml", + "application/json" ], - "operationId": "Service_SetProperties", - "description": "Sets properties for a storage account's Blob service endpoint, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules", "parameters": [ { - "$ref": "#/parameters/StorageServiceProperties" - }, - { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "202": { - "description": "Success (Accepted)", + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + }, "headers": { "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } }, - "get": { - "tags": [ - "service" + "put": { + "operationId": "SetProperties", + "description": "Sets properties for a storage account's Blob service endpoint, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules", + "consumes": [ + "application/xml" ], - "operationId": "Service_GetProperties", - "description": "gets the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + } } ], "responses": { - "200": { - "description": "Success.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } - }, - "schema": { - "$ref": "#/definitions/StorageServiceProperties" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } }, - "parameters": [ - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "service" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "properties" - ] - } - ] - }, - "/?restype=service&comp=stats": { - "get": { - "tags": [ - "service" + "post": { + "operationId": "GetUserDelegationKey", + "description": "Retrieves a user delegation key for the Blob service. This is only a valid operation when using bearer token authentication.", + "produces": [ + "application/xml", + "application/json" + ], + "consumes": [ + "application/xml" ], - "operationId": "Service_GetStatistics", - "description": "Retrieves statistics related to replication for the Blob service. It is only available on the secondary location endpoint when read-access geo-redundant replication is enabled for the storage account.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/KeyInfo" + } } ], "responses": { "200": { - "description": "Success.", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/UserDelegationKey" + }, "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Date": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-client-request-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "Date": { + "x-ms-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } - }, - "schema": { - "$ref": "#/definitions/StorageServiceStats" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "service" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "stats" - ] - } - ] + } }, - "/?comp=list": { + "/{containerName}": { "get": { - "tags": [ - "service" - ], - "operationId": "Service_ListContainersSegment", - "description": "The List Containers Segment operation returns a list of the containers under the specified account", + "operationId": "Container_GetProperties", + "description": "returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs", "parameters": [ { - "$ref": "#/parameters/Prefix" - }, - { - "$ref": "#/parameters/Marker" - }, - { - "$ref": "#/parameters/MaxResults" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/ListContainersInclude" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/Timeout" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "Success.", + "description": "The request has succeeded.", "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-public-access": { + "type": "string", + "description": "The public access setting for the container.", + "enum": [ + "blob", + "container" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] + } + }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-default-encryption-scope": { + "type": "string", + "description": "The default encryption scope for the container." + }, + "x-ms-deny-encryption-scope-override": { + "type": "boolean", + "description": "If a blob has a lease and the lease is of infinite duration then the value of this header is set to true, otherwise it is set to false." + }, + "x-ms-has-immutability-policy": { + "type": "boolean", + "description": "Indicates whether the container has an immutability policy set on it." + }, + "x-ms-has-legal-hold": { + "type": "boolean", + "description": "Indicates whether the container has a legal hold." + }, + "x-ms-immutable-storage-with-versioning-enabled": { + "type": "boolean", + "description": "Indicates whether version level worm is enabled on a container" + }, + "x-ms-lease-duration": { + "type": "integer", + "format": "int32", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change." + }, + "x-ms-lease-state": { + "type": "string", + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": true, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } + }, + "x-ms-lease-status": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "The lease status of the blob.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": true, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, + "x-ms-request-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } - }, - "schema": { - "$ref": "#/definitions/ListContainersSegmentResponse" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } - }, - "x-ms-pageable": { - "nextLinkName": "NextMarker" } }, - "parameters": [ - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "list" - ] - } - ] - }, - "/?restype=service&comp=userdelegationkey": { - "post": { - "tags": [ - "service" - ], - "operationId": "Service_GetUserDelegationKey", - "description": "Retrieves a user delegation key for the Blob service. This is only a valid operation when using bearer token authentication.", + "put": { + "operationId": "Container_Create", + "description": "Creates a new container under the specified account. If the container with the same name already exists, the operation fails.", "parameters": [ { - "$ref": "#/parameters/KeyInfo" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "x-ms-blob-public-access", + "in": "header", + "description": "The public access setting for the container.", + "required": false, + "type": "string", + "enum": [ + "blob", + "container" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] + }, + "x-ms-client-name": "access" }, { - "$ref": "#/parameters/Timeout" + "name": "x-ms-default-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the default encryption scope to set on the container and use for all future writes.", + "required": false, + "type": "string", + "x-ms-client-name": "defaultEncryptionScope" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-deny-encryption-scope-override", + "in": "header", + "description": "If a blob has a lease and the lease is of infinite duration then the value of this header is set to true, otherwise it is set to false.", + "required": false, + "type": "boolean", + "x-ms-client-name": "PreventEncryptionScopeOverride" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "Success.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Date": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "ETag": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Last-Modified": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "Date": { + "x-ms-client-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } - }, - "schema": { - "$ref": "#/definitions/UserDelegationKey" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } }, - "parameters": [ - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "service" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "userdelegationkey" - ] - } - ] - }, - "/?restype=account&comp=properties": { - "get": { - "tags": [ - "service" + "post": { + "operationId": "Container_SubmitBatch", + "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "produces": [ + "multipart/mixed", + "application/json" + ], + "consumes": [ + "multipart/mixed" ], - "operationId": "Service_GetAccountInfo", - "description": "Returns the sku name and account kind ", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { - "200": { - "description": "Success (OK)", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "type": "file" + }, "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-sku-name": { - "x-ms-client-name": "SkuName", - "type": "string", - "enum": [ - "Standard_LRS", - "Standard_GRS", - "Standard_RAGRS", - "Standard_ZRS", - "Premium_LRS" - ], - "x-ms-enum": { - "name": "SkuName", - "modelAsString": false - }, - "description": "Identifies the sku name of the account" - }, - "x-ms-account-kind": { - "x-ms-client-name": "AccountKind", "type": "string", - "enum": [ - "Storage", - "BlobStorage", - "StorageV2", - "FileStorage", - "BlockBlobStorage" - ], - "x-ms-enum": { - "name": "AccountKind", - "modelAsString": false - }, - "description": "Identifies the account kind" - }, - "x-ms-is-hns-enabled": { - "x-ms-client-name": "IsHierarchicalNamespaceEnabled", - "type": "boolean", - "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } }, - "parameters": [ - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "account" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "properties" - ] - } - ] - }, - "/?comp=batch": { - "post": { - "tags": [ - "service" - ], - "operationId": "Service_SubmitBatch", - "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "delete": { + "operationId": "Container_Delete", + "description": "operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection", "parameters": [ { - "$ref": "#/parameters/Body" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ContentLength" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/MultipartContentType" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/Timeout" + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "Success.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { - "Content-Type": { + "Date": { "type": "string", - "description": "The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID" + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-client-request-id": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-request-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } - }, - "schema": { - "type": "object", - "format": "file" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "batch" - ] - } - ] + } }, - "/?comp=blobs": { + "/{containerName}/{blob}": { "get": { - "tags": [ - "service" + "operationId": "Blob_Download", + "description": "The Download operation reads or downloads a blob from the system, including its metadata and properties. You can also call Download to read a snapshot.", + "produces": [ + "application/octet-stream", + "application/json" ], - "operationId": "Service_FilterBlobs", - "description": "The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression. Filter blobs searches across all containers within a storage account but can be scoped within the expression to a single container.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/FilterBlobsWhere" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/Marker" + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/MaxResults" + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" }, { - "$ref": "#/parameters/FilterBlobsInclude" - } - ], - "responses": { - "200": { - "description": "Success", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - }, - "schema": { - "$ref": "#/definitions/FilterBlobSegment" - } + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "blobs" - ] - } - ] - }, - "/{containerName}?restype=container": { - "put": { - "tags": [ - "container" - ], - "operationId": "Container_Create", - "description": "creates a new container under the specified account. If the container with the same name already exists, the operation fails", - "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "range" }, { - "$ref": "#/parameters/Metadata" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/BlobPublicAccess" + "name": "x-ms-range-get-content-md5", + "in": "header", + "description": "When set to true and specified together with the Range, the service returns the MD5 hash for the range, as long as the range is less than or equal to 4 MB in size.", + "required": false, + "type": "boolean", + "x-ms-client-name": "rangeGetContentMd5" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-range-get-content-crc64", + "in": "header", + "description": "Optional. When this header is set to true and specified together with the Range header, the service returns the CRC64 hash for the range, as long as the range is less than or equal to 4 MB in size.", + "required": false, + "type": "boolean", + "x-ms-client-name": "rangeGetContentCrc64" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-structured-body", + "in": "header", + "description": "Specifies the response content should be returned as a structured message and specifies the message schema version and properties.", + "required": false, + "type": "string", + "x-ms-client-name": "structuredBodyType" }, { - "$ref": "#/parameters/DefaultEncryptionScope" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/DenyEncryptionScopeOverride" - } - ], - "responses": { - "201": { - "description": "Success, Container created.", - "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "get": { - "tags": [ - "container" - ], - "operationId": "Container_GetProperties", - "description": "returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs", - "parameters": [ + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, { - "$ref": "#/parameters/Timeout" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/LeaseIdOptional" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" } ], "responses": { "200": { - "description": "Success", + "description": "The request has succeeded.", + "schema": { + "type": "file" + }, "headers": { - "x-ms-meta": { - "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" - }, - "ETag": { + "Accept-Ranges": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "Indicates that the service supports requests for partial blob content." }, - "Last-Modified": { + "Cache-Control": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "description": "This header is returned if it was previously specified for the blob." }, - "x-ms-lease-duration": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", + "Content-Disposition": { "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false - } + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." }, - "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", + "Content-Encoding": { "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false - } + "description": "This header returns the value that was specified for the Content-Encoding request header" }, - "x-ms-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", + "Content-Language": { "type": "string", - "enum": [ - "locked", - "unlocked" - ], - "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false - } + "description": "This header returns the value that was specified for the Content-Language request header." }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Content-MD5": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Content-Range": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." }, "Date": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-blob-public-access": { - "x-ms-client-name": "BlobPublicAccess", - "description": "Indicated whether data in the container may be accessed publicly and the level of access", + "ETag": { "type": "string", - "enum": [ - "container", - "blob" - ], - "x-ms-enum": { - "name": "PublicAccessType", - "modelAsString": true - } + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-has-immutability-policy": { - "x-ms-client-name": "HasImmutabilityPolicy", - "description": "Indicates whether the container has an immutability policy set on it.", - "type": "boolean" + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-has-legal-hold": { - "x-ms-client-name": "HasLegalHold", - "description": "Indicates whether the container has a legal hold.", - "type": "boolean" + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." }, - "x-ms-default-encryption-scope": { - "x-ms-client-name": "DefaultEncryptionScope", - "description": "The default encryption scope for the container.", - "type": "string" + "x-ms-blob-content-md5": { + "type": "string", + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "x-ms-deny-encryption-scope-override": { - "x-ms-client-name": "DenyEncryptionScopeOverride", - "description": "Indicates whether the container's default encryption scope can be overriden.", - "type": "boolean" + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-blob-type": { + "type": "string", + "description": "The type of the blob.", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": true, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] + } }, - "x-ms-immutable-storage-with-versioning-enabled": { - "x-ms-client-name": "IsImmutableStorageWithVersioningEnabled", - "description": "Indicates whether version level worm is enabled on a container.", - "type": "boolean" - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "delete": { - "tags": [ - "container" - ], - "operationId": "Container_Delete", - "description": "operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "202": { - "description": "Accepted", - "headers": { "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-copy-completion-time": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-rfc7231", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-copy-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." }, - "Date": { + "x-ms-copy-progress": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - } - ] - }, - "/{containerName}?restype=container&comp=metadata": { - "put": { - "tags": [ - "container" - ], - "operationId": "Container_SetMetadata", - "description": "operation sets one or more user-defined name-value pairs for the specified container.", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "Success", - "headers": { - "ETag": { + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." }, - "Last-Modified": { + "x-ms-copy-status": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-copy-status-description": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-creation-time": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-rfc7231", + "description": "Returns the date and time the blob was created." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "Date": { + "x-ms-encryption-scope": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "metadata" - ] - } - ] - }, - "/{containerName}?restype=container&comp=acl": { - "get": { - "tags": [ - "container" - ], - "operationId": "Container_GetAccessPolicy", - "description": "gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly.", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "Success", - "headers": { - "x-ms-blob-public-access": { - "x-ms-client-name": "BlobPublicAccess", - "description": "Indicated whether data in the container may be accessed publicly and the level of access", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-immutability-policy-mode": { "type": "string", + "description": "Indicates the immutability policy mode of the blob.", "enum": [ - "container", - "blob" + "Mutable", + "Locked", + "Unlocked" ], "x-ms-enum": { - "name": "PublicAccessType", - "modelAsString": true + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] } }, - "ETag": { + "x-ms-immutability-policy-until-date": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "x-ms-is-current-version": { + "type": "boolean", + "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-last-access-time": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "x-ms-lease-duration": { + "type": "integer", + "format": "int32", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-lease-state": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": true, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } }, - "Date": { + "x-ms-lease-status": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - }, - "schema": { - "$ref": "#/definitions/SignedIdentifiers" - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "put": { - "tags": [ - "container" - ], - "operationId": "Container_SetAccessPolicy", - "description": "sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly.", - "parameters": [ - { - "$ref": "#/parameters/ContainerAcl" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/BlobPublicAccess" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "Success.", - "headers": { - "ETag": { + "description": "The lease status of the blob.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": true, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } + }, + "x-ms-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, + "x-ms-meta": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The metadata headers." }, - "Last-Modified": { + "x-ms-or": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed)." }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-or-policy-id": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." }, - "Date": { + "x-ms-structured-body": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "acl" - ] - } - ] - }, - "/{containerName}?restype=container&comp=undelete": { - "put": { - "tags": [ - "container" - ], - "operationId": "Container_Restore", - "description": "Restores a previously-deleted container.", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - }, - { - "$ref": "#/parameters/DeletedContainerName" - }, - { - "$ref": "#/parameters/DeletedContainerVersion" - } - ], - "responses": { - "201": { - "description": "Created.", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "x-ms-structured-content-length": { + "type": "integer", + "format": "int64", + "description": "The length of the blob/file content inside the message body when the response body is returned as a structured message. Will always be smaller than Content-Length." }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "x-ms-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" }, - "Date": { + "x-ms-version-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." } } }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "206": { + "description": "Successful", "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "undelete" - ] - } - ] - }, - "/{containerName}?restype=container&comp=rename": { - "put": { - "tags": [ - "container" - ], - "operationId": "Container_Rename", - "description": "Renames an existing container.", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - }, - { - "$ref": "#/parameters/SourceContainerName" - }, - { - "$ref": "#/parameters/SourceLeaseId" - } - ], - "responses": { - "200": { - "description": "Created.", + "type": "file" + }, "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Accept-Ranges": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "description": "Indicates that the service supports requests for partial blob content." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Cache-Control": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "This header is returned if it was previously specified for the blob." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Content-Disposition": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "rename" - ] - } - ] - }, - "/{containerName}?restype=container&comp=batch": { - "post": { - "tags": [ - "container" - ], - "operationId": "Container_SubmitBatch", - "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", - "parameters": [ - { - "$ref": "#/parameters/Body" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/MultipartContentType" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "202": { - "description": "Success.", - "headers": { - "Content-Type": { + "Content-Encoding": { "type": "string", - "description": "The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID" + "description": "This header returns the value that was specified for the Content-Encoding request header" }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Content-Language": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "This header returns the value that was specified for the Content-Language request header." }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - } - }, - "schema": { - "type": "object", - "format": "file" - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "batch" - ] - } - ] - }, - "/{containerName}?restype=container&comp=blobs": { - "get": { - "tags": [ - "container" - ], - "operationId": "Container_FilterBlobs", - "description": "The Filter Blobs operation enables callers to list blobs in a container whose tags match a given search expression. Filter blobs searches within the given container.", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - }, - { - "$ref": "#/parameters/FilterBlobsWhere" - }, - { - "$ref": "#/parameters/Marker" - }, - { - "$ref": "#/parameters/MaxResults" - }, - { - "$ref": "#/parameters/FilterBlobsInclude" - } - ], - "responses": { - "200": { - "description": "Success", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Content-MD5": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Content-Range": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." }, "Date": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - }, - "schema": { - "$ref": "#/definitions/FilterBlobSegment" - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "blobs" - ] - } - ] - }, - "/{containerName}?comp=lease&restype=container&acquire": { - "put": { - "tags": [ - "container" - ], - "operationId": "Container_AcquireLease", - "description": "[Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseDuration" - }, - { - "$ref": "#/parameters/ProposedLeaseIdOptional" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "201": { - "description": "The Acquire operation completed successfully.", - "headers": { + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-lease-id": { - "x-ms-client-name": "LeaseId", - "type": "string", - "description": "Uniquely identifies a container's lease" - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-blob-content-md5": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" }, - "Date": { + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-blob-type": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "description": "The type of the blob.", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": true, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-copy-completion-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-id": { + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "x-ms-copy-status-description": { + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-creation-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Returns the date and time the blob was created." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-immutability-policy-mode": { + "type": "string", + "description": "Indicates the immutability policy mode of the blob.", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + } + }, + "x-ms-immutability-policy-until-date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-is-current-version": { + "type": "boolean", + "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." + }, + "x-ms-last-access-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" + }, + "x-ms-lease-duration": { + "type": "integer", + "format": "int32", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change." + }, + "x-ms-lease-state": { + "type": "string", + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": true, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } + }, + "x-ms-lease-status": { + "type": "string", + "description": "The lease status of the blob.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": true, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } + }, + "x-ms-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, + "x-ms-or": { + "type": "string", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed)." + }, + "x-ms-or-policy-id": { + "type": "string", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-structured-body": { + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + }, + "x-ms-structured-content-length": { + "type": "integer", + "format": "int64", + "description": "The length of the blob/file content inside the message body when the response body is returned as a structured message. Will always be smaller than Content-Length." + }, + "x-ms-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "lease" - ] - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "x-ms-lease-action", - "x-ms-client-name": "action", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "acquire" - ], - "x-ms-enum": { - "name": "LeaseAction", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Describes what lease action to take." - } - ] - }, - "/{containerName}?comp=lease&restype=container&release": { "put": { - "tags": [ - "container" - ], - "operationId": "Container_ReleaseLease", - "description": "[Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite", + "operationId": "Blob_Undelete", + "description": "Undelete a blob that was previously soft deleted", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdRequired" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The Release operation completed successfully.", + "description": "The request has succeeded.", "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { + "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "lease" - ] - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "x-ms-lease-action", - "x-ms-client-name": "action", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "release" - ], - "x-ms-enum": { - "name": "LeaseAction", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Describes what lease action to take." - } - ] - }, - "/{containerName}?comp=lease&restype=container&renew": { - "put": { - "tags": [ - "container" + "post": { + "operationId": "BlockBlob_Query", + "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", + "produces": [ + "application/octet-stream", + "application/json" + ], + "consumes": [ + "application/xml" ], - "operationId": "Container_RenewLease", - "description": "[Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/LeaseIdRequired" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "queryRequest", + "in": "body", + "description": "The query request", + "required": true, + "schema": { + "$ref": "#/definitions/QueryRequest" + } } ], "responses": { "200": { - "description": "The Renew operation completed successfully.", + "description": "The request has succeeded.", + "schema": { + "type": "file" + }, "headers": { - "ETag": { + "Accept-Ranges": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "Indicates that the service supports requests for partial blob content." }, - "Last-Modified": { + "Cache-Control": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "description": "This header is returned if it was previously specified for the blob." }, - "x-ms-lease-id": { - "x-ms-client-name": "LeaseId", + "Content-Disposition": { "type": "string", - "description": "Uniquely identifies a container's lease" + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Content-Encoding": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "description": "This header returns the value that was specified for the Content-Encoding request header" }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Content-Language": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Content-MD5": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "Date": { + "Content-Range": { "type": "string", - "format": "date-time-rfc1123", + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "lease" - ] - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "x-ms-lease-action", - "x-ms-client-name": "action", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "renew" - ], - "x-ms-enum": { - "name": "LeaseAction", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Describes what lease action to take." - } - ] - }, - "/{containerName}?comp=lease&restype=container&break": { - "put": { - "tags": [ - "container" - ], - "operationId": "Container_BreakLease", - "description": "[Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseBreakPeriod" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "202": { - "description": "The Break operation completed successfully.", - "headers": { + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-lease-time": { - "x-ms-client-name": "LeaseTime", + "x-ms-blob-committed-block-count": { "type": "integer", - "description": "Approximate time remaining in the lease period, in seconds." + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-blob-content-md5": { + "type": "string", + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-blob-type": { + "type": "string", + "description": "The type of the blob.", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": true, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] + } }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-content-crc64": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-copy-completion-time": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "date-time-rfc7231", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." }, - "Date": { + "x-ms-copy-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "lease" - ] - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "x-ms-lease-action", - "x-ms-client-name": "action", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "break" - ], - "x-ms-enum": { - "name": "LeaseAction", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Describes what lease action to take." - } - ] - }, - "/{containerName}?comp=lease&restype=container&change": { - "put": { - "tags": [ - "container" - ], - "operationId": "Container_ChangeLease", - "description": "[Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdRequired" - }, - { - "$ref": "#/parameters/ProposedLeaseIdRequired" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "The Change operation completed successfully.", - "headers": { - "ETag": { + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" }, - "Last-Modified": { + "x-ms-copy-source": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." }, - "x-ms-lease-id": { - "x-ms-client-name": "LeaseId", + "x-ms-copy-status": { + "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "x-ms-copy-status-description": { "type": "string", - "description": "Uniquely identifies a container's lease" + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-encryption-scope": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-lease-duration": { + "type": "integer", + "format": "int32", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change." + }, + "x-ms-lease-state": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": true, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } }, - "Date": { + "x-ms-lease-status": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "description": "The lease status of the blob.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": true, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } + }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." } } }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "206": { + "description": "Successful", "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "lease" - ] - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "x-ms-lease-action", - "x-ms-client-name": "action", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "change" - ], - "x-ms-enum": { - "name": "LeaseAction", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Describes what lease action to take." - } - ] - }, - "/{containerName}?restype=container&comp=list&flat": { - "get": { - "tags": [ - "containers" - ], - "operationId": "Container_ListBlobFlatSegment", - "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", - "parameters": [ - { - "$ref": "#/parameters/Prefix" - }, - { - "$ref": "#/parameters/Marker" - }, - { - "$ref": "#/parameters/MaxResults" - }, - { - "$ref": "#/parameters/ListBlobsInclude" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "Success.", + "type": "file" + }, "headers": { - "Content-Type": { + "Accept-Ranges": { "type": "string", - "description": "The media type of the body of the response. For List Blobs this is 'application/xml'" + "description": "Indicates that the service supports requests for partial blob content." }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Cache-Control": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "description": "This header is returned if it was previously specified for the blob." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Content-Disposition": { + "type": "string", + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + }, + "Content-Encoding": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "This header returns the value that was specified for the Content-Encoding request header" + }, + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-MD5": { + "type": "string", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Content-Range": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." }, "Date": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - }, - "schema": { - "$ref": "#/definitions/ListBlobsFlatSegmentResponse" - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "NextMarker" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "list" - ] - } - ] - }, - "/{containerName}?restype=container&comp=list&hierarchy": { - "get": { - "tags": [ - "containers" - ], - "operationId": "Container_ListBlobHierarchySegment", - "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", - "parameters": [ - { - "$ref": "#/parameters/Prefix" - }, - { - "$ref": "#/parameters/Delimiter" - }, - { - "$ref": "#/parameters/Marker" - }, - { - "$ref": "#/parameters/MaxResults" - }, - { - "$ref": "#/parameters/ListBlobsInclude" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "Success.", - "headers": { - "Content-Type": { + }, + "ETag": { "type": "string", - "description": "The media type of the body of the response. For List Blobs this is 'application/xml'" + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-blob-content-md5": { + "type": "string", + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-blob-type": { + "type": "string", + "description": "The type of the blob.", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": true, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] + } }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-content-crc64": { + "type": "string", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-copy-completion-time": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-rfc7231", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-copy-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." }, - "Date": { + "x-ms-copy-progress": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "x-ms-copy-status-description": { + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-lease-duration": { + "type": "integer", + "format": "int32", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change." + }, + "x-ms-lease-state": { + "type": "string", + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": true, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } + }, + "x-ms-lease-status": { + "type": "string", + "description": "The lease status of the blob.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": true, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } + }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." } - }, - "schema": { - "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } - }, - "x-ms-pageable": { - "nextLinkName": "NextMarker" } }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "list" - ] - } - ] - }, - "/{containerName}?restype=account&comp=properties": { - "get": { - "tags": [ - "container" - ], - "operationId": "Container_GetAccountInfo", - "description": "Returns the sku name and account kind ", + "delete": { + "operationId": "Blob_Delete", + "description": "If the storage account's soft delete feature is disabled then, when a blob is deleted, it is permanently removed from the storage account. If the storage account's soft delete feature is enabled, then, when a blob is deleted, it is marked for deletion and becomes inaccessible immediately. However, the blob service retains the blob or snapshot for the number of days specified by the DeleteRetentionPolicy section of [Storage service properties] (Set-Blob-Service-Properties.md). After the specified number of days has passed, the blob's data is permanently removed from the storage account. Note that you continue to be charged for the soft-deleted blob's storage until it is permanently removed. Use the List Blobs API and specify the \\\"include=deleted\\\" query parameter to discover which blobs and snapshots have been soft deleted. You can then use the Undelete Blob API to restore a soft-deleted blob. All other operations on a soft-deleted blob or snapshot causes the service to return an HTTP status code of 404 (ResourceNotFound).", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-delete-snapshots", + "in": "header", + "description": "Required if the blob has associated snapshots. Specify one of the following two options: include: Delete the base blob and all of its snapshots. only: Delete only the blob's snapshots and not the blob itself", + "required": false, + "type": "string", + "enum": [ + "only", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": true, + "values": [ + { + "name": "Only", + "value": "only", + "description": "The delete snapshots include option is only." + }, + { + "name": "Include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] + }, + "x-ms-client-name": "deleteSnapshots" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "deletetype", + "in": "query", + "description": "Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled.", + "required": false, + "type": "string", + "enum": [ + "Permanent" + ], + "x-ms-enum": { + "name": "BlobDeleteType", + "modelAsString": true, + "values": [ + { + "name": "Permanent", + "value": "Permanent", + "description": "Permanently delete the blob." + } + ] + }, + "x-ms-client-name": "blobDeleteType" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "Success (OK)", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, "Date": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-sku-name": { - "x-ms-client-name": "SkuName", + "x-ms-client-request-id": { "type": "string", - "enum": [ - "Standard_LRS", - "Standard_GRS", - "Standard_RAGRS", - "Standard_ZRS", - "Premium_LRS" - ], - "x-ms-enum": { - "name": "SkuName", - "modelAsString": false - }, - "description": "Identifies the sku name of the account" + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-account-kind": { - "x-ms-client-name": "AccountKind", + "x-ms-request-id": { "type": "string", - "enum": [ - "Storage", - "BlobStorage", - "StorageV2", - "FileStorage", - "BlockBlobStorage" - ], - "x-ms-enum": { - "name": "AccountKind", - "modelAsString": false - }, - "description": "Identifies the account kind" - }, - "x-ms-is-hns-enabled": { - "x-ms-client-name": "IsHierarchicalNamespaceEnabled", - "type": "boolean", - "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "account" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "properties" - ] - } - ] - }, - "/{containerName}/{blob}": { - "get": { - "tags": [ - "blob" - ], - "operationId": "Blob_Download", - "description": "The Download operation reads or downloads a blob from the system, including its metadata and properties. You can also call Download to read a snapshot.", + "head": { + "operationId": "Blob_GetProperties", + "description": "The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system properties for the blob. It does not return the content of the blob.", "parameters": [ { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/VersionId" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/Timeout" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/Range" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/GetRangeContentMD5" + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" }, { - "$ref": "#/parameters/GetRangeContentCRC64" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/StructuredBodyGet" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/IfModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "Returns the content of the entire blob.", + "description": "The request has succeeded.", "headers": { - "Last-Modified": { + "Accept-Ranges": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "description": "Indicates that the service supports requests for partial blob content." }, - "x-ms-creation-time": { - "x-ms-client-name": "CreationTime", + "Cache-Control": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was created." + "description": "This header is returned if it was previously specified for the blob." }, - "x-ms-meta": { + "Content-Disposition": { "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." }, - "x-ms-or-policy-id": { - "x-ms-client-name": "ObjectReplicationPolicyId", + "Content-Encoding": { "type": "string", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + "description": "This header returns the value that was specified for the Content-Encoding request header" }, - "x-ms-or": { + "Content-Language": { "type": "string", - "x-ms-client-name": "ObjectReplicationRules", - "x-ms-header-collection-prefix": "x-ms-or-", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed)." + "description": "This header returns the value that was specified for the Content-Language request header." }, "Content-Length": { "type": "integer", "format": "int64", "description": "The number of bytes present in the response body." }, - "Content-Type": { + "Content-MD5": { "type": "string", - "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "Content-Range": { + "Date": { "type": "string", - "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "Content-MD5": { + "Last-Modified": { "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "Content-Encoding": { + "x-ms-access-tier": { "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "description": "The tier to be set on the blob.", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + } }, - "Cache-Control": { + "x-ms-access-tier-change-time": { "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "format": "date-time-rfc7231", + "description": "The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set." }, - "Content-Disposition": { - "type": "string", - "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + "x-ms-access-tier-inferred": { + "type": "boolean", + "description": "For page blobs on a premium storage account only. If the access tier is not explicitly set on the blob, the tier is inferred based on its content length and this header will be returned with true value." }, - "Content-Language": { + "x-ms-archive-status": { "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." + "description": "For blob storage LRS accounts, valid values are rehydrate-pending-to-hot/rehydrate-pending-to-cool. If the blob is being rehydrated and is not complete then this header is returned indicating that rehydrate is pending and also tells the destination tier.", + "enum": [ + "rehydrate-pending-to-hot", + "rehydrate-pending-to-cool", + "rehydrate-pending-to-cold" + ], + "x-ms-enum": { + "name": "ArchiveStatus", + "modelAsString": true, + "values": [ + { + "name": "RehydratePendingToHot", + "value": "rehydrate-pending-to-hot", + "description": "The archive status is rehydrating pending to hot." + }, + { + "name": "RehydratePendingToCool", + "value": "rehydrate-pending-to-cool", + "description": "The archive status is rehydrating pending to cool." + }, + { + "name": "RehydratePendingToCold", + "value": "rehydrate-pending-to-cold", + "description": "The archive status is rehydrating pending to archive." + } + ] + } + }, + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" }, "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", "type": "integer", "format": "int64", - "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." }, "x-ms-blob-type": { - "x-ms-client-name": "BlobType", - "description": "The blob's type.", "type": "string", + "description": "The type of the blob.", "enum": [ "BlockBlob", "PageBlob", @@ -2781,8780 +2817,11425 @@ ], "x-ms-enum": { "name": "BlobType", - "modelAsString": false + "modelAsString": true, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] } }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, "x-ms-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." }, - "x-ms-copy-status-description": { - "x-ms-client-name": "CopyStatusDescription", + "x-ms-copy-destination-snapshot": { "type": "string", - "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + "description": "Included if the blob is incremental copy blob or incremental copy snapshot, if x-ms-copy-status is success. Snapshot time of the last successful incremental copy snapshot for this blob." }, "x-ms-copy-id": { - "x-ms-client-name": "CopyId", "type": "string", "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." }, "x-ms-copy-progress": { - "x-ms-client-name": "CopyProgress", "type": "string", "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" }, "x-ms-copy-source": { - "x-ms-client-name": "CopySource", "type": "string", "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." }, "x-ms-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", "enum": [ "pending", "success", - "aborted", - "failed" - ], - "x-ms-enum": { - "name": "CopyStatusType", - "modelAsString": false - } - }, - "x-ms-lease-duration": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", - "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false - } - }, - "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", - "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" + "failed", + "aborted" ], "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false + "name": "CopyStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] } }, - "x-ms-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", + "x-ms-copy-status-description": { "type": "string", - "enum": [ - "locked", - "unlocked" - ], - "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false - } + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-creation-time": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "date-time-rfc7231", + "description": "Returns the date and time the blob was created." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-encryption-scope": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", + "x-ms-expiry-time": { "type": "string", - "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." - }, - "x-ms-is-current-version": { - "x-ms-client-name": "IsCurrentVersion", - "type": "boolean", - "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." + "format": "date-time-rfc7231", + "description": "The time this blob will expire." }, - "Accept-Ranges": { + "x-ms-immutability-policy-mode": { "type": "string", - "description": "Indicates that the service supports requests for partial blob content." + "description": "Indicates the immutability policy mode of the blob.", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + } }, - "Date": { + "x-ms-immutability-policy-until-date": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-blob-committed-block-count": { - "x-ms-client-name": "BlobCommittedBlockCount", - "type": "integer", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." }, - "x-ms-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", + "x-ms-incremental-copy": { "type": "boolean", - "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." - }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", - "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." - }, - "x-ms-blob-content-md5": { - "x-ms-client-name": "BlobContentMD5", - "type": "string", - "format": "byte", - "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" - }, - "x-ms-tag-count": { - "x-ms-client-name": "TagCount", - "type": "integer", - "format": "int64", - "description": "The number of tags associated with the blob" + "description": "Included if the blob is incremental copy blob." }, - "x-ms-blob-sealed": { - "x-ms-client-name": "IsSealed", + "x-ms-is-current-version": { "type": "boolean", - "description": "If this blob has been sealed" + "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." }, "x-ms-last-access-time": { - "x-ms-client-name": "LastAccessed", "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" }, - "x-ms-immutability-policy-until-date": { - "x-ms-client-name": "ImmutabilityPolicyExpiresOn", + "x-ms-lease-duration": { + "type": "integer", + "format": "int32", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change." + }, + "x-ms-lease-state": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": true, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } }, - "x-ms-immutability-policy-mode": { - "x-ms-client-name": "ImmutabilityPolicyMode", + "x-ms-lease-status": { "type": "string", + "description": "The lease status of the blob.", "enum": [ - "Mutable", - "Unlocked", - "Locked" + "unlocked", + "locked" ], "x-ms-enum": { - "name": "BlobImmutabilityPolicyMode", - "modelAsString": false - }, - "description": "Indicates immutability policy mode." + "name": "LeaseStatus", + "modelAsString": true, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } }, "x-ms-legal-hold": { - "x-ms-client-name": "LegalHold", "type": "boolean", - "description": "Indicates if a legal hold is present on the blob." - }, - "x-ms-structured-body": { - "x-ms-client-name": "StructuredBodyType", - "type": "string", - "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." - }, - "x-ms-structured-content-length": { - "x-ms-client-name": "StructuredContentLength", - "type": "integer", - "format": "int64", - "description": "The length of the blob/file content inside the message body when the response body is returned as a structured message. Will always be smaller than Content-Length." - } - }, - "schema": { - "type": "object", - "format": "file" - } - }, - "206": { - "description": "Returns the content of a specified range of the blob.", - "headers": { - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "x-ms-creation-time": { - "x-ms-client-name": "CreationTime", - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was created." + "description": "Specifies the legal hold status to set on the blob." }, "x-ms-meta": { "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" - }, - "x-ms-or-policy-id": { - "x-ms-client-name": "ObjectReplicationPolicyId", - "type": "string", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + "description": "The metadata headers." }, "x-ms-or": { "type": "string", - "x-ms-client-name": "ObjectReplicationRules", - "x-ms-header-collection-prefix": "x-ms-or-", "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed)." }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." - }, - "Content-Type": { - "type": "string", - "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" - }, - "Content-Range": { - "type": "string", - "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Content-MD5": { - "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." - }, - "Content-Encoding": { + "x-ms-or-policy-id": { "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." }, - "Cache-Control": { + "x-ms-rehydrate-priority": { "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "enum": [ + "High", + "Standard" + ], + "x-ms-enum": { + "name": "RehydratePriority", + "modelAsString": true, + "values": [ + { + "name": "High", + "value": "High", + "description": "The rehydrate priority is high." + }, + { + "name": "Standard", + "value": "Standard", + "description": "The rehydrate priority is standard." + } + ] + } }, - "Content-Disposition": { + "x-ms-request-id": { "type": "string", - "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "Content-Language": { - "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", + "x-ms-tag-count": { "type": "integer", "format": "int64", - "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + "description": "The number of tags associated with the blob" }, - "x-ms-blob-type": { - "x-ms-client-name": "BlobType", - "description": "The blob's type.", - "type": "string", - "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - }, - "x-ms-content-crc64": { - "x-ms-client-name": "ContentCrc64", - "type": "string", - "format": "byte", - "description": "If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to true, then the request returns a crc64 for the range, as long as the range size is less than or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is specified in the same request, it will fail with 400(Bad Request)" - }, - "x-ms-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", - "type": "string", - "format": "date-time-rfc1123", - "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." - }, - "x-ms-copy-status-description": { - "x-ms-client-name": "CopyStatusDescription", - "type": "string", - "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" - }, - "x-ms-copy-id": { - "x-ms-client-name": "CopyId", - "type": "string", - "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." - }, - "x-ms-copy-progress": { - "x-ms-client-name": "CopyProgress", - "type": "string", - "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" - }, - "x-ms-copy-source": { - "x-ms-client-name": "CopySource", - "type": "string", - "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." - }, - "x-ms-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", - "type": "string", - "enum": [ - "pending", - "success", - "aborted", - "failed" - ], - "x-ms-enum": { - "name": "CopyStatusType", - "modelAsString": false - } - }, - "x-ms-lease-duration": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", - "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false - } - }, - "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", - "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false - } - }, - "x-ms-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", - "type": "string", - "enum": [ - "locked", - "unlocked" - ], - "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false - } - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", + "x-ms-version-id": { "type": "string", "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." - }, - "x-ms-is-current-version": { - "x-ms-client-name": "IsCurrentVersion", - "type": "boolean", - "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." - }, - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-blob-committed-block-count": { - "x-ms-client-name": "BlobCommittedBlockCount", - "type": "integer", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." - }, - "x-ms-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." - }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", - "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." - }, - "x-ms-blob-content-md5": { - "x-ms-client-name": "BlobContentMD5", - "type": "string", - "format": "byte", - "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" - }, - "x-ms-tag-count": { - "x-ms-client-name": "TagCount", - "type": "integer", - "format": "int64", - "description": "The number of tags associated with the blob" - }, - "x-ms-blob-sealed": { - "x-ms-client-name": "IsSealed", - "type": "boolean", - "description": "If this blob has been sealed" - }, - "x-ms-last-access-time": { - "x-ms-client-name": "LastAccessed", - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" - }, - "x-ms-immutability-policy-until-date": { - "x-ms-client-name": "ImmutabilityPolicyExpiresOn", - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." - }, - "x-ms-immutability-policy-mode": { - "x-ms-client-name": "ImmutabilityPolicyMode", - "type": "string", - "description": "Indicates immutability policy mode." - }, - "x-ms-legal-hold": { - "x-ms-client-name": "LegalHold", - "type": "boolean", - "description": "Indicates if a legal hold is present on the blob." - }, - "x-ms-structured-body": { - "x-ms-client-name": "StructuredBodyType", - "type": "string", - "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." - }, - "x-ms-structured-content-length": { - "x-ms-client-name": "StructuredContentLength", - "type": "integer", - "format": "int64", - "description": "The length of the blob/file content inside the message body when the response body is returned as a structured message. Will always be smaller than Content-Length." } - }, - "schema": { - "type": "object", - "format": "file" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "head": { - "tags": [ - "blob" - ], - "operationId": "Blob_GetProperties", - "description": "The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system properties for the blob. It does not return the content of the blob.", + } + } + }, + "x-ms-paths": { + "/{containerName}/{blob}?PageBlob": { + "put": { + "operationId": "PageBlob_Create", + "description": "The Create operation creates a new page blob.", "parameters": [ { - "$ref": "#/parameters/Snapshot" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "Optional. Indicates the tier to be set on the page blob.", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80" + ], + "x-ms-enum": { + "name": "PremiumPageBlobAccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The premium page blob access tier is P4." + }, + { + "name": "P6", + "value": "P6", + "description": "The premium page blob access tier is P6." + }, + { + "name": "P10", + "value": "P10", + "description": "The premium page blob access tier is P10." + }, + { + "name": "P15", + "value": "P15", + "description": "The premium page blob access tier is P15." + }, + { + "name": "P20", + "value": "P20", + "description": "The premium page blob access tier is P20." + }, + { + "name": "P30", + "value": "P30", + "description": "The premium page blob access tier is P30." + }, + { + "name": "P40", + "value": "P40", + "description": "The premium page blob access tier is P40." + }, + { + "name": "P50", + "value": "P50", + "description": "The premium page blob access tier is P50." + }, + { + "name": "P60", + "value": "P60", + "description": "The premium page blob access tier is P60." + }, + { + "name": "P70", + "value": "P70", + "description": "The premium page blob access tier is P70." + }, + { + "name": "P80", + "value": "P80", + "description": "The premium page blob access tier is P80." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" + }, + { + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" + }, + { + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" + }, + { + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "blobContentMd5" + }, + { + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/VersionId" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/Timeout" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/LeaseIdOptional" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/EncryptionKey" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "x-ms-blob-content-length", + "in": "header", + "description": "This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobContentLength" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-blob-sequence-number", + "in": "header", + "description": "Optional. The sequence number is a user-controlled property that you can use to track requests. The value of the sequence number must be between 0 and 2^63 - 1. The default value is 0.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobSequenceNumber" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-blob-type", + "in": "header", + "description": "The type of the blob.", + "required": true, + "type": "string", + "enum": [ + "PageBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "Returns the properties of the blob.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "Last-Modified": { + "Content-MD5": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "x-ms-creation-time": { - "x-ms-client-name": "CreationTime", + "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was created." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-meta": { + "ETag": { "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-or-policy-id": { - "x-ms-client-name": "ObjectReplicationPolicyId", + "Last-Modified": { "type": "string", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-or": { + "x-ms-client-request-id": { "type": "string", - "x-ms-client-name": "ObjectReplicationRules", - "x-ms-header-collection-prefix": "x-ms-or-", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed)." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-blob-type": { - "x-ms-client-name": "BlobType", - "description": "The blob's type.", + "x-ms-encryption-key-sha256": { "type": "string", - "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - }, - "x-ms-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", - "type": "string", - "format": "date-time-rfc1123", - "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." - }, - "x-ms-copy-status-description": { - "x-ms-client-name": "CopyStatusDescription", - "type": "string", - "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" - }, - "x-ms-copy-id": { - "x-ms-client-name": "CopyId", - "type": "string", - "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." - }, - "x-ms-copy-progress": { - "x-ms-client-name": "CopyProgress", - "type": "string", - "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" - }, - "x-ms-copy-source": { - "x-ms-client-name": "CopySource", - "type": "string", - "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." - }, - "x-ms-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", - "type": "string", - "enum": [ - "pending", - "success", - "aborted", - "failed" - ], - "x-ms-enum": { - "name": "CopyStatusType", - "modelAsString": false - } - }, - "x-ms-incremental-copy": { - "x-ms-client-name": "IsIncrementalCopy", - "type": "boolean", - "description": "Included if the blob is incremental copy blob." - }, - "x-ms-copy-destination-snapshot": { - "x-ms-client-name": "DestinationSnapshot", - "type": "string", - "description": "Included if the blob is incremental copy blob or incremental copy snapshot, if x-ms-copy-status is success. Snapshot time of the last successful incremental copy snapshot for this blob." - }, - "x-ms-lease-duration": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", - "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false - } - }, - "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", - "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false - } - }, - "x-ms-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", - "type": "string", - "enum": [ - "locked", - "unlocked" - ], - "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false - } - }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." - }, - "Content-Type": { - "type": "string", - "description": "The content type specified for the blob. The default content type is 'application/octet-stream'" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Content-MD5": { - "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." - }, - "Content-Encoding": { - "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" - }, - "Content-Disposition": { - "type": "string", - "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." - }, - "Content-Language": { - "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." - }, - "Cache-Control": { - "type": "string", - "description": "This header is returned if it was previously specified for the blob." - }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "x-ms-blob-committed-block-count": { - "x-ms-client-name": "BlobCommittedBlockCount", - "type": "integer", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." - }, - "x-ms-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." - }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the metadata. This header is only returned when the metadata was encrypted with a customer-provided key." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "x-ms-access-tier": { - "x-ms-client-name": "AccessTier", + "x-ms-request-id": { "type": "string", - "description": "The tier of page blob on a premium storage account or tier of block blob on blob storage LRS accounts. For a list of allowed premium page blob tiers, see https://docs.microsoft.com/en-us/azure/virtual-machines/windows/premium-storage#features. For blob storage LRS accounts, valid values are Hot/Cool/Archive." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "x-ms-access-tier-inferred": { - "x-ms-client-name": "AccessTierInferred", + "x-ms-request-server-encrypted": { "type": "boolean", - "description": "For page blobs on a premium storage account only. If the access tier is not explicitly set on the blob, the tier is inferred based on its content length and this header will be returned with true value." - }, - "x-ms-archive-status": { - "x-ms-client-name": "ArchiveStatus", - "type": "string", - "description": "For blob storage LRS accounts, valid values are rehydrate-pending-to-hot/rehydrate-pending-to-cool. If the blob is being rehydrated and is not complete then this header is returned indicating that rehydrate is pending and also tells the destination tier." - }, - "x-ms-access-tier-change-time": { - "x-ms-client-name": "AccessTierChangeTime", - "type": "string", - "format": "date-time-rfc1123", - "description": "The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set." + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." }, "x-ms-version-id": { - "x-ms-client-name": "VersionId", "type": "string", "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." - }, - "x-ms-is-current-version": { - "x-ms-client-name": "IsCurrentVersion", - "type": "boolean", - "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." - }, - "x-ms-tag-count": { - "x-ms-client-name": "TagCount", - "type": "integer", - "format": "int64", - "description": "The number of tags associated with the blob" - }, - "x-ms-expiry-time": { - "x-ms-client-name": "ExpiresOn", - "type": "string", - "format": "date-time-rfc1123", - "description": "The time this blob will expire." - }, - "x-ms-blob-sealed": { - "x-ms-client-name": "IsSealed", - "type": "boolean", - "description": "If this blob has been sealed" - }, - "x-ms-rehydrate-priority": { - "x-ms-client-name": "RehydratePriority", - "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", - "type": "string" - }, - "x-ms-last-access-time": { - "x-ms-client-name": "LastAccessed", - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" - }, - "x-ms-immutability-policy-until-date": { - "x-ms-client-name": "ImmutabilityPolicyExpiresOn", - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." - }, - "x-ms-immutability-policy-mode": { - "x-ms-client-name": "ImmutabilityPolicyMode", - "type": "string", - "enum": [ - "Mutable", - "Unlocked", - "Locked" - ], - "x-ms-enum": { - "name": "BlobImmutabilityPolicyMode", - "modelAsString": false - }, - "description": "Indicates immutability policy mode." - }, - "x-ms-legal-hold": { - "x-ms-client-name": "LegalHold", - "type": "boolean", - "description": "Indicates if a legal hold is present on the blob." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "delete": { - "tags": [ - "blob" + } + }, + "/{containerName}/{blob}?comp=page&update": { + "put": { + "operationId": "PageBlob_UploadPages", + "description": "The Upload Pages operation writes a range of pages to a page blob", + "consumes": [ + "application/octet-stream" ], - "operationId": "Blob_Delete", - "description": "If the storage account's soft delete feature is disabled then, when a blob is deleted, it is permanently removed from the storage account. If the storage account's soft delete feature is enabled, then, when a blob is deleted, it is marked for deletion and becomes inaccessible immediately. However, the blob service retains the blob or snapshot for the number of days specified by the DeleteRetentionPolicy section of [Storage service properties] (Set-Blob-Service-Properties.md). After the specified number of days has passed, the blob's data is permanently removed from the storage account. Note that you continue to be charged for the soft-deleted blob's storage until it is permanently removed. Use the List Blobs API and specify the \"include=deleted\" query parameter to discover which blobs and snapshots have been soft deleted. You can then use the Undelete Blob API to restore a soft-deleted blob. All other operations on a soft-deleted blob or snapshot causes the service to return an HTTP status code of 404 (ResourceNotFound).", "parameters": [ { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/VersionId" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/Timeout" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/DeleteSnapshots" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentMD5" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentCrc64" }, { - "$ref": "#/parameters/IfMatch" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "range" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/BlobDeleteType" - } - ], - "responses": { - "202": { - "description": "The delete request was accepted and the blob will be deleted.", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - } - ] - }, - "/{containerName}/{blob}?PageBlob": { - "put": { - "tags": [ - "blob" - ], - "operationId": "PageBlob_Create", - "description": "The Create operation creates a new page blob.", - "consumes": [ - "application/octet-stream" - ], - "parameters": [ - { - "$ref": "#/parameters/Timeout" + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/ContentLength" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" + "name": "x-ms-if-sequence-number-le", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" }, { - "$ref": "#/parameters/BlobContentType" + "name": "x-ms-if-sequence-number-lt", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThan" }, { - "$ref": "#/parameters/BlobContentEncoding" + "name": "x-ms-if-sequence-number-eq", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has the specified sequence number.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberEqualTo" }, { - "$ref": "#/parameters/BlobContentLanguage" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/BlobContentMD5" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/BlobCacheControl" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/Metadata" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/BlobContentDisposition" + "name": "x-ms-structured-body", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the message schema version and properties.", + "required": false, + "type": "string", + "x-ms-client-name": "structuredBodyType" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "x-ms-structured-content-length", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "structuredContentLength" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/IfTags" - }, - { - "$ref": "#/parameters/BlobContentLengthRequired" - }, - { - "$ref": "#/parameters/BlobSequenceNumber" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - }, - { - "$ref": "#/parameters/BlobTagsHeader" - }, - { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" - }, - { - "$ref": "#/parameters/ImmutabilityPolicyMode" - }, - { - "$ref": "#/parameters/LegalHoldOptional" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { "201": { - "description": "The blob was created.", + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "Content-MD5": { + "type": "string", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "Content-MD5": { - "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-content-crc64": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", + "x-ms-encryption-scope": { "type": "string", - "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "Date": { + "x-ms-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", "type": "boolean", "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-structured-body": { "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "x-ms-blob-type", - "x-ms-client-name": "blobType", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Specifies the type of blob to create: block blob, page blob, or append blob.", - "type": "string", - "enum": [ - "PageBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?AppendBlob": { + "/{containerName}/{blob}?comp=page&clear": { "put": { - "tags": [ - "blob" - ], - "operationId": "AppendBlob_Create", - "description": "The Create Append Blob operation creates a new append blob.", - "consumes": [ - "application/octet-stream" - ], + "operationId": "PageBlob_ClearPages", + "description": "The Clear Pages operation clears a range of pages from a page blob", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/BlobContentMD5" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/BlobCacheControl" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/Metadata" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/BlobContentDisposition" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/EncryptionKey" + "name": "x-ms-range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "range" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-if-sequence-number-le", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-if-sequence-number-lt", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThan" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-if-sequence-number-eq", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has the specified sequence number.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberEqualTo" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/BlobTagsHeader" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/ImmutabilityPolicyMode" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/LegalHoldOptional" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "201": { - "description": "The blob was created.", + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, "Content-MD5": { "type": "string", - "format": "byte", "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Date": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "ETag": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Last-Modified": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", - "type": "string", - "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." }, - "Date": { + "x-ms-client-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", + "x-ms-content-crc64": { "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-request-id": { "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "x-ms-blob-type", - "x-ms-client-name": "blobType", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Specifies the type of blob to create: block blob, page blob, or append blob.", - "type": "string", - "enum": [ - "AppendBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?BlockBlob": { + "/{containerName}/{blob}?comp=page&update&fromUrl": { "put": { - "tags": [ - "blob" - ], - "operationId": "BlockBlob_Upload", - "description": "The Upload Block Blob operation updates the content of an existing block blob. Updating an existing block blob overwrites any existing metadata on the blob. Partial updates are not supported with Put Blob; the content of the existing blob is overwritten with the content of the new blob. To perform a partial update of the content of a block blob, use the Put Block List operation.", - "consumes": [ - "application/octet-stream" - ], + "operationId": "PageBlob_UploadPagesFromUrl", + "description": "The Upload Pages operation writes a range of pages to a page blob where the contents are read from a URL.", "parameters": [ { - "$ref": "#/parameters/Body" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ContentMD5" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/ContentLength" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobContentType" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/BlobContentEncoding" + "name": "x-ms-copy-source", + "in": "header", + "description": "Specify a URL to the copy source.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceUrl" }, { - "$ref": "#/parameters/BlobContentLanguage" + "name": "x-ms-source-range", + "in": "header", + "description": "Bytes of source data in the specified range. The length of this range should match the ContentLength header and x-ms-range/Range destination range header.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceRange" }, { - "$ref": "#/parameters/BlobContentMD5" + "name": "x-ms-source-content-md5", + "in": "header", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceContentMd5" }, { - "$ref": "#/parameters/BlobCacheControl" + "name": "x-ms-source-content-crc64", + "in": "header", + "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "sourceContentCrc64" }, { - "$ref": "#/parameters/Metadata" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/BlobContentDisposition" + "name": "x-ms-range", + "in": "header", + "description": "Bytes of source data in the specified range. The length of this range should match the ContentLength header and x-ms-range/Range destination range header.", + "required": true, + "type": "string", + "x-ms-client-name": "range" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/AccessTierOptional" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-if-sequence-number-le", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-if-sequence-number-lt", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThan" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-if-sequence-number-eq", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has the specified sequence number.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberEqualTo" }, { - "$ref": "#/parameters/IfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfTags" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/BlobTagsHeader" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/ImmutabilityPolicyMode" + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "$ref": "#/parameters/LegalHoldOptional" + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" }, { - "$ref": "#/parameters/ContentCrc64" + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" }, { - "$ref": "#/parameters/StructuredBodyPut" + "name": "x-ms-copy-source-authorization", + "in": "header", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceAuthorization" }, { - "$ref": "#/parameters/StructuredContentLength" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "201": { - "description": "The blob was updated.", + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, "Content-MD5": { "type": "string", - "format": "byte", "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Date": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "ETag": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Last-Modified": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", - "type": "string", - "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." }, - "Date": { + "x-ms-client-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + "x-ms-content-crc64": { + "type": "string", + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", "type": "string", "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "x-ms-structured-body": { - "x-ms-client-name": "StructuredBodyType", + "x-ms-request-id": { "type": "string", - "description": "Indicates the structured message body was accepted and mirrors back the message schema version and properties." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "x-ms-blob-type", - "x-ms-client-name": "blobType", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Specifies the type of blob to create: block blob, page blob, or append blob.", - "type": "string", - "enum": [ - "BlockBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?BlockBlob&fromUrl": { - "put": { - "tags": [ - "blob" - ], - "operationId": "BlockBlob_PutBlobFromUrl", - "description": "The Put Blob from URL operation creates a new Block Blob where the contents of the blob are read from a given URL. This API is supported beginning with the 2020-04-08 version. Partial updates are not supported with Put Blob from URL; the content of an existing blob is overwritten with the content of the new blob. To perform partial updates to a block blob’s contents using a source URL, use the Put Block from URL API in conjunction with Put Block List.", - "consumes": [ - "application/octet-stream" + "/{containerName}/{blob}?comp=pagelist": { + "get": { + "operationId": "PageBlob_GetPageRanges", + "description": "The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob.", + "produces": [ + "application/xml", + "application/json" ], "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ContentMD5" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/BlobContentType" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/BlobContentEncoding" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobContentLanguage" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/BlobContentMD5" + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/BlobCacheControl" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/Metadata" + "name": "x-ms-range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "range" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/BlobContentDisposition" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/EncryptionKey" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/AccessTierOptional" + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=pagelist&diff": { + "get": { + "operationId": "PageBlob_GetPageRangesDiff", + "description": "The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob or snapshot of a page blob.", + "produces": [ + "application/xml", + "application/json" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/IfMatch" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/IfTags" + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/SourceIfUnmodifiedSince" + "name": "prevsnapshot", + "in": "query", + "description": "Optional in version 2015-07-08 and newer. The prevsnapshot parameter is a DateTime value that specifies that the response will contain only pages that were changed between target blob and previous snapshot. Changed pages include both updated and cleared pages. The target blob may be a snapshot, as long as the snapshot specified by prevsnapshot is the older of the two. Note that incremental snapshots are currently supported only for blobs created on or after January 1, 2016.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/SourceIfMatch" + "name": "x-ms-previous-snapshot-url", + "in": "header", + "description": "Optional. This header is only supported in service versions 2019-04-19 and after and specifies the URL of a previous snapshot of the target blob. The response will only contain pages that were changed between the target blob and its previous snapshot.", + "required": false, + "type": "string", + "x-ms-client-name": "prevSnapshotUrl" }, { - "$ref": "#/parameters/SourceIfNoneMatch" + "name": "x-ms-range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "range" }, { - "$ref": "#/parameters/SourceIfTags" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/SourceContentMD5" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/BlobTagsHeader" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/CopySource" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/CopySourceBlobProperties" + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/CopySourceAuthorization" + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 }, { - "$ref": "#/parameters/CopySourceTags" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The blob was updated.", + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "Content-MD5": { - "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", - "type": "string", - "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." - }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "x-ms-blob-type", - "x-ms-client-name": "blobType", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Specifies the type of blob to create: block blob, page blob, or append blob.", - "type": "string", - "enum": [ - "BlockBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?comp=undelete": { + "/{containerName}/{blob}?comp=properties&Resize": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_Undelete", - "description": "Undelete a blob that was previously soft deleted", + "operationId": "PageBlob_Resize", + "description": "The Resize operation increases the size of the page blob to the specified size.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "The blob was undeleted successfully.", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated." - } - } + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "undelete" - ] - } - ] - }, - "/{containerName}/{blob}?comp=expiry": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetExpiry", - "description": "Sets the time a blob will expire and be deleted.", - "parameters": [ + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + }, { - "$ref": "#/parameters/Timeout" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/BlobExpiryOptions" + "name": "x-ms-blob-content-length", + "in": "header", + "description": "This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobContentLength" }, { - "$ref": "#/parameters/BlobExpiryTime" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The blob expiry was set successfully.", + "description": "The request has succeeded.", "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "expiry" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=properties&SetHTTPHeaders": { + "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetHTTPHeaders", - "description": "The Set HTTP Headers operation sets system properties on the blob", + "operationId": "PageBlob_UpdateSequenceNumber", + "description": "The Update Sequence Number operation sets the blob's sequence number. The operation will fail if the specified sequence number is less than the current sequence number of the blob.", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/BlobContentType" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/BlobContentMD5" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobContentEncoding" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/BlobContentLanguage" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/IfModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/BlobContentDisposition" + "name": "x-ms-sequence-number-action", + "in": "header", + "description": "Required if the x-ms-blob-sequence-number header is set for the request. This property applies to page blobs only. This property indicates how the service should modify the blob's sequence number", + "required": true, + "type": "string", + "enum": [ + "increment", + "max", + "update" + ], + "x-ms-enum": { + "name": "SequenceNumberActionType", + "modelAsString": true, + "values": [ + { + "name": "Increment", + "value": "increment", + "description": "Increment the sequence number." + }, + { + "name": "Max", + "value": "max", + "description": "Set the maximum for the sequence number." + }, + { + "name": "Update", + "value": "update", + "description": "Update the sequence number." + } + ] + }, + "x-ms-client-name": "sequenceNumberAction" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-blob-sequence-number", + "in": "header", + "description": "Set for page blobs only. The sequence number is a user-controlled value that you can use to track requests. The value of the sequence number must be between 0 and 2^63 - 1.", + "required": false, + "type": "integer", + "format": "int64", + "default": 0, + "x-ms-client-name": "blobSequenceNumber" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The properties were set successfully.", + "description": "The request has succeeded.", "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", "type": "integer", "format": "int64", - "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "properties" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=immutabilityPolicies": { + "/{containerName}/{blob}?comp=incrementalcopy": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetImmutabilityPolicy", - "description": "The Set Immutability Policy operation sets the immutability policy on the blob", + "operationId": "PageBlob_CopyIncremental", + "description": "The Copy Incremental operation copies a snapshot of the source page blob to a destination page blob. The snapshot is copied such that only the differential changes between the previously copied snapshot are transferred to the destination. The copied snapshots are complete copies of the original snapshot and can be read or copied from as usual. This API is supported since REST version 2016-05-31.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/ImmutabilityPolicyMode" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/Snapshot" + "name": "x-ms-copy-source", + "in": "header", + "description": "Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature.", + "required": true, + "type": "string", + "x-ms-client-name": "copySource" }, { - "$ref": "#/parameters/VersionId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The immutability policy was successfully set.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Date": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "ETag": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Last-Modified": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "Date": { + "x-ms-client-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-immutability-policy-until-date": { - "x-ms-client-name": "ImmutabilityPolicyExpiry", + "x-ms-copy-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "Indicates the time the immutability policy will expire." + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." }, - "x-ms-immutability-policy-mode": { - "x-ms-client-name": "ImmutabilityPolicyMode", + "x-ms-copy-status": { "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", "enum": [ - "Mutable", - "Unlocked", - "Locked" + "pending", + "success", + "failed", + "aborted" ], "x-ms-enum": { - "name": "BlobImmutabilityPolicyMode", - "modelAsString": false - }, - "description": "Indicates immutability policy mode." + "name": "CopyStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "delete": { - "tags": [ - "blob" - ], - "operationId": "Blob_DeleteImmutabilityPolicy", - "description": "The Delete Immutability Policy operation deletes the immutability policy on the blob", + } + }, + "/{containerName}/{blob}?AppendBlob": { + "put": { + "operationId": "AppendBlob_Create", + "description": "The Create operation creates a new append blob.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/Snapshot" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/VersionId" - } - ], - "responses": { - "200": { - "description": "The delete immutability policy request was accepted and the immutability policy will be deleted.", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "immutabilityPolicies" - ] - } - ] - }, - "/{containerName}/{blob}?comp=legalhold": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetLegalHold", - "description": "The Set Legal Hold operation sets a legal hold on the blob.", - "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" }, { - "$ref": "#/parameters/LegalHoldRequired" + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" }, { - "$ref": "#/parameters/Snapshot" + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "blobContentMd5" }, { - "$ref": "#/parameters/VersionId" - } - ], - "responses": { - "200": { - "description": "The legal hold was successfully set on the blob.", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-legal-hold": { - "x-ms-client-name": "LegalHold", - "type": "boolean", - "description": "Indicates if the blob has a legal hold." - } - } + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "legalhold" - ] - } - ] - }, - "/{containerName}/{blob}?comp=metadata": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetMetadata", - "description": "The Set Blob Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs", - "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/Metadata" + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/EncryptionKey" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/EncryptionScope" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-blob-type", + "in": "header", + "description": "The type of the blob.", + "required": true, + "type": "string", + "enum": [ + "AppendBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The metadata was set successfully.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "Content-MD5": { + "type": "string", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", + "x-ms-encryption-scope": { "type": "string", - "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "Date": { + "x-ms-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", "type": "boolean", "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the metadata. This header is only returned when the metadata was encrypted with a customer-provided key." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-version-id": { "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "metadata" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=lease&acquire": { + "/{containerName}/{blob}?comp=appendblock": { "put": { - "tags": [ - "blob" + "operationId": "AppendBlob_AppendBlock", + "description": "The Append Block operation commits a new block of data to the end of an append blob.", + "consumes": [ + "application/octet-stream" ], - "operationId": "Blob_AcquireLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/LeaseDuration" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ProposedLeaseIdOptional" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/IfMatch" + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentMD5" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentCrc64" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-blob-condition-maxsize", + "in": "header", + "description": "Optional conditional header. The max length in bytes permitted for the append blob. If the Append Block operation would cause the blob to exceed that limit or if the blob size is already greater than the value specified in this header, the request will fail with MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed).", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "maxSize" }, { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "201": { - "description": "The Acquire operation completed successfully.", - "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "x-ms-lease-id": { - "x-ms-client-name": "LeaseId", - "type": "string", - "description": "Uniquely identifies a blobs' lease" - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } + "name": "x-ms-blob-condition-appendpos", + "in": "header", + "description": "Optional conditional header, used only for the Append Block operation. A number indicating the byte offset to compare. Append Block will succeed only if the append position is equal to this number. If it is not, the request will fail with the AppendPositionConditionNotMet error (HTTP status code 412 - Precondition Failed).", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "lease" - ] - }, - { - "name": "x-ms-lease-action", - "x-ms-client-name": "action", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "acquire" - ], - "x-ms-enum": { - "name": "LeaseAction", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Describes what lease action to take." - } - ] - }, - "/{containerName}/{blob}?comp=lease&release": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_ReleaseLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", - "parameters": [ + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, { - "$ref": "#/parameters/Timeout" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/LeaseIdRequired" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-structured-body", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the message schema version and properties.", + "required": false, + "type": "string", + "x-ms-client-name": "structuredBodyType" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-structured-content-length", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "structuredContentLength" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { - "200": { - "description": "The Release operation completed successfully.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "Content-MD5": { + "type": "string", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-append-offset": { + "type": "string", + "description": "This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes." + }, + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-content-crc64": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "Date": { + "x-ms-encryption-scope": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-structured-body": { + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "lease" - ] - }, - { - "name": "x-ms-lease-action", - "x-ms-client-name": "action", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "release" - ], - "x-ms-enum": { - "name": "LeaseAction", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Describes what lease action to take." - } - ] + } }, - "/{containerName}/{blob}?comp=lease&renew": { + "/{containerName}/{blob}?comp=appendblock&fromUrl": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_RenewLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", + "operationId": "AppendBlob_AppendBlockFromUrl", + "description": "The Append Block From URL operation creates a new block to be committed as part of an append blob where the contents are read from a URL.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/LeaseIdRequired" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-copy-source", + "in": "header", + "description": "Specify a URL to the copy source.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceUrl" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-source-range", + "in": "header", + "description": "Bytes of source data in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceRange" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-source-content-md5", + "in": "header", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceContentMd5" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-source-content-crc64", + "in": "header", + "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "sourceContentCrc64" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "The Renew operation completed successfully.", - "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "x-ms-lease-id": { - "x-ms-client-name": "LeaseId", - "type": "string", - "description": "Uniquely identifies a blobs' lease" - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } + { + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentMD5" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "lease" - ] - }, - { - "name": "x-ms-lease-action", - "x-ms-client-name": "action", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "renew" - ], - "x-ms-enum": { - "name": "LeaseAction", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Describes what lease action to take." - } - ] - }, - "/{containerName}/{blob}?comp=lease&change": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_ChangeLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", - "parameters": [ + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-condition-maxsize", + "in": "header", + "description": "Optional conditional header. The max length in bytes permitted for the append blob. If the Append Block operation would cause the blob to exceed that limit or if the blob size is already greater than the value specified in this header, the request will fail with MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed).", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "maxSize" + }, { - "$ref": "#/parameters/Timeout" + "name": "x-ms-blob-condition-appendpos", + "in": "header", + "description": "Optional conditional header, used only for the Append Block operation. A number indicating the byte offset to compare. Append Block will succeed only if the append position is equal to this number. If it is not, the request will fail with the AppendPositionConditionNotMet error (HTTP status code 412 - Precondition Failed).", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" }, { - "$ref": "#/parameters/LeaseIdRequired" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/ProposedLeaseIdRequired" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" + }, + { + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-copy-source-authorization", + "in": "header", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceAuthorization" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The Change operation completed successfully.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "Content-MD5": { + "type": "string", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-append-offset": { + "type": "string", + "description": "This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes." + }, + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-content-crc64": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-lease-id": { - "x-ms-client-name": "LeaseId", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "Uniquely identifies a blobs' lease" + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-encryption-scope": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "Date": { + "x-ms-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "lease" - ] - }, - { - "name": "x-ms-lease-action", - "x-ms-client-name": "action", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "change" - ], - "x-ms-enum": { - "name": "LeaseAction", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Describes what lease action to take." - } - ] + } }, - "/{containerName}/{blob}?comp=lease&break": { + "/{containerName}/{blob}?comp=seal": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_BreakLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", + "operationId": "AppendBlob_Seal", + "description": "The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version 2019-12-12 version or later.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/LeaseBreakPeriod" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfTags" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-blob-condition-appendpos", + "in": "header", + "description": "Optional conditional header, used only for the Append Block operation. A number indicating the byte offset to compare. Append Block will succeed only if the append position is equal to this number. If it is not, the request will fail with the AppendPositionConditionNotMet error (HTTP status code 412 - Precondition Failed).", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "202": { - "description": "The Break operation completed successfully.", + "200": { + "description": "The request has succeeded.", "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-lease-time": { - "x-ms-client-name": "LeaseTime", - "type": "integer", - "description": "Approximate time remaining in the lease period, in seconds." + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "lease" - ] - }, - { - "name": "x-ms-lease-action", - "x-ms-client-name": "action", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "break" - ], - "x-ms-enum": { - "name": "LeaseAction", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Describes what lease action to take." - } - ] + } }, - "/{containerName}/{blob}?comp=snapshot": { + "/{containerName}/{blob}?BlockBlob": { "put": { - "tags": [ - "blob" + "operationId": "BlockBlob_Upload", + "description": "The Upload Block Blob operation updates the content of an existing block blob. Updating an existing block blob overwrites any existing metadata on the blob. Partial updates are not supported with Put Blob; the content of the existing blob is overwritten with the content of the new blob. To perform a partial update of the content of a block blob, use the Put Block List operation.", + "consumes": [ + "application/octet-stream" ], - "operationId": "Blob_CreateSnapshot", - "description": "The Create Snapshot operation creates a read-only snapshot of a blob", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/Metadata" + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/EncryptionScope" + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentMD5" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "blobContentMd5" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "201": { - "description": "The snaptshot was taken successfully.", - "headers": { - "x-ms-snapshot": { - "x-ms-client-name": "Snapshot", - "type": "string", - "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", - "type": "string", - "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "True if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise. For a snapshot request, this header is set to true when metadata was provided in the request and encrypted with a customer-provided key." - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "snapshot" - ] - } - ] - }, - "/{containerName}/{blob}?comp=copy": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_StartCopyFromURL", - "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/AccessTierOptional" + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" }, { - "$ref": "#/parameters/RehydratePriority" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/SourceIfUnmodifiedSince" + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/SourceIfMatch" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/SourceIfNoneMatch" + "name": "x-ms-access-tier", + "in": "header", + "description": "The tier to be set on the blob.", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" }, { - "$ref": "#/parameters/SourceIfTags" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" }, { - "$ref": "#/parameters/CopySource" + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentCrc64" }, { - "$ref": "#/parameters/BlobTagsHeader" + "name": "x-ms-structured-body", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the message schema version and properties.", + "required": false, + "type": "string", + "x-ms-client-name": "structuredBodyType" }, { - "$ref": "#/parameters/SealBlob" + "name": "x-ms-structured-content-length", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "structuredContentLength" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "name": "x-ms-blob-type", + "in": "header", + "description": "The type of the blob.", + "required": true, + "type": "string", + "enum": [ + "BlockBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" }, { - "$ref": "#/parameters/ImmutabilityPolicyMode" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/LegalHoldOptional" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { - "202": { - "description": "The copy blob has been accepted with the specified copy status.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "Content-MD5": { + "type": "string", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-encryption-scope": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", + "x-ms-request-id": { "type": "string", - "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." }, - "x-ms-copy-id": { - "x-ms-client-name": "CopyId", + "x-ms-structured-body": { "type": "string", - "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." }, - "x-ms-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", + "x-ms-version-id": { "type": "string", - "enum": [ - "pending", - "success", - "aborted", - "failed" - ], - "x-ms-enum": { - "name": "CopyStatusType", - "modelAsString": false - } + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - } - ] + } }, - "/{containerName}/{blob}?comp=copy&sync": { + "/{containerName}/{blob}?BlockBlob&fromUrl": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_CopyFromURL", - "description": "The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return a response until the copy is complete.", + "operationId": "BlockBlob_PutBlobFromUrl", + "description": "The Put Blob from URL operation creates a new Block Blob where the contents of the blob are read from a given URL. This API is supported beginning with the 2020-04-08 version. Partial updates are not supported with Put Blob from URL; the content of an existing blob is overwritten with the content of the new blob. To perform partial updates to a block blob’s contents using a source URL, use the Put Block from URL API in conjunction with Put Block List.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentMD5" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" + }, + { + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" + }, + { + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" + }, + { + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "blobContentMd5" + }, + { + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" }, { - "$ref": "#/parameters/Metadata" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/AccessTierOptional" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/SourceIfUnmodifiedSince" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/SourceIfMatch" + "name": "x-ms-access-tier", + "in": "header", + "description": "The tier to be set on the blob.", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" }, { - "$ref": "#/parameters/SourceIfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/CopySource" + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-source-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfTags" }, { - "$ref": "#/parameters/SourceContentMD5" + "name": "x-ms-source-content-md5", + "in": "header", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceContentMd5" }, { - "$ref": "#/parameters/BlobTagsHeader" + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "name": "x-ms-copy-source", + "in": "header", + "description": "Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature.", + "required": true, + "type": "string", + "x-ms-client-name": "copySource" }, { - "$ref": "#/parameters/ImmutabilityPolicyMode" + "name": "x-ms-copy-source-blob-properties", + "in": "header", + "description": "Optional, default is true. Indicates if properties from the source blob should be copied.", + "required": false, + "type": "boolean", + "x-ms-client-name": "copySourceBlobProperties" }, { - "$ref": "#/parameters/LegalHoldOptional" + "name": "x-ms-copy-source-authorization", + "in": "header", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceAuthorization" }, { - "$ref": "#/parameters/CopySourceAuthorization" + "name": "x-ms-copy-source-tags", + "in": "header", + "description": "Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceTags" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "x-ms-blob-type", + "in": "header", + "description": "The type of the blob.", + "required": true, + "type": "string", + "enum": [ + "BlockBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" }, { - "$ref": "#/parameters/CopySourceTags" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "202": { - "description": "The copy has completed.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "ETag": { + "Content-MD5": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "Last-Modified": { + "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "ETag": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Last-Modified": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-client-request-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "Date": { + "x-ms-encryption-scope": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "x-ms-copy-id": { - "x-ms-client-name": "CopyId", + "x-ms-request-id": { "type": "string", - "description": "String identifier for this copy operation." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "x-ms-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", - "type": "string", - "enum": [ - "success" - ], - "x-ms-enum": { - "name": "SyncCopyStatusType", - "modelAsString": false - } + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." }, - "Content-MD5": { + "x-ms-version-id": { "type": "string", - "format": "byte", - "description": "This response header is returned so that the client can check for the integrity of the copied content. This header is only returned if the source content MD5 was specified." - }, - "x-ms-content-crc64": { - "type": "string", - "format": "byte", - "description": "This response header is returned so that the client can check for the integrity of the copied content." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", - "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "x-ms-requires-sync", - "description": "This header indicates that this is a synchronous Copy Blob From URL instead of a Asynchronous Copy Blob.", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "true" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=copy©id": { + "/{containerName}/{blob}?comp=block": { "put": { - "tags": [ - "blob" + "operationId": "BlockBlob_StageBlock", + "description": "The Stage Block operation creates a new block to be committed as part of a blob", + "consumes": [ + "application/octet-stream" ], - "operationId": "Blob_AbortCopyFromURL", - "description": "The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination blob with zero length and full metadata.", "parameters": [ { - "$ref": "#/parameters/CopyId" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/Timeout" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "blockid", + "in": "query", + "description": "A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal to 64 bytes in size. For a given blob, the length of the value specified for the blockid parameter must be the same size for each block.", + "required": true, + "type": "string", + "x-ms-client-name": "blockId" }, { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "204": { - "description": "The delete request was accepted and the blob will be deleted.", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "copy" - ] - }, - { - "name": "x-ms-copy-action", - "description": "Copy action.", - "x-ms-client-name": "copyActionAbortConstant", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "abort" - ], - "x-ms-parameter-location": "method" - } - ] - }, - "/{containerName}/{blob}?comp=tier": { - "put": { - "tags": [ - "blobs" - ], - "operationId": "Blob_SetTier", - "description": "The Set Tier operation sets the tier on a blob. The operation is allowed on a page blob in a premium storage account and on a block blob in a blob storage account (locally redundant storage only). A premium page blob's tier determines the allowed size, IOPS, and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive storage type. This operation does not update the blob's ETag.", - "parameters": [ { - "$ref": "#/parameters/Snapshot" + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentMD5" }, { - "$ref": "#/parameters/VersionId" + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentCrc64" }, { - "$ref": "#/parameters/Timeout" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/AccessTierRequired" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/RehydratePriority" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/IfTags" - } - ], - "responses": { - "200": { - "description": "The new tier will take effect immediately.", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and newer." - } - } - }, - "202": { - "description": "The transition to the new tier is pending.", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and newer." - } - } + "name": "x-ms-structured-body", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the message schema version and properties.", + "required": false, + "type": "string", + "x-ms-client-name": "structuredBodyType" }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "tier" - ] - } - ] - }, - "/{containerName}/{blob}?restype=account&comp=properties&blob": { - "get": { - "tags": [ - "blob" - ], - "operationId": "Blob_GetAccountInfo", - "description": "Returns the sku name and account kind ", - "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-structured-content-length", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "structuredContentLength" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { - "200": { - "description": "Success (OK)", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Content-MD5": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Date": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-client-request-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "Date": { + "x-ms-content-crc64": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-sku-name": { - "x-ms-client-name": "SkuName", + "x-ms-encryption-key-sha256": { "type": "string", - "enum": [ - "Standard_LRS", - "Standard_GRS", - "Standard_RAGRS", - "Standard_ZRS", - "Premium_LRS" - ], - "x-ms-enum": { - "name": "SkuName", - "modelAsString": false - }, - "description": "Identifies the sku name of the account" + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "x-ms-account-kind": { - "x-ms-client-name": "AccountKind", + "x-ms-encryption-scope": { "type": "string", - "enum": [ - "Storage", - "BlobStorage", - "StorageV2", - "FileStorage", - "BlockBlobStorage" - ], - "x-ms-enum": { - "name": "AccountKind", - "modelAsString": false - }, - "description": "Identifies the account kind" + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "x-ms-is-hns-enabled": { - "x-ms-client-name": "IsHierarchicalNamespaceEnabled", + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { "type": "boolean", - "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-structured-body": { + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "account" - ] - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "properties" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=block": { + "/{containerName}/{blob}?comp=block&fromURL": { "put": { - "tags": [ - "blockblob" - ], - "operationId": "BlockBlob_StageBlock", - "description": "The Stage Block operation creates a new block to be committed as part of a blob", - "consumes": [ - "application/octet-stream" - ], + "operationId": "BlockBlob_StageBlockFromUrl", + "description": "The Stage Block From URL operation creates a new block to be committed as part of a blob where the contents are read from a URL.", "parameters": [ { - "$ref": "#/parameters/BlockId" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "blockid", + "in": "query", + "description": "A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal to 64 bytes in size. For a given blob, the length of the value specified for the blockid parameter must be the same size for each block.", + "required": true, + "type": "string", + "x-ms-client-name": "blockId" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/ContentLength" + "name": "x-ms-copy-source", + "in": "header", + "description": "Specify a URL to the copy source.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceUrl" + }, + { + "name": "x-ms-source-range", + "in": "header", + "description": "Bytes of source data in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceRange" + }, + { + "name": "x-ms-source-content-md5", + "in": "header", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceContentMd5" }, { - "$ref": "#/parameters/ContentMD5" + "name": "x-ms-source-content-crc64", + "in": "header", + "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "sourceContentCrc64" }, { - "$ref": "#/parameters/ContentCrc64" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/Body" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/Timeout" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" }, { - "$ref": "#/parameters/StructuredBodyPut" + "name": "x-ms-copy-source-authorization", + "in": "header", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceAuthorization" }, { - "$ref": "#/parameters/StructuredContentLength" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "201": { - "description": "The block was created.", + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { "Content-MD5": { "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, "Date": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-content-crc64": { + "x-ms-client-request-id": { "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + "x-ms-content-crc64": { + "type": "string", + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the block was encrypted with a customer-provided key." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "x-ms-structured-body": { - "x-ms-client-name": "StructuredBodyType", + "x-ms-request-id": { "type": "string", - "description": "Indicates the structured message body was accepted and mirrors back the message schema version and properties." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "block" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=block&fromURL": { + "/{containerName}/{blob}?comp=blocklist": { "put": { - "tags": [ - "blockblob" + "operationId": "BlockBlob_CommitBlockList", + "description": "The Commit Block List operation writes a blob by specifying the list of block IDs that make up the blob. In order to be written as part of a blob, a block must have been successfully written to the server in a prior Put Block operation. You can call Put Block List to update a blob by uploading only those blocks that have changed, then committing the new and existing blocks together. You can do this by specifying whether to commit a block from the committed block list or from the uncommitted block list, or to commit the most recently uploaded version of the block, whichever list it may belong to.", + "consumes": [ + "application/xml" ], - "operationId": "BlockBlob_StageBlockFromURL", - "description": "The Stage Block operation creates a new block to be committed as part of a blob where the contents are read from a URL.", "parameters": [ { - "$ref": "#/parameters/BlockId" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/SourceUrl" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/SourceRange" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SourceContentMD5" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/SourceContentCRC64" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/Timeout" + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "blobContentMd5" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentMD5" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentCrc64" }, { - "$ref": "#/parameters/SourceIfUnmodifiedSince" + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" }, { - "$ref": "#/parameters/SourceIfMatch" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/SourceIfNoneMatch" + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/CopySourceAuthorization" - } - ], - "responses": { - "201": { - "description": "The block was created.", - "headers": { - "Content-MD5": { - "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." - }, - "x-ms-content-crc64": { - "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." - }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the block was encrypted with a customer-provided key." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", - "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "block" - ] - } - ] - }, - "/{containerName}/{blob}?comp=blocklist": { - "put": { - "tags": [ - "blockblob" - ], - "operationId": "BlockBlob_CommitBlockList", - "description": "The Commit Block List operation writes a blob by specifying the list of block IDs that make up the blob. In order to be written as part of a blob, a block must have been successfully written to the server in a prior Put Block operation. You can call Put Block List to update a blob by uploading only those blocks that have changed, then committing the new and existing blocks together. You can do this by specifying whether to commit a block from the committed block list or from the uncommitted block list, or to commit the most recently uploaded version of the block, whichever list it may belong to.", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/BlobContentMD5" - }, - { - "$ref": "#/parameters/ContentMD5" - }, - { - "$ref": "#/parameters/ContentCrc64" - }, - { - "$ref": "#/parameters/Metadata" + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/BlobContentDisposition" + "name": "x-ms-access-tier", + "in": "header", + "description": "The tier to be set on the blob.", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" }, { - "$ref": "#/parameters/EncryptionKey" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/EncryptionScope" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/AccessTierOptional" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "$ref": "#/parameters/IfTags" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "blocks", - "description": "Blob Blocks.", "in": "body", + "description": "Blob Blocks.", "required": true, "schema": { "$ref": "#/definitions/BlockLookupList" } - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - }, - { - "$ref": "#/parameters/BlobTagsHeader" - }, - { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" - }, - { - "$ref": "#/parameters/ImmutabilityPolicyMode" - }, - { - "$ref": "#/parameters/LegalHoldOptional" } ], "responses": { "201": { - "description": "The block list was recorded.", + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "ETag": { + "Content-MD5": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "Last-Modified": { + "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "Content-MD5": { + "ETag": { "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. This header refers to the content of the request, meaning, in this case, the list of blocks, and not the content of the blob itself." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-content-crc64": { + "Last-Modified": { "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. This header refers to the content of the request, meaning, in this case, the list of blocks, and not the content of the blob itself." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-content-crc64": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", + "x-ms-encryption-scope": { "type": "string", - "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "Date": { + "x-ms-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", "type": "boolean", "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-version-id": { "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, + } + }, + "/{containerName}/{blob}?comp=blocklist&_overload=getBlockList": { "get": { - "tags": [ - "blockblob" - ], "operationId": "BlockBlob_GetBlockList", - "description": "The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob", + "description": "The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob.", + "produces": [ + "application/xml", + "application/json" + ], "parameters": [ { - "$ref": "#/parameters/Snapshot" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/BlockListType" + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/Timeout" + "name": "blocklisttype", + "in": "query", + "description": "Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together.", + "required": true, + "type": "string", + "enum": [ + "committed", + "uncommitted", + "all" + ], + "x-ms-enum": { + "name": "BlockListType", + "modelAsString": true, + "values": [ + { + "name": "Committed", + "value": "committed", + "description": "The list of committed blocks." + }, + { + "name": "Uncommitted", + "value": "uncommitted", + "description": "The list of uncommitted blocks." + }, + { + "name": "All", + "value": "all", + "description": "Both lists together." + } + ] + }, + "x-ms-client-name": "listType" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The page range was written.", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/BlockList" + }, "headers": { - "Last-Modified": { + "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "Content-Type": { + "Last-Modified": { "type": "string", - "description": "The media type of the body of the response. For Get Block List this is 'application/xml'" + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, "x-ms-blob-content-length": { - "x-ms-client-name": "BlobContentLength", "type": "integer", "format": "int64", - "description": "The size of the blob in bytes." + "description": "This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } - }, - "schema": { - "$ref": "#/definitions/BlockList" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "blocklist" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=page&update": { + "/{containerName}/{blob}/?comp=copy": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_UploadPages", - "description": "The Upload Pages operation writes a range of pages to a page blob", - "consumes": [ - "application/octet-stream" - ], + "operationId": "Blob_StartCopyFromUrl", + "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", "parameters": [ { - "$ref": "#/parameters/Body" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/ContentMD5" - }, - { - "$ref": "#/parameters/ContentCrc64" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Range" - }, - { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/EncryptionScope" + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" }, { - "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" + "name": "x-ms-access-tier", + "in": "header", + "description": "The tier to be set on the blob.", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "name": "x-ms-rehydrate-priority", + "in": "header", + "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "required": false, + "type": "string", + "enum": [ + "High", + "Standard" + ], + "x-ms-enum": { + "name": "RehydratePriority", + "modelAsString": true, + "values": [ + { + "name": "High", + "value": "High", + "description": "The rehydrate priority is high." + }, + { + "name": "Standard", + "value": "Standard", + "description": "The rehydrate priority is standard." + } + ] + }, + "x-ms-client-name": "rehydratePriority" + }, + { + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" + }, + { + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" + }, + { + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" + }, + { + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" + }, + { + "name": "x-ms-source-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfTags" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfSequenceNumberLessThan" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfSequenceNumberEqualTo" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-copy-source", + "in": "header", + "description": "Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature.", + "required": true, + "type": "string", + "x-ms-client-name": "copySource" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-seal-blob", + "in": "header", + "description": "Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer.", + "required": false, + "type": "boolean", + "x-ms-client-name": "sealBlob" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" }, { - "$ref": "#/parameters/StructuredBodyPut" + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "$ref": "#/parameters/StructuredContentLength" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The page range was written.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { + "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "Content-MD5": { + "ETag": { "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-content-crc64": { + "Last-Modified": { "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." - }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for the page blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { + "x-ms-copy-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", + "x-ms-copy-status": { "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the pages. This header is only returned when the pages were encrypted with a customer-provided key." + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-request-id": { "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "x-ms-structured-body": { - "x-ms-client-name": "StructuredBodyType", + "x-ms-version-id": { "type": "string", - "description": "Indicates the structured message body was accepted and mirrors back the message schema version and properties." + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "page" - ] - }, - { - "name": "x-ms-page-write", - "x-ms-client-name": "pageWrite", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Required. You may specify one of the following options:\n - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update.\n - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and the Range header to a value that indicates the range to clear, up to maximum blob size.", - "type": "string", - "enum": [ - "update" - ], - "x-ms-enum": { - "name": "PageWriteType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?comp=page&clear": { + "/{containerName}/{blob}/?comp=copy©id": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_ClearPages", - "description": "The Clear Pages operation clears a set of pages from a page blob", - "consumes": [ - "application/octet-stream" - ], + "operationId": "Blob_AbortCopyFromUrl", + "description": "The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination blob with zero length and full metadata.", "parameters": [ { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Range" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThan" - }, - { - "$ref": "#/parameters/IfSequenceNumberEqualTo" - }, - { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfMatch" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/IfTags" + "name": "copyid", + "in": "query", + "description": "The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation.", + "required": true, + "type": "string", + "x-ms-client-name": "copyId" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The page range was cleared.", + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "Content-MD5": { - "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." - }, - "x-ms-content-crc64": { + "Date": { "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." - }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for the page blob." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "page" - ] - }, - { - "name": "x-ms-page-write", - "x-ms-client-name": "pageWrite", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Required. You may specify one of the following options:\n - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update.\n - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and the Range header to a value that indicates the range to clear, up to maximum blob size.", - "type": "string", - "enum": [ - "clear" - ], - "x-ms-enum": { - "name": "PageWriteType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?comp=page&update&fromUrl": { + "/{containerName}/{blob}/?comp=copy&sync": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_UploadPagesFromURL", - "description": "The Upload Pages operation writes a range of pages to a page blob where the contents are read from a URL", - "consumes": [ - "application/octet-stream" - ], + "operationId": "Blob_CopyFromUrl", + "description": "The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return a response until the copy is complete.", "parameters": [ { - "$ref": "#/parameters/SourceUrl" - }, - { - "$ref": "#/parameters/SourceRangeRequiredPutPageFromUrl" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/SourceContentMD5" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SourceContentCRC64" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/ContentLength" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/Timeout" + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" }, { - "$ref": "#/parameters/RangeRequiredPutPageFromUrl" + "name": "x-ms-access-tier", + "in": "header", + "description": "The tier to be set on the blob.", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" }, { - "$ref": "#/parameters/LeaseIdOptional" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfSequenceNumberLessThan" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfSequenceNumberEqualTo" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-copy-source", + "in": "header", + "description": "Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature.", + "required": true, + "type": "string", + "x-ms-client-name": "copySource" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-source-content-md5", + "in": "header", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceContentMd5" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/SourceIfUnmodifiedSince" + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" }, { - "$ref": "#/parameters/SourceIfMatch" + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "$ref": "#/parameters/SourceIfNoneMatch" + "name": "x-ms-copy-source-authorization", + "in": "header", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceAuthorization" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-copy-source-tags", + "in": "header", + "description": "Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceTags" }, { - "$ref": "#/parameters/CopySourceAuthorization" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The page range was written.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, "Content-MD5": { "type": "string", - "format": "byte", "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "x-ms-content-crc64": { + "Date": { "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for the page blob." + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Last-Modified": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-client-request-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "Date": { + "x-ms-content-crc64": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + "x-ms-copy-id": { + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", + "x-ms-copy-status": { "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } }, "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "page" - ] - }, - { - "name": "x-ms-page-write", - "x-ms-client-name": "pageWrite", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Required. You may specify one of the following options:\n - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update.\n - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and the Range header to a value that indicates the range to clear, up to maximum blob size.", - "type": "string", - "enum": [ - "update" - ], - "x-ms-enum": { - "name": "PageWriteType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?comp=pagelist": { - "get": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_GetPageRanges", - "description": "The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob", + "/{containerName}/{blob}/?comp=expiry": { + "put": { + "operationId": "Blob_SetExpiry", + "description": "Set the expiration time of a blob", "parameters": [ { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Range" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfTags" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-expiry-option", + "in": "header", + "description": "Required. Indicates mode of the expiry time", + "required": true, + "type": "string", + "enum": [ + "NeverExpire", + "RelativeToCreation", + "RelativeToNow", + "Absolute" + ], + "x-ms-enum": { + "name": "BlobExpiryOptions", + "modelAsString": true, + "values": [ + { + "name": "NeverExpire", + "value": "NeverExpire", + "description": "Never expire." + }, + { + "name": "RelativeToCreation", + "value": "RelativeToCreation", + "description": "Relative to creation time." + }, + { + "name": "RelativeToNow", + "value": "RelativeToNow", + "description": "Relative to now." + }, + { + "name": "Absolute", + "value": "Absolute", + "description": "Absolute time." + } + ] + }, + "x-ms-client-name": "expiryOptions" }, { - "$ref": "#/parameters/Marker" + "name": "x-ms-expiry-time", + "in": "header", + "description": "The time this blob will expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ExpiresOn" }, { - "$ref": "#/parameters/MaxResults" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "Information on the page blob was found.", + "description": "The request has succeeded.", "headers": { - "Last-Modified": { + "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-blob-content-length": { - "x-ms-client-name": "BlobContentLength", - "type": "integer", - "format": "int64", - "description": "The size of the blob in bytes." + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } - }, - "schema": { - "$ref": "#/definitions/PageList" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } - }, - "x-ms-pageable": { - "nextLinkName": "NextMarker" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "pagelist" - ] } - ] + } }, - "/{containerName}/{blob}?comp=pagelist&diff": { - "get": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_GetPageRangesDiff", - "description": "The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob that were changed between target blob and previous snapshot.", + "/{containerName}/{blob}/?comp=immutabilityPolicies": { + "put": { + "operationId": "Blob_SetImmutabilityPolicy", + "description": "Set the immutability policy of a blob", "parameters": [ { - "$ref": "#/parameters/Snapshot" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/Timeout" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/PrevSnapshot" + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/PrevSnapshotUrl" + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/Range" + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-immutability-policy-mode": { + "type": "string", + "description": "Indicates the immutability policy mode of the blob.", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + } + }, + "x-ms-immutability-policy-until-date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}/?comp=immutabilityPolicies&_overload=deleteImmutabilityPolicy": { + "delete": { + "operationId": "Blob_DeleteImmutabilityPolicy", + "description": "The Delete Immutability Policy operation deletes the immutability policy on the blob.", + "parameters": [ { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfTags" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ClientRequestId" + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/Marker" + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" }, { - "$ref": "#/parameters/MaxResults" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "Information on the page blob was found.", + "description": "The request has succeeded.", "headers": { - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "ETag": { + "Date": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "x-ms-blob-content-length": { - "x-ms-client-name": "BlobContentLength", - "type": "integer", - "format": "int64", - "description": "The size of the blob in bytes." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } - }, - "schema": { - "$ref": "#/definitions/PageList" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } - }, - "x-ms-pageable": { - "nextLinkName": "NextMarker" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "pagelist" - ] } - ] + } }, - "/{containerName}/{blob}?comp=properties&Resize": { + "/{containerName}/{blob}/?comp=lease&acquire": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_Resize", - "description": "Resize the Blob", + "operationId": "Blob_AcquireLease", + "description": "The Acquire Lease operation requests a new lease on a blob. The lease lock duration can be 15 to 60 seconds, or can be infinite.", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/EncryptionKey" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-lease-duration", + "in": "header", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-client-name": "duration" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-proposed-lease-id", + "in": "header", + "description": "Optional. The proposed lease ID for the container.", + "required": false, + "type": "string", + "x-ms-client-name": "proposedLeaseId" }, { - "$ref": "#/parameters/IfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfTags" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/BlobContentLengthRequired" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The Blob was resized successfully", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-lease-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "Uniquely identifies a blobs' lease" }, - "Date": { + "x-ms-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "properties" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { + "/{containerName}/{blob}/?comp=lease&break": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_UpdateSequenceNumber", - "description": "Update the sequence number of the blob", + "operationId": "Blob_BreakLease", + "description": "The Break Lease operation ends a lease and ensures that another client can't acquire a new lease until the current lease period has expired.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-lease-break-period", + "in": "header", + "description": "For a break operation, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. This break period is only used if it is shorter than the time remaining on the lease. If longer, the time remaining on the lease is used. A new lease will not be available before the break period has expired, but the lease may be held for longer than the break period. If this header does not appear with a break operation, a fixed-duration lease breaks after the remaining lease period elapses, and an infinite lease breaks immediately.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-client-name": "breakPeriod" }, { - "$ref": "#/parameters/IfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfTags" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/SequenceNumberAction" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/BlobSequenceNumber" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The sequence numbers were updated successfully.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "x-ms-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." }, - "Date": { + "x-ms-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "properties" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=incrementalcopy": { + "/{containerName}/{blob}/?comp=lease&change": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_CopyIncremental", - "description": "The Copy Incremental operation copies a snapshot of the source page blob to a destination page blob. The snapshot is copied such that only the differential changes between the previously copied snapshot are transferred to the destination. The copied snapshots are complete copies of the original snapshot and can be read or copied from as usual. This API is supported since REST version 2016-05-31.", + "operationId": "Blob_ChangeLease", + "description": "The Change Lease operation is used to change the ID of an existing lease.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-proposed-lease-id", + "in": "header", + "description": "Optional. The proposed lease ID for the container.", + "required": false, + "type": "string", + "x-ms-client-name": "proposedLeaseId" }, { - "$ref": "#/parameters/IfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfTags" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/CopySource" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "202": { - "description": "The blob was copied.", + "200": { + "description": "The request has succeeded.", "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-copy-id": { - "x-ms-client-name": "CopyId", + "x-ms-lease-id": { "type": "string", - "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + "description": "Uniquely identifies a blobs' lease" }, - "x-ms-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", + "x-ms-request-id": { "type": "string", - "enum": [ - "pending", - "success", - "aborted", - "failed" - ], - "x-ms-enum": { - "name": "CopyStatusType", - "modelAsString": false - } + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "incrementalcopy" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=appendblock": { + "/{containerName}/{blob}/?comp=lease&release": { "put": { - "tags": [ - "appendblob" - ], - "consumes": [ - "application/octet-stream" - ], - "operationId": "AppendBlob_AppendBlock", - "description": "The Append Block operation commits a new block of data to the end of an existing append blob. The Append Block operation is permitted only if the blob was created with x-ms-blob-type set to AppendBlob. Append Block is supported only on version 2015-02-21 version or later.", + "operationId": "Blob_ReleaseLease", + "description": "The Release Lease operation frees the lease if it's no longer needed, so that another client can immediately acquire a lease against the blob.", "parameters": [ { - "$ref": "#/parameters/Body" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/Timeout" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/ContentLength" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ContentMD5" + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/ContentCrc64" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/LeaseIdOptional" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/BlobConditionMaxSize" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/BlobConditionAppendPos" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}/?comp=lease&renew": { + "put": { + "operationId": "Blob_RenewLease", + "description": "The Renew Lease operation renews an existing lease.", + "parameters": [ { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/IfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfTags" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/StructuredBodyPut" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/StructuredContentLength" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The block was created.", + "200": { + "description": "The request has succeeded.", "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "Content-MD5": { - "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." - }, - "x-ms-content-crc64": { - "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, "Date": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-blob-append-offset": { - "x-ms-client-name": "BlobAppendOffset", + "ETag": { "type": "string", - "description": "This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes." - }, - "x-ms-blob-committed-block-count": { - "x-ms-client-name": "BlobCommittedBlockCount", - "type": "integer", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", + "x-ms-client-request-id": { "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the block was encrypted with a customer-provided key." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-lease-id": { "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "description": "Uniquely identifies a blobs' lease" }, - "x-ms-structured-body": { - "x-ms-client-name": "StructuredBodyType", + "x-ms-request-id": { "type": "string", - "description": "Indicates the structured message body was accepted and mirrors back the message schema version and properties." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "appendblock" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=appendblock&fromUrl": { + "/{containerName}/{blob}/?comp=legalhold": { "put": { - "tags": [ - "appendblob" - ], - "operationId": "AppendBlob_AppendBlockFromUrl", - "description": "The Append Block operation commits a new block of data to the end of an existing append blob where the contents are read from a source url. The Append Block operation is permitted only if the blob was created with x-ms-blob-type set to AppendBlob. Append Block is supported only on version 2015-02-21 version or later.", + "operationId": "Blob_SetLegalHold", + "description": "The Set Legal Hold operation sets a legal hold on the blob.", "parameters": [ { - "$ref": "#/parameters/SourceUrl" - }, - { - "$ref": "#/parameters/SourceRange" - }, - { - "$ref": "#/parameters/SourceContentMD5" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/SourceContentCRC64" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/Timeout" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/ContentLength" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ContentMD5" + "name": "x-ms-legal-hold", + "in": "header", + "description": "Required. Specifies the legal hold status to set on the blob.", + "required": true, + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}/?comp=metadata": { + "put": { + "operationId": "Blob_SetMetadata", + "description": "The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs.", + "parameters": [ { - "$ref": "#/parameters/EncryptionScope" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobConditionMaxSize" + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/BlobConditionAppendPos" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/SourceIfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/SourceIfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/SourceIfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/CopySourceAuthorization" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The block was created.", + "200": { + "description": "The request has succeeded.", "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "Content-MD5": { + "x-ms-client-request-id": { "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-content-crc64": { + "x-ms-encryption-key-sha256": { "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-blob-append-offset": { - "x-ms-client-name": "BlobAppendOffset", - "type": "string", - "description": "This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes." - }, - "x-ms-blob-committed-block-count": { - "x-ms-client-name": "BlobCommittedBlockCount", - "type": "integer", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." - }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", + "x-ms-encryption-scope": { "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the block was encrypted with a customer-provided key." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-request-id": { "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", "type": "boolean", "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "appendblock" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=seal": { + "/{containerName}/{blob}/?comp=properties&SetHTTPHeaders": { "put": { - "tags": [ - "appendblob" - ], - "operationId": "AppendBlob_Seal", - "description": "The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version 2019-12-12 version or later.", + "operationId": "Blob_SetHttpHeaders", + "description": "The Set HTTP Headers operation sets system properties on the blob.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" + }, + { + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" + }, + { + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "blobContentMd5" + }, + { + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" + }, + { + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" }, { - "$ref": "#/parameters/LeaseIdOptional" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/BlobConditionAppendPos" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The blob was sealed.", + "description": "The request has succeeded.", "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-blob-sealed": { - "x-ms-client-name": "IsSealed", - "type": "boolean", - "description": "If this blob has been sealed" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "seal" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=query": { - "post": { - "tags": [ - "blob" - ], - "operationId": "Blob_Query", - "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", + "/{containerName}/{blob}/?comp=snapshot": { + "put": { + "operationId": "Blob_CreateSnapshot", + "description": "The Create Snapshot operation creates a read-only snapshot of a blob", "parameters": [ { - "$ref": "#/parameters/QueryRequest" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/Snapshot" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/Timeout" + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/IfModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/IfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "Returns the content of the entire blob.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "x-ms-meta": { - "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" - }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." - }, - "Content-Type": { - "type": "string", - "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" - }, - "Content-Range": { + "Date": { "type": "string", - "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Content-MD5": { - "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." - }, - "Content-Encoding": { - "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" - }, - "Cache-Control": { - "type": "string", - "description": "This header is returned if it was previously specified for the blob." - }, - "Content-Disposition": { - "type": "string", - "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." - }, - "Content-Language": { - "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." - }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" - }, - "x-ms-blob-type": { - "x-ms-client-name": "BlobType", - "description": "The blob's type.", - "type": "string", - "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - }, - "x-ms-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", - "type": "string", - "format": "date-time-rfc1123", - "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." - }, - "x-ms-copy-status-description": { - "x-ms-client-name": "CopyStatusDescription", - "type": "string", - "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" - }, - "x-ms-copy-id": { - "x-ms-client-name": "CopyId", - "type": "string", - "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." - }, - "x-ms-copy-progress": { - "x-ms-client-name": "CopyProgress", - "type": "string", - "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" - }, - "x-ms-copy-source": { - "x-ms-client-name": "CopySource", - "type": "string", - "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." - }, - "x-ms-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", - "type": "string", - "enum": [ - "pending", - "success", - "aborted", - "failed" - ], - "x-ms-enum": { - "name": "CopyStatusType", - "modelAsString": false - } - }, - "x-ms-lease-duration": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", - "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false - } - }, - "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", - "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false - } + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", + "Last-Modified": { "type": "string", - "enum": [ - "locked", - "unlocked" - ], - "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false - } + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Accept-Ranges": { "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-blob-committed-block-count": { - "x-ms-client-name": "BlobCommittedBlockCount", - "type": "integer", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "x-ms-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", + "x-ms-request-server-encrypted": { "type": "boolean", - "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." - }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-snapshot": { "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." }, - "x-ms-blob-content-md5": { - "x-ms-client-name": "BlobContentMD5", + "x-ms-version-id": { "type": "string", - "format": "byte", - "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." } - }, - "schema": { - "type": "object", - "format": "file" - } - }, - "206": { - "description": "Returns the content of a specified range of the blob.", - "headers": { - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "x-ms-meta": { - "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" - }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." - }, - "Content-Type": { - "type": "string", - "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" - }, - "Content-Range": { - "type": "string", - "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Content-MD5": { - "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." - }, - "Content-Encoding": { - "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" - }, - "Cache-Control": { - "type": "string", - "description": "This header is returned if it was previously specified for the blob." - }, - "Content-Disposition": { - "type": "string", - "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." - }, - "Content-Language": { - "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." - }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" - }, - "x-ms-blob-type": { - "x-ms-client-name": "BlobType", - "description": "The blob's type.", - "type": "string", - "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - }, - "x-ms-content-crc64": { - "x-ms-client-name": "ContentCrc64", - "type": "string", - "format": "byte", - "description": "If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to true, then the request returns a crc64 for the range, as long as the range size is less than or equal to 4 MB. If both x-ms-range-get-content-crc64 and x-ms-range-get-content-md5 is specified in the same request, it will fail with 400(Bad Request)" - }, - "x-ms-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", - "type": "string", - "format": "date-time-rfc1123", - "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." - }, - "x-ms-copy-status-description": { - "x-ms-client-name": "CopyStatusDescription", - "type": "string", - "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" - }, - "x-ms-copy-id": { - "x-ms-client-name": "CopyId", - "type": "string", - "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." - }, - "x-ms-copy-progress": { - "x-ms-client-name": "CopyProgress", - "type": "string", - "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" - }, - "x-ms-copy-source": { - "x-ms-client-name": "CopySource", - "type": "string", - "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." - }, - "x-ms-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", - "type": "string", - "enum": [ - "pending", - "success", - "aborted", - "failed" - ], - "x-ms-enum": { - "name": "CopyStatusType", - "modelAsString": false - } - }, - "x-ms-lease-duration": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", - "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false - } - }, - "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", - "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false - } - }, - "x-ms-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", - "type": "string", - "enum": [ - "locked", - "unlocked" - ], - "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false - } - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-blob-committed-block-count": { - "x-ms-client-name": "BlobCommittedBlockCount", - "type": "integer", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." - }, - "x-ms-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." - }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", - "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." - }, - "x-ms-blob-content-md5": { - "x-ms-client-name": "BlobContentMD5", - "type": "string", - "format": "byte", - "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" - } - }, - "schema": { - "type": "object", - "format": "file" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "query" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=tags": { + "/{containerName}/{blob}/?comp=tags": { "get": { - "tags": [ - "blob" - ], "operationId": "Blob_GetTags", - "description": "The Get Tags operation enables users to get the tags associated with a blob.", + "description": "The Get Blob Tags operation enables users to get tags on a blob.", + "produces": [ + "application/xml", + "application/json" + ], "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/ClientRequestId" + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/Snapshot" + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" }, { - "$ref": "#/parameters/VersionId" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/LeaseIdOptional" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "Retrieved blob tags", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/BlobTags" + }, "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Date": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-client-request-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "Date": { + "x-ms-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } - }, - "schema": { - "$ref": "#/definitions/BlobTags" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, + } + }, + "/{containerName}/{blob}/?comp=tags&_overload=setTags": { "put": { - "tags": [ - "blob" - ], "operationId": "Blob_SetTags", "description": "The Set Tags operation enables users to set tags on a blob.", + "consumes": [ + "application/xml" + ], "parameters": [ { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/Timeout" + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "$ref": "#/parameters/VersionId" + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" }, { - "$ref": "#/parameters/ContentMD5" + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentMD5" }, { - "$ref": "#/parameters/ContentCrc64" + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "x-ms-client-name": "transactionalContentCrc64" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/LeaseIdOptional" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/BlobTagsBody" + "name": "tags", + "in": "body", + "description": "The blob tags.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobTags" + } } ], "responses": { "204": { - "description": "The tags were applied to the blob", + "description": "There is no content to send for this request, but the headers may be useful. ", "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Date": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-client-request-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "Date": { + "x-ms-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "tags" - ] - } - ] - } - }, - "definitions": { - "KeyInfo": { - "type": "object", - "required": [ - "Start", - "Expiry" - ], - "description": "Key information", - "properties": { - "Start": { - "description": "The date-time the key is active in ISO 8601 UTC time", - "type": "string" - }, - "Expiry": { - "description": "The date-time the key expires in ISO 8601 UTC time", - "type": "string" - } } }, - "UserDelegationKey": { - "type": "object", - "required": [ - "SignedOid", - "SignedTid", - "SignedStart", - "SignedExpiry", - "SignedService", - "SignedVersion", - "Value" - ], - "description": "A user delegation key", - "properties": { - "SignedOid": { - "description": "The Azure Active Directory object ID in GUID format.", - "type": "string" - }, - "SignedTid": { - "description": "The Azure Active Directory tenant ID in GUID format", - "type": "string" - }, - "SignedStart": { - "description": "The date-time the key is active", - "type": "string", - "format": "date-time" - }, - "SignedExpiry": { - "description": "The date-time the key expires", - "type": "string", - "format": "date-time" - }, - "SignedService": { - "description": "Abbreviation of the Azure Storage service that accepts the key", - "type": "string" - }, - "SignedVersion": { - "description": "The service version that created the key", - "type": "string" - }, - "Value": { - "description": "The key as a base64 string", - "type": "string" - } - } - }, - "PublicAccessType": { - "type": "string", - "enum": [ - "container", - "blob" - ], - "x-ms-enum": { - "name": "PublicAccessType", - "modelAsString": true - } - }, - "CopyStatus": { - "type": "string", - "enum": [ - "pending", - "success", - "aborted", - "failed" - ], - "x-ms-enum": { - "name": "CopyStatusType", - "modelAsString": false - } - }, - "LeaseDuration": { - "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false - } - }, - "LeaseState": { - "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false - } - }, - "LeaseStatus": { - "type": "string", - "enum": [ - "locked", - "unlocked" - ], - "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false - } - }, - "StorageError": { - "type": "object", - "properties": { - "Message": { - "type": "string" - } - } - }, - "AccessPolicy": { - "type": "object", - "description": "An Access policy", - "properties": { - "Start": { - "description": "the date-time the policy is active", - "type": "string", - "format": "date-time" - }, - "Expiry": { - "description": "the date-time the policy expires", - "type": "string", - "format": "date-time" - }, - "Permission": { - "description": "the permissions for the acl policy", - "type": "string" - } - } - }, - "AccessTier": { - "type": "string", - "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive", - "Premium", - "Cold" - ], - "x-ms-enum": { - "name": "AccessTier", - "modelAsString": true - } - }, - "ArchiveStatus": { - "type": "string", - "enum": [ - "rehydrate-pending-to-hot", - "rehydrate-pending-to-cool", - "rehydrate-pending-to-cold" - ], - "x-ms-enum": { - "name": "ArchiveStatus", - "modelAsString": true - } - }, - "BlobItemInternal": { - "xml": { - "name": "Blob" - }, - "description": "An Azure Storage blob", - "type": "object", - "required": [ - "Name", - "Deleted", - "Snapshot", - "Properties" - ], - "properties": { - "Name": { - "$ref": "#/definitions/BlobName" - }, - "Deleted": { - "type": "boolean" - }, - "Snapshot": { - "type": "string" - }, - "VersionId": { - "type": "string" - }, - "IsCurrentVersion": { - "type": "boolean" - }, - "Properties": { - "$ref": "#/definitions/BlobPropertiesInternal" - }, - "Metadata": { - "$ref": "#/definitions/BlobMetadata" - }, - "BlobTags": { - "$ref": "#/definitions/BlobTags" - }, - "ObjectReplicationMetadata": { - "$ref": "#/definitions/ObjectReplicationMetadata" - }, - "HasVersionsOnly": { - "type": "boolean" + "/{containerName}/{blob}/?comp=tier": { + "put": { + "operationId": "Blob_SetTier", + "description": "The Set Tier operation sets the tier on a block blob. The operation is allowed on a page blob or block blob, but not on an append blob. A block blob's tier determines Hot/Cool/Archive storage type. This operation does not update the blob's ETag.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "Indicates the tier to be set on the blob.", + "required": true, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "name": "x-ms-rehydrate-priority", + "in": "header", + "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "required": false, + "type": "string", + "enum": [ + "High", + "Standard" + ], + "x-ms-enum": { + "name": "RehydratePriority", + "modelAsString": true, + "values": [ + { + "name": "High", + "value": "High", + "description": "The rehydrate priority is high." + }, + { + "name": "Standard", + "value": "Standard", + "description": "The rehydrate priority is standard." + } + ] + }, + "x-ms-client-name": "rehydratePriority" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } } } }, - "BlobPropertiesInternal": { - "xml": { - "name": "Properties" - }, - "description": "Properties of a blob", - "type": "object", - "required": [ - "Etag", - "Last-Modified" - ], - "properties": { - "Creation-Time": { - "type": "string", - "format": "date-time-rfc1123" - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123" - }, - "Etag": { - "type": "string" - }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "Size in bytes" - }, - "Content-Type": { - "type": "string" - }, - "Content-Encoding": { - "type": "string" - }, - "Content-Language": { - "type": "string" - }, - "Content-MD5": { - "type": "string", - "format": "byte" - }, - "Content-Disposition": { - "type": "string" - }, - "Cache-Control": { - "type": "string" - }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "blobSequenceNumber", - "type": "integer", - "format": "int64" - }, - "BlobType": { - "type": "string", - "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false + "/{containerName}/{blob}/?restype=account&comp=properties&blob": { + "get": { + "operationId": "Blob_GetAccountInfo", + "description": "Returns the sku name and account kind", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-account-kind": { + "type": "string", + "description": "Identifies the account kind", + "enum": [ + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" + ], + "x-ms-enum": { + "name": "AccountKind", + "modelAsString": true, + "values": [ + { + "name": "Storage", + "value": "Storage", + "description": "The storage account is a general-purpose account." + }, + { + "name": "BlobStorage", + "value": "BlobStorage", + "description": "The storage account is a blob storage account." + }, + { + "name": "StorageV2", + "value": "StorageV2", + "description": "The storage account is a storage V2 account." + }, + { + "name": "FileStorage", + "value": "FileStorage", + "description": "The storage account is a file storage account." + }, + { + "name": "BlockBlobStorage", + "value": "BlockBlobStorage", + "description": "The storage account is a block blob storage account." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-is-hns-enabled": { + "type": "boolean", + "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-sku-name": { + "type": "string", + "description": "Identifies the sku name of the account", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": true, + "values": [ + { + "name": "StandardLRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "StandardGRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "StandardRAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "StandardZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "PremiumLRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + } + ] + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } - }, - "LeaseStatus": { - "$ref": "#/definitions/LeaseStatus" - }, - "LeaseState": { - "$ref": "#/definitions/LeaseState" - }, - "LeaseDuration": { - "$ref": "#/definitions/LeaseDuration" - }, - "CopyId": { - "type": "string" - }, - "CopyStatus": { - "$ref": "#/definitions/CopyStatus" - }, - "CopySource": { - "type": "string" - }, - "CopyProgress": { - "type": "string" - }, - "CopyCompletionTime": { - "type": "string", - "format": "date-time-rfc1123" - }, - "CopyStatusDescription": { - "type": "string" - }, - "ServerEncrypted": { - "type": "boolean" - }, - "IncrementalCopy": { - "type": "boolean" - }, - "DestinationSnapshot": { - "type": "string" - }, - "DeletedTime": { - "type": "string", - "format": "date-time-rfc1123" - }, - "RemainingRetentionDays": { - "type": "integer" - }, - "AccessTier": { - "$ref": "#/definitions/AccessTier" - }, - "AccessTierInferred": { - "type": "boolean" - }, - "ArchiveStatus": { - "$ref": "#/definitions/ArchiveStatus" - }, - "CustomerProvidedKeySha256": { - "type": "string" - }, - "EncryptionScope": { - "type": "string", - "description": "The name of the encryption scope under which the blob is encrypted." - }, - "AccessTierChangeTime": { - "type": "string", - "format": "date-time-rfc1123" - }, - "TagCount": { - "type": "integer" - }, - "Expiry-Time": { - "x-ms-client-name": "ExpiresOn", - "type": "string", - "format": "date-time-rfc1123" - }, - "Sealed": { - "x-ms-client-name": "IsSealed", - "type": "boolean" - }, - "RehydratePriority": { - "$ref": "#/definitions/RehydratePriority" - }, - "LastAccessTime": { - "x-ms-client-name": "LastAccessedOn", - "type": "string", - "format": "date-time-rfc1123" - }, - "ImmutabilityPolicyUntilDate": { - "x-ms-client-name": "ImmutabilityPolicyExpiresOn", - "type": "string", - "format": "date-time-rfc1123" - }, - "ImmutabilityPolicyMode": { - "type": "string", - "enum": [ - "Mutable", - "Unlocked", - "Locked" - ], - "x-ms-enum": { - "name": "BlobImmutabilityPolicyMode", - "modelAsString": false - } - }, - "LegalHold": { - "type": "boolean" } } }, - "ListBlobsFlatSegmentResponse": { - "xml": { - "name": "EnumerationResults" - }, - "description": "An enumeration of blobs", - "type": "object", - "required": [ - "ServiceEndpoint", - "ContainerName", - "Segment" - ], - "properties": { - "ServiceEndpoint": { - "type": "string", - "xml": { - "attribute": true + "/{containerName}/?comp=lease&restype=container&acquire": { + "put": { + "operationId": "Container_AcquireLease", + "description": "The Acquire Lease operation requests a new lease on a container. The lease lock duration can be 15 to 60 seconds, or can be infinite.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-lease-duration", + "in": "header", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-client-name": "duration" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-proposed-lease-id", + "in": "header", + "description": "Optional. The proposed lease ID for the container.", + "required": false, + "type": "string", + "x-ms-client-name": "proposedLeaseId" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } - }, - "ContainerName": { - "type": "string", - "xml": { - "attribute": true + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } - }, - "Prefix": { - "type": "string" - }, - "Marker": { - "type": "string" - }, - "MaxResults": { - "type": "integer" - }, - "Segment": { - "$ref": "#/definitions/BlobFlatListSegment" - }, - "NextMarker": { - "type": "string" } } }, - "ListBlobsHierarchySegmentResponse": { - "xml": { - "name": "EnumerationResults" - }, - "description": "An enumeration of blobs", - "type": "object", - "required": [ - "ServiceEndpoint", - "ContainerName", - "Segment" - ], - "properties": { - "ServiceEndpoint": { - "type": "string", - "xml": { - "attribute": true + "/{containerName}/?comp=lease&restype=container&break": { + "put": { + "operationId": "Container_BreakLease", + "description": "The Break Lease operation ends a lease and ensures that another client can't acquire a new lease until the current lease period has expired.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "x-ms-lease-break-period", + "in": "header", + "description": "For a break operation, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. This break period is only used if it is shorter than the time remaining on the lease. If longer, the time remaining on the lease is used. A new lease will not be available before the break period has expired, but the lease may be held for longer than the break period. If this header does not appear with a break operation, a fixed-duration lease breaks after the remaining lease period elapses, and an infinite lease breaks immediately.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-client-name": "breakPeriod" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } - }, - "ContainerName": { - "type": "string", - "xml": { - "attribute": true + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } - }, - "Prefix": { - "type": "string" - }, - "Marker": { - "type": "string" - }, - "MaxResults": { - "type": "integer" - }, - "Delimiter": { - "type": "string" - }, - "Segment": { - "$ref": "#/definitions/BlobHierarchyListSegment" - }, - "NextMarker": { - "type": "string" } } }, - "BlobFlatListSegment": { - "xml": { - "name": "Blobs" - }, - "required": [ - "BlobItems" - ], - "type": "object", - "properties": { - "BlobItems": { - "type": "array", - "items": { - "$ref": "#/definitions/BlobItemInternal" + "/{containerName}/?comp=lease&restype=container&change": { + "put": { + "operationId": "Container_ChangeLease", + "description": "The Change Lease operation is used to change the ID of an existing lease.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-proposed-lease-id", + "in": "header", + "description": "Required. The proposed lease ID for the container.", + "required": true, + "type": "string", + "x-ms-client-name": "proposedLeaseId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } } } }, - "BlobHierarchyListSegment": { - "xml": { - "name": "Blobs" - }, - "type": "object", - "required": [ - "BlobItems" - ], - "properties": { - "BlobPrefixes": { - "type": "array", - "items": { - "$ref": "#/definitions/BlobPrefix" + "/{containerName}/?comp=lease&restype=container&release": { + "put": { + "operationId": "Container_ReleaseLease", + "description": "The Release Lease operation frees the lease if it's no longer needed, so that another client can immediately acquire a lease against the container.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } - }, - "BlobItems": { - "type": "array", - "items": { - "$ref": "#/definitions/BlobItemInternal" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } } } }, - "BlobPrefix": { - "type": "object", - "required": [ - "Name" - ], - "properties": { - "Name": { - "$ref": "#/definitions/BlobName" - } - } - }, - "BlobName": { - "type": "object", - "properties": { - "Encoded": { - "xml": { - "attribute": true, - "name": "Encoded" + "/{containerName}/?comp=lease&restype=container&renew": { + "put": { + "operationId": "Container_RenewLease", + "description": "The Renew Lease operation renews an existing lease.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, - "type": "boolean", - "description": "Indicates if the blob name is encoded." - }, - "content": { - "xml": { - "x-ms-text": true + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, - "type": "string", - "description": "The name of the blob." + { + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } } } }, - "BlobTag": { - "xml": { - "name": "Tag" - }, - "type": "object", - "required": [ - "Key", - "Value" - ], - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" + "/{containerName}/?restype=account&comp=properties": { + "get": { + "operationId": "Container_GetAccountInfo", + "description": "Returns the sku name and account kind", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-account-kind": { + "type": "string", + "description": "Identifies the account kind", + "enum": [ + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" + ], + "x-ms-enum": { + "name": "AccountKind", + "modelAsString": true, + "values": [ + { + "name": "Storage", + "value": "Storage", + "description": "The storage account is a general-purpose account." + }, + { + "name": "BlobStorage", + "value": "BlobStorage", + "description": "The storage account is a blob storage account." + }, + { + "name": "StorageV2", + "value": "StorageV2", + "description": "The storage account is a storage V2 account." + }, + { + "name": "FileStorage", + "value": "FileStorage", + "description": "The storage account is a file storage account." + }, + { + "name": "BlockBlobStorage", + "value": "BlockBlobStorage", + "description": "The storage account is a block blob storage account." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-is-hns-enabled": { + "type": "boolean", + "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-sku-name": { + "type": "string", + "description": "Identifies the sku name of the account", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": true, + "values": [ + { + "name": "StandardLRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "StandardGRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "StandardRAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "StandardZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "PremiumLRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + } + ] + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } } } }, - "BlobTags": { - "type": "object", - "xml": { - "name": "Tags" - }, - "description": "Blob tags", - "required": [ - "BlobTagSet" - ], - "properties": { - "BlobTagSet": { - "xml": { - "wrapped": true, - "name": "TagSet" + "/{containerName}/?restype=container&comp=acl": { + "get": { + "operationId": "Container_GetAccessPolicy", + "description": "gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly.", + "produces": [ + "application/xml", + "application/json" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-public-access": { + "type": "string", + "description": "The public access setting for the container.", + "enum": [ + "blob", + "container" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } }, - "type": "array", - "items": { - "$ref": "#/definitions/BlobTag" + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } } } }, - "Block": { - "type": "object", - "required": [ - "Name", - "Size" - ], - "description": "Represents a single block in a block blob. It describes the block's ID and size.", - "properties": { - "Name": { - "description": "The base64 encoded block ID.", - "type": "string" - }, - "Size": { - "description": "The block size in bytes.", - "type": "integer", - "format": "int64" - } - } - }, - "BlockList": { - "type": "object", - "properties": { - "CommittedBlocks": { - "xml": { - "wrapped": true + "/{containerName}/?restype=container&comp=acl&_overload=setAccessPolicy": { + "put": { + "operationId": "Container_SetAccessPolicy", + "description": "sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly.", + "consumes": [ + "application/xml" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, - "type": "array", - "items": { - "$ref": "#/definitions/Block" - } - }, - "UncommittedBlocks": { - "xml": { - "wrapped": true + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, - "type": "array", - "items": { - "$ref": "#/definitions/Block" - } - } - } - }, - "BlockLookupList": { - "type": "object", - "properties": { - "Committed": { - "type": "array", - "items": { + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, "type": "string", - "xml": { - "name": "Committed" - } - } - }, - "Uncommitted": { - "type": "array", - "items": { + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-public-access", + "in": "header", + "description": "The public access setting for the container.", + "required": false, + "type": "string", + "enum": [ + "blob", + "container" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] + }, + "x-ms-client-name": "access" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, "type": "string", - "xml": { - "name": "Uncommitted" + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "containerAcl", + "in": "body", + "description": "The access control list for the container.", + "required": true, + "schema": { + "$ref": "#/definitions/SignedIdentifiers" } } - }, - "Latest": { - "type": "array", - "items": { - "type": "string", - "xml": { - "name": "Latest" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" } } } - }, - "xml": { - "name": "BlockList" - } - }, - "ContainerItem": { - "xml": { - "name": "Container" - }, - "type": "object", - "required": [ - "Name", - "Properties" - ], - "description": "An Azure Storage container", - "properties": { - "Name": { - "type": "string" - }, - "Deleted": { - "type": "boolean" - }, - "Version": { - "type": "string" - }, - "Properties": { - "$ref": "#/definitions/ContainerProperties" - }, - "Metadata": { - "$ref": "#/definitions/ContainerMetadata" - } } }, - "ContainerProperties": { - "type": "object", - "required": [ - "Last-Modified", - "Etag" - ], - "description": "Properties of a container", - "properties": { - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123" - }, - "Etag": { - "type": "string" - }, - "LeaseStatus": { - "$ref": "#/definitions/LeaseStatus" - }, - "LeaseState": { - "$ref": "#/definitions/LeaseState" - }, - "LeaseDuration": { - "$ref": "#/definitions/LeaseDuration" - }, - "PublicAccess": { - "$ref": "#/definitions/PublicAccessType" - }, - "HasImmutabilityPolicy": { - "type": "boolean" - }, - "HasLegalHold": { - "type": "boolean" - }, - "DefaultEncryptionScope": { - "type": "string" - }, - "DenyEncryptionScopeOverride": { - "type": "boolean", - "x-ms-client-name": "PreventEncryptionScopeOverride" - }, - "DeletedTime": { - "type": "string", - "format": "date-time-rfc1123" - }, - "RemainingRetentionDays": { - "type": "integer" - }, - "ImmutableStorageWithVersioningEnabled": { - "x-ms-client-name": "IsImmutableStorageWithVersioningEnabled", - "type": "boolean", - "description": "Indicates if version level worm is enabled on this container." - } - } - }, - "DelimitedTextConfiguration": { - "xml": { - "name": "DelimitedTextConfiguration" - }, - "description": "Groups the settings used for interpreting the blob data if the blob is delimited text formatted.", - "type": "object", - "properties": { - "ColumnSeparator": { - "type": "string", - "description": "The string used to separate columns.", - "xml": { - "name": "ColumnSeparator" - } - }, - "FieldQuote": { - "type": "string", - "description": "The string used to quote a specific field.", - "xml": { - "name": "FieldQuote" - } - }, - "RecordSeparator": { - "type": "string", - "description": "The string used to separate records.", - "xml": { - "name": "RecordSeparator" - } - }, - "EscapeChar": { - "type": "string", - "description": "The string used as an escape character.", - "xml": { - "name": "EscapeChar" + "/{containerName}/?restype=container&comp=blobs": { + "get": { + "operationId": "Container_FilterBlobs", + "description": "The Filter Blobs operation enables callers to list blobs in a container whose tags match a given search expression. Filter blobs searches within the given container.", + "produces": [ + "application/xml", + "application/json" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "where", + "in": "query", + "description": "Filters the results to return only to return only blobs whose tags match the specified expression.", + "required": false, + "type": "string" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + }, + { + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "none", + "versions" + ], + "x-ms-enum": { + "name": "FilterBlobsIncludeItem", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "The filter includes no versions." + }, + { + "name": "Versions", + "value": "versions", + "description": "The filter includes n versions." + } + ] + } + }, + "collectionFormat": "csv" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } - }, - "HeadersPresent": { - "type": "boolean", - "description": "Represents whether the data has headers.", - "xml": { - "name": "HasHeaders" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } } } }, - "JsonTextConfiguration": { - "xml": { - "name": "JsonTextConfiguration" - }, - "description": "json text configuration", - "type": "object", - "properties": { - "RecordSeparator": { - "type": "string", - "description": "The string used to separate records.", - "xml": { - "name": "RecordSeparator" + "/{containerName}/?restype=container&comp=list&flat": { + "get": { + "operationId": "Container_ListBlobFlatSegment", + "description": "The List Blobs operation returns a list of the blobs under the specified container.", + "produces": [ + "application/xml", + "application/json" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "required": false, + "type": "string" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + }, + { + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "copy", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludeItem", + "modelAsString": true, + "values": [ + { + "name": "Copy", + "value": "copy", + "description": "The include copies." + }, + { + "name": "Deleted", + "value": "deleted", + "description": "The include deleted blobs." + }, + { + "name": "Metadata", + "value": "metadata", + "description": "The include metadata." + }, + { + "name": "Snapshots", + "value": "snapshots", + "description": "The include snapshots." + }, + { + "name": "UncommittedBlobs", + "value": "uncommittedblobs", + "description": "The include uncommitted blobs." + }, + { + "name": "Versions", + "value": "versions", + "description": "The include versions." + }, + { + "name": "Tags", + "value": "tags", + "description": "The include tags." + }, + { + "name": "ImmutabilityPolicy", + "value": "immutabilitypolicy", + "description": "The include immutable policy." + }, + { + "name": "LegalHold", + "value": "legalhold", + "description": "The include legal hold." + }, + { + "name": "DeletedWithVersions", + "value": "deletedwithversions", + "description": "The include deleted with versions." + } + ] + } + }, + "collectionFormat": "csv" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } - } - } - }, - "ArrowConfiguration": { - "xml": { - "name": "ArrowConfiguration" - }, - "description": "Groups the settings used for formatting the response if the response should be Arrow formatted.", - "type": "object", - "required": [ - "Schema" - ], - "properties": { - "Schema": { - "type": "array", - "items": { - "$ref": "#/definitions/ArrowField" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListBlobsFlatSegmentResponse" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } }, - "xml": { - "wrapped": true, - "name": "Schema" + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } } } }, - "ParquetConfiguration": { - "xml": { - "name": "ParquetTextConfiguration" - }, - "description": "parquet configuration", - "type": "object" - }, - "ArrowField": { - "xml": { - "name": "Field" - }, - "description": "Groups settings regarding specific field of an arrow schema", - "type": "object", - "required": [ - "Type" - ], - "properties": { - "Type": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Precision": { - "type": "integer" - }, - "Scale": { - "type": "integer" - } - } - }, - "ListContainersSegmentResponse": { - "xml": { - "name": "EnumerationResults" - }, - "description": "An enumeration of containers", - "type": "object", - "required": [ - "ServiceEndpoint", - "ContainerItems" - ], - "properties": { - "ServiceEndpoint": { - "type": "string", - "xml": { - "attribute": true + "/{containerName}/?restype=container&comp=list&hierarchy": { + "get": { + "operationId": "Container_ListBlobHierarchySegment", + "description": "The List Blobs operation returns a list of the blobs under the specified container. A delimiter can be used to traverse a virtual hierarchy of blobs as though it were a file system.", + "produces": [ + "application/xml", + "application/json" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "delimiter", + "in": "query", + "description": "When the request includes this parameter, the operation returns a BlobPrefix element in the response body that acts as a placeholder for all blobs whose names begin with the same substring up to the appearance of the delimiter character. The delimiter may be a single character or a string.", + "required": true, + "type": "string" + }, + { + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "required": false, + "type": "string" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + }, + { + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "copy", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludeItem", + "modelAsString": true, + "values": [ + { + "name": "Copy", + "value": "copy", + "description": "The include copies." + }, + { + "name": "Deleted", + "value": "deleted", + "description": "The include deleted blobs." + }, + { + "name": "Metadata", + "value": "metadata", + "description": "The include metadata." + }, + { + "name": "Snapshots", + "value": "snapshots", + "description": "The include snapshots." + }, + { + "name": "UncommittedBlobs", + "value": "uncommittedblobs", + "description": "The include uncommitted blobs." + }, + { + "name": "Versions", + "value": "versions", + "description": "The include versions." + }, + { + "name": "Tags", + "value": "tags", + "description": "The include tags." + }, + { + "name": "ImmutabilityPolicy", + "value": "immutabilitypolicy", + "description": "The include immutable policy." + }, + { + "name": "LegalHold", + "value": "legalhold", + "description": "The include legal hold." + }, + { + "name": "DeletedWithVersions", + "value": "deletedwithversions", + "description": "The include deleted with versions." + } + ] + } + }, + "collectionFormat": "csv" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } - }, - "Prefix": { - "type": "string" - }, - "Marker": { - "type": "string" - }, - "MaxResults": { - "type": "integer" - }, - "ContainerItems": { - "xml": { - "wrapped": true, - "name": "Containers" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } }, - "type": "array", - "items": { - "$ref": "#/definitions/ContainerItem" + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } - }, - "NextMarker": { - "type": "string" - } - } - }, - "CorsRule": { - "description": "CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain", - "type": "object", - "required": [ - "AllowedOrigins", - "AllowedMethods", - "AllowedHeaders", - "ExposedHeaders", - "MaxAgeInSeconds" - ], - "properties": { - "AllowedOrigins": { - "description": "The origin domains that are permitted to make a request against the storage service via CORS. The origin domain is the domain from which the request originates. Note that the origin must be an exact case-sensitive match with the origin that the user age sends to the service. You can also use the wildcard character '*' to allow all origin domains to make requests via CORS.", - "type": "string" - }, - "AllowedMethods": { - "description": "The methods (HTTP request verbs) that the origin domain may use for a CORS request. (comma separated)", - "type": "string" - }, - "AllowedHeaders": { - "description": "the request headers that the origin domain may specify on the CORS request.", - "type": "string" - }, - "ExposedHeaders": { - "description": "The response headers that may be sent in the response to the CORS request and exposed by the browser to the request issuer", - "type": "string" - }, - "MaxAgeInSeconds": { - "description": "The maximum amount time that a browser should cache the preflight OPTIONS request.", - "type": "integer", - "minimum": 0 - } - } - }, - "ErrorCode": { - "description": "Error codes returned by the service", - "type": "string", - "enum": [ - "AccountAlreadyExists", - "AccountBeingCreated", - "AccountIsDisabled", - "AuthenticationFailed", - "AuthorizationFailure", - "ConditionHeadersNotSupported", - "ConditionNotMet", - "EmptyMetadataKey", - "InsufficientAccountPermissions", - "InternalError", - "InvalidAuthenticationInfo", - "InvalidHeaderValue", - "InvalidHttpVerb", - "InvalidInput", - "InvalidMd5", - "InvalidMetadata", - "InvalidQueryParameterValue", - "InvalidRange", - "InvalidResourceName", - "InvalidUri", - "InvalidXmlDocument", - "InvalidXmlNodeValue", - "Md5Mismatch", - "MetadataTooLarge", - "MissingContentLengthHeader", - "MissingRequiredQueryParameter", - "MissingRequiredHeader", - "MissingRequiredXmlNode", - "MultipleConditionHeadersNotSupported", - "OperationTimedOut", - "OutOfRangeInput", - "OutOfRangeQueryParameterValue", - "RequestBodyTooLarge", - "ResourceTypeMismatch", - "RequestUrlFailedToParse", - "ResourceAlreadyExists", - "ResourceNotFound", - "ServerBusy", - "UnsupportedHeader", - "UnsupportedXmlNode", - "UnsupportedQueryParameter", - "UnsupportedHttpVerb", - "AppendPositionConditionNotMet", - "BlobAlreadyExists", - "BlobImmutableDueToPolicy", - "BlobNotFound", - "BlobOverwritten", - "BlobTierInadequateForContentLength", - "BlobUsesCustomerSpecifiedEncryption", - "BlockCountExceedsLimit", - "BlockListTooLong", - "CannotChangeToLowerTier", - "CannotVerifyCopySource", - "ContainerAlreadyExists", - "ContainerBeingDeleted", - "ContainerDisabled", - "ContainerNotFound", - "ContentLengthLargerThanTierLimit", - "CopyAcrossAccountsNotSupported", - "CopyIdMismatch", - "FeatureVersionMismatch", - "IncrementalCopyBlobMismatch", - "IncrementalCopyOfEarlierVersionSnapshotNotAllowed", - "IncrementalCopySourceMustBeSnapshot", - "InfiniteLeaseDurationRequired", - "InvalidBlobOrBlock", - "InvalidBlobTier", - "InvalidBlobType", - "InvalidBlockId", - "InvalidBlockList", - "InvalidOperation", - "InvalidPageRange", - "InvalidSourceBlobType", - "InvalidSourceBlobUrl", - "InvalidVersionForPageBlobOperation", - "LeaseAlreadyPresent", - "LeaseAlreadyBroken", - "LeaseIdMismatchWithBlobOperation", - "LeaseIdMismatchWithContainerOperation", - "LeaseIdMismatchWithLeaseOperation", - "LeaseIdMissing", - "LeaseIsBreakingAndCannotBeAcquired", - "LeaseIsBreakingAndCannotBeChanged", - "LeaseIsBrokenAndCannotBeRenewed", - "LeaseLost", - "LeaseNotPresentWithBlobOperation", - "LeaseNotPresentWithContainerOperation", - "LeaseNotPresentWithLeaseOperation", - "MaxBlobSizeConditionNotMet", - "NoAuthenticationInformation", - "NoPendingCopyOperation", - "OperationNotAllowedOnIncrementalCopyBlob", - "PendingCopyOperation", - "PreviousSnapshotCannotBeNewer", - "PreviousSnapshotNotFound", - "PreviousSnapshotOperationNotSupported", - "SequenceNumberConditionNotMet", - "SequenceNumberIncrementTooLarge", - "SnapshotCountExceeded", - "SnapshotOperationRateExceeded", - "SnapshotsPresent", - "SourceConditionNotMet", - "SystemInUse", - "TargetConditionNotMet", - "UnauthorizedBlobOverwrite", - "BlobBeingRehydrated", - "BlobArchived", - "BlobNotArchived", - "AuthorizationSourceIPMismatch", - "AuthorizationProtocolMismatch", - "AuthorizationPermissionMismatch", - "AuthorizationServiceMismatch", - "AuthorizationResourceTypeMismatch", - "BlobAccessTierNotSupportedForAccountType" - ], - "x-ms-enum": { - "name": "StorageErrorCode", - "modelAsString": true - } - }, - "FilterBlobItem": { - "xml": { - "name": "Blob" - }, - "description": "Blob info from a Filter Blobs API call", - "type": "object", - "required": [ - "Name", - "ContainerName" - ], - "properties": { - "Name": { - "type": "string" - }, - "ContainerName": { - "type": "string" - }, - "Tags": { - "$ref": "#/definitions/BlobTags" - }, - "VersionId": { - "type": "string" - }, - "IsCurrentVersion": { - "type": "boolean" } } }, - "FilterBlobSegment": { - "description": "The result of a Filter Blobs API call", - "xml": { - "name": "EnumerationResults" - }, - "type": "object", - "required": [ - "ServiceEndpoint", - "Where", - "Blobs" - ], - "properties": { - "ServiceEndpoint": { - "type": "string", - "xml": { - "attribute": true + "/{containerName}/?restype=container&comp=metadata": { + "put": { + "operationId": "Container_SetMetadata", + "description": "operation sets one or more user-defined name-value pairs for the specified container.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } - }, - "Where": { - "type": "string" - }, - "Blobs": { - "xml": { - "name": "Blobs", - "wrapped": true + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } }, - "type": "array", - "items": { - "$ref": "#/definitions/FilterBlobItem" + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } - }, - "NextMarker": { - "type": "string" } } }, - "GeoReplication": { - "description": "Geo-Replication information for the Secondary Storage Service", - "type": "object", - "required": [ - "Status", - "LastSyncTime" - ], - "properties": { - "Status": { - "description": "The status of the secondary location", - "type": "string", - "enum": [ - "live", - "bootstrap", - "unavailable" - ], - "x-ms-enum": { - "name": "GeoReplicationStatusType", - "modelAsString": true - } - }, - "LastSyncTime": { - "description": "A GMT date/time value, to the second. All primary writes preceding this value are guaranteed to be available for read operations at the secondary. Primary writes after this point in time may or may not be available for reads.", - "type": "string", - "format": "date-time-rfc1123" + "/{containerName}/?restype=container&comp=rename": { + "put": { + "operationId": "Container_Rename", + "description": "Renames an existing container.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-source-container-name", + "in": "header", + "description": "Required. Specifies the name of the container to rename.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceContainerName" + }, + { + "name": "x-ms-source-lease-id", + "in": "header", + "description": "A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceLeaseId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } } } }, - "Logging": { - "description": "Azure Analytics Logging settings.", - "type": "object", - "required": [ - "Version", - "Delete", - "Read", - "Write", - "RetentionPolicy" - ], - "properties": { - "Version": { - "description": "The version of Storage Analytics to configure.", - "type": "string" - }, - "Delete": { - "description": "Indicates whether all delete requests should be logged.", - "type": "boolean" - }, - "Read": { - "description": "Indicates whether all read requests should be logged.", - "type": "boolean" - }, - "Write": { - "description": "Indicates whether all write requests should be logged.", - "type": "boolean" - }, - "RetentionPolicy": { - "$ref": "#/definitions/RetentionPolicy" + "/{containerName}/?restype=container&comp=undelete": { + "put": { + "operationId": "Container_Restore", + "description": "Restores a previously-deleted container.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-deleted-container-name", + "in": "header", + "description": "Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore.", + "required": false, + "type": "string", + "x-ms-client-name": "deletedContainerName" + }, + { + "name": "x-ms-deleted-container-version", + "in": "header", + "description": "Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore.", + "required": false, + "type": "string", + "x-ms-client-name": "deletedContainerVersion" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } } } }, - "ContainerMetadata": { - "type": "object", - "xml": { - "name": "Metadata" - }, - "additionalProperties": { - "type": "string" - } - }, - "BlobMetadata": { - "type": "object", - "xml": { - "name": "Metadata" - }, - "properties": { - "Encrypted": { - "type": "string", - "xml": { - "attribute": true + "/?comp=batch": { + "post": { + "operationId": "SubmitBatch", + "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "produces": [ + "multipart/mixed", + "application/json" + ], + "consumes": [ + "multipart/mixed" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "type": "file" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } } - }, - "additionalProperties": { - "type": "string" - } - }, - "ObjectReplicationMetadata": { - "type": "object", - "xml": { - "name": "OrMetadata" - }, - "additionalProperties": { - "type": "string" } }, - "Metrics": { - "description": "a summary of request statistics grouped by API in hour or minute aggregates for blobs", - "required": [ - "Enabled" - ], - "properties": { - "Version": { - "description": "The version of Storage Analytics to configure.", - "type": "string" - }, - "Enabled": { - "description": "Indicates whether metrics are enabled for the Blob service.", - "type": "boolean" - }, - "IncludeAPIs": { - "description": "Indicates whether metrics should generate summary statistics for called API operations.", - "type": "boolean" - }, - "RetentionPolicy": { - "$ref": "#/definitions/RetentionPolicy" + "/?comp=blobs": { + "get": { + "operationId": "FilterBlobs", + "description": "The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression.", + "produces": [ + "application/xml", + "application/json" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "where", + "in": "query", + "description": "Filters the results to return only to return only blobs whose tags match the specified expression.", + "required": false, + "type": "string" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + }, + { + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "none", + "versions" + ], + "x-ms-enum": { + "name": "FilterBlobsIncludeItem", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "The filter includes no versions." + }, + { + "name": "Versions", + "value": "versions", + "description": "The filter includes n versions." + } + ] + } + }, + "collectionFormat": "csv" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } } } }, - "PageList": { - "description": "the list of pages", - "type": "object", - "properties": { - "PageRange": { - "type": "array", - "items": { - "$ref": "#/definitions/PageRange" + "/?comp=list": { + "get": { + "operationId": "ListContainersSegment", + "description": "The List Containers Segment operation returns a list of the containers under the specified account", + "produces": [ + "application/xml", + "application/json" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "required": false, + "type": "string" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "include", + "in": "query", + "description": "Include this parameter to specify that the container's metadata be returned as part of the response body.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "metadata", + "deleted", + "system" + ], + "x-ms-enum": { + "name": "ListContainersIncludeType", + "modelAsString": true, + "values": [ + { + "name": "metadata", + "value": "metadata", + "description": "Include metadata" + }, + { + "name": "deleted", + "value": "deleted", + "description": "Include deleted" + }, + { + "name": "system", + "value": "system", + "description": "Include system" + } + ] + } + }, + "collectionFormat": "csv" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } - }, - "ClearRange": { - "type": "array", - "items": { - "$ref": "#/definitions/ClearRange" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListContainersSegmentResponse" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } - }, - "NextMarker": { - "type": "string" } } }, - "PageRange": { - "type": "object", - "required": [ - "Start", - "End" - ], - "properties": { - "Start": { - "type": "integer", - "format": "int64", - "xml": { - "name": "Start" + "/?restype=account&comp=properties": { + "get": { + "operationId": "GetAccountInfo", + "description": "Returns the sku name and account kind.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } - }, - "End": { - "type": "integer", - "format": "int64", - "xml": { - "name": "End" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-account-kind": { + "type": "string", + "description": "Identifies the account kind", + "enum": [ + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" + ], + "x-ms-enum": { + "name": "AccountKind", + "modelAsString": true, + "values": [ + { + "name": "Storage", + "value": "Storage", + "description": "The storage account is a general-purpose account." + }, + { + "name": "BlobStorage", + "value": "BlobStorage", + "description": "The storage account is a blob storage account." + }, + { + "name": "StorageV2", + "value": "StorageV2", + "description": "The storage account is a storage V2 account." + }, + { + "name": "FileStorage", + "value": "FileStorage", + "description": "The storage account is a file storage account." + }, + { + "name": "BlockBlobStorage", + "value": "BlockBlobStorage", + "description": "The storage account is a block blob storage account." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-is-hns-enabled": { + "type": "boolean", + "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-sku-name": { + "type": "string", + "description": "Identifies the sku name of the account", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": true, + "values": [ + { + "name": "StandardLRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "StandardGRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "StandardRAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "StandardZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "PremiumLRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + } + ] + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } } - }, - "xml": { - "name": "PageRange" } }, - "ClearRange": { - "type": "object", - "required": [ - "Start", - "End" - ], - "properties": { - "Start": { - "type": "integer", - "format": "int64", - "xml": { - "name": "Start" + "/?restype=service&comp=stats": { + "get": { + "operationId": "GetStatistics", + "description": "Retrieves statistics related to replication for the Blob service. It is only available on the secondary location endpoint when read-access geo-redundant replication is enabled for the storage account.", + "produces": [ + "application/xml", + "application/json" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } - }, - "End": { - "type": "integer", - "format": "int64", - "xml": { - "name": "End" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/StorageServiceStats" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } } - }, - "xml": { - "name": "ClearRange" } - }, - "QueryRequest": { - "description": "Groups the set of query request settings.", + } + }, + "definitions": { + "AccessPolicy": { "type": "object", - "required": [ - "QueryType", - "Expression" - ], + "description": "Represents an access policy.", "properties": { - "QueryType": { + "start": { "type": "string", - "description": "Required. The type of the provided query expression.", - "xml": { - "name": "QueryType" - }, - "enum": [ - "SQL" - ] + "format": "date-time", + "description": "The date-time the policy is active." }, - "Expression": { + "expiry": { "type": "string", - "description": "The query expression in SQL. The maximum size of the query expression is 256KiB.", - "xml": { - "name": "Expression" - } - }, - "InputSerialization": { - "$ref": "#/definitions/QuerySerialization", - "xml": { - "name": "InputSerialization" - } + "format": "date-time", + "description": "The date-time the policy expires." }, - "OutputSerialization": { - "$ref": "#/definitions/QuerySerialization", - "xml": { - "name": "OutputSerialization" - } + "permission": { + "type": "string", + "description": "The permissions for acl the policy." } }, - "xml": { - "name": "QueryRequest" - } - }, - "QueryFormat": { - "type": "object", "required": [ - "Type" - ], - "properties": { - "Type": { - "$ref": "#/definitions/QueryType" - }, - "DelimitedTextConfiguration": { - "$ref": "#/definitions/DelimitedTextConfiguration" - }, - "JsonTextConfiguration": { - "$ref": "#/definitions/JsonTextConfiguration" - }, - "ArrowConfiguration": { - "$ref": "#/definitions/ArrowConfiguration" - }, - "ParquetTextConfiguration": { - "$ref": "#/definitions/ParquetConfiguration" - } - } + "start", + "expiry", + "permission" + ] }, - "QuerySerialization": { - "type": "object", - "required": [ - "Format" + "AccessTier": { + "type": "string", + "description": "The access tiers.", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" ], - "properties": { - "Format": { - "$ref": "#/definitions/QueryFormat", - "xml": { - "name": "Format" + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." } - } + ] } }, - "QueryType": { + "AccountKind": { "type": "string", - "description": "The quick query format type.", + "description": "The account kind.", "enum": [ - "delimited", - "json", - "arrow", - "parquet" + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" ], "x-ms-enum": { - "name": "QueryFormatType", - "modelAsString": false - }, - "xml": { - "name": "Type" + "name": "AccountKind", + "modelAsString": true, + "values": [ + { + "name": "Storage", + "value": "Storage", + "description": "The storage account is a general-purpose account." + }, + { + "name": "BlobStorage", + "value": "BlobStorage", + "description": "The storage account is a blob storage account." + }, + { + "name": "StorageV2", + "value": "StorageV2", + "description": "The storage account is a storage V2 account." + }, + { + "name": "FileStorage", + "value": "FileStorage", + "description": "The storage account is a file storage account." + }, + { + "name": "BlockBlobStorage", + "value": "BlockBlobStorage", + "description": "The storage account is a block blob storage account." + } + ] } }, - "RehydratePriority": { - "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "ArchiveStatus": { "type": "string", + "description": "The archive status.", "enum": [ - "High", - "Standard" + "rehydrate-pending-to-hot", + "rehydrate-pending-to-cool", + "rehydrate-pending-to-cold" ], "x-ms-enum": { - "name": "RehydratePriority", - "modelAsString": true - }, - "xml": { - "name": "RehydratePriority" - } - }, - "RetentionPolicy": { - "description": "the retention policy which determines how long the associated data should persist", - "type": "object", - "required": [ - "Enabled" - ], - "properties": { - "Enabled": { - "description": "Indicates whether a retention policy is enabled for the storage service", - "type": "boolean" - }, - "Days": { - "description": "Indicates the number of days that metrics or logging or soft-deleted data should be retained. All data older than this value will be deleted", - "type": "integer", - "minimum": 1 - }, - "AllowPermanentDelete": { - "description": "Indicates whether permanent delete is allowed on this storage account.", - "type": "boolean" - } + "name": "ArchiveStatus", + "modelAsString": true, + "values": [ + { + "name": "RehydratePendingToHot", + "value": "rehydrate-pending-to-hot", + "description": "The archive status is rehydrating pending to hot." + }, + { + "name": "RehydratePendingToCool", + "value": "rehydrate-pending-to-cool", + "description": "The archive status is rehydrating pending to cool." + }, + { + "name": "RehydratePendingToCold", + "value": "rehydrate-pending-to-cold", + "description": "The archive status is rehydrating pending to archive." + } + ] } }, - "SignedIdentifier": { - "xml": { - "name": "SignedIdentifier" - }, - "description": "signed identifier", + "ArrowConfiguration": { "type": "object", - "required": [ - "Id", - "AccessPolicy" - ], + "description": "Represents the Apache Arrow configuration.", "properties": { - "Id": { - "type": "string", - "description": "a unique id" - }, - "AccessPolicy": { - "$ref": "#/definitions/AccessPolicy" + "schema": { + "type": "array", + "description": "The Apache Arrow schema", + "items": { + "$ref": "#/definitions/ArrowField" + }, + "x-ms-identifiers": [] } - } - }, - "SignedIdentifiers": { - "description": "a collection of signed identifiers", - "type": "array", - "items": { - "$ref": "#/definitions/SignedIdentifier" }, - "xml": { - "wrapped": true, - "name": "SignedIdentifiers" - } - }, - "StaticWebsite": { - "description": "The properties that enable an account to host a static website", - "type": "object", "required": [ - "Enabled" - ], - "properties": { - "Enabled": { - "description": "Indicates whether this account is hosting a static website", - "type": "boolean" - }, - "IndexDocument": { - "description": "The default name of the index page under each directory", - "type": "string" - }, - "ErrorDocument404Path": { - "description": "The absolute path of the custom 404 page", - "type": "string" - }, - "DefaultIndexDocumentPath": { - "description": "Absolute path of the default index page", - "type": "string" - } - } + "schema" + ] }, - "StorageServiceProperties": { - "description": "Storage Service Properties.", + "ArrowField": { "type": "object", + "description": "Represents an Apache Arrow field.", "properties": { - "Logging": { - "$ref": "#/definitions/Logging" - }, - "HourMetrics": { - "$ref": "#/definitions/Metrics" - }, - "MinuteMetrics": { - "$ref": "#/definitions/Metrics" - }, - "Cors": { - "description": "The set of CORS rules.", - "type": "array", - "items": { - "$ref": "#/definitions/CorsRule" - }, - "xml": { - "wrapped": true - } + "type": { + "type": "string", + "description": "The arrow field type." }, - "DefaultServiceVersion": { - "description": "The default version to use for requests to the Blob service if an incoming request's version is not specified. Possible values include version 2008-10-27 and all more recent versions", - "type": "string" + "name": { + "type": "string", + "description": "The arrow field name." }, - "DeleteRetentionPolicy": { - "$ref": "#/definitions/RetentionPolicy" + "precision": { + "type": "integer", + "format": "int32", + "description": "The arrow field precision." }, - "StaticWebsite": { - "$ref": "#/definitions/StaticWebsite" - } - } - }, - "StorageServiceStats": { - "description": "Stats for the storage service.", - "type": "object", - "properties": { - "GeoReplication": { - "$ref": "#/definitions/GeoReplication" - } - } - } - }, - "parameters": { - "Url": { - "name": "url", - "description": "The URL of the service account, container, or blob that is the target of the desired operation.", - "x-ms-parameter-location": "client", - "required": true, - "type": "string", - "in": "path", - "x-ms-skip-url-encoding": true - }, - "ApiVersionParameter": { - "name": "x-ms-version", - "x-ms-parameter-location": "client", - "x-ms-client-name": "version", - "in": "header", - "required": true, - "type": "string", - "description": "Specifies the version of the operation to use for this request.", - "enum": [ - "2025-01-05" - ] - }, - "Blob": { - "name": "blob", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$", - "minLength": 1, - "maxLength": 1024, - "x-ms-parameter-location": "method", - "description": "The blob name." - }, - "BlobCacheControl": { - "name": "x-ms-blob-cache-control", - "x-ms-client-name": "blobCacheControl", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "blob-HTTP-headers" - }, - "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request." - }, - "BlobConditionAppendPos": { - "name": "x-ms-blob-condition-appendpos", - "x-ms-client-name": "appendPosition", - "in": "header", - "required": false, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "append-position-access-conditions" - }, - "description": "Optional conditional header, used only for the Append Block operation. A number indicating the byte offset to compare. Append Block will succeed only if the append position is equal to this number. If it is not, the request will fail with the AppendPositionConditionNotMet error (HTTP status code 412 - Precondition Failed)." - }, - "BlobConditionMaxSize": { - "name": "x-ms-blob-condition-maxsize", - "x-ms-client-name": "maxSize", - "in": "header", - "required": false, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "append-position-access-conditions" - }, - "description": "Optional conditional header. The max length in bytes permitted for the append blob. If the Append Block operation would cause the blob to exceed that limit or if the blob size is already greater than the value specified in this header, the request will fail with MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed)." - }, - "BlobPublicAccess": { - "name": "x-ms-blob-public-access", - "x-ms-client-name": "access", - "in": "header", - "required": false, - "x-ms-parameter-location": "method", - "description": "Specifies whether data in the container may be accessed publicly and the level of access", - "type": "string", - "enum": [ - "container", - "blob" - ], - "x-ms-enum": { - "name": "PublicAccessType", - "modelAsString": true - } - }, - "BlobTagsBody": { - "name": "Tags", - "in": "body", - "schema": { - "$ref": "#/definitions/BlobTags" + "scale": { + "type": "integer", + "format": "int32", + "description": "The arrow field scale." + } }, - "x-ms-parameter-location": "method", - "description": "Blob tags" + "required": [ + "type" + ] }, - "BlobTagsHeader": { - "name": "x-ms-tags", - "x-ms-client-name": "BlobTagsString", - "in": "header", - "required": false, + "Azure.Core.uuid": { "type": "string", - "x-ms-parameter-location": "method", - "description": "Optional. Used to set blob tags in various blob operations." + "format": "uuid", + "description": "Universally Unique Identifier" }, - "AccessTierRequired": { - "name": "x-ms-access-tier", - "x-ms-client-name": "tier", - "in": "header", - "required": true, + "BlobCopySourceTags": { "type": "string", + "description": "The blob copy source tags types.", "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive", - "Cold" + "REPLACE", + "COPY" ], "x-ms-enum": { - "name": "AccessTier", - "modelAsString": true - }, - "x-ms-parameter-location": "method", - "description": "Indicates the tier to be set on the blob." + "name": "BlobCopySourceTags", + "modelAsString": true, + "values": [ + { + "name": "Replace", + "value": "REPLACE", + "description": "The replace blob source tags option." + }, + { + "name": "Copy", + "value": "COPY", + "description": "The copy blob source tags option." + } + ] + } }, - "AccessTierOptional": { - "name": "x-ms-access-tier", - "x-ms-client-name": "tier", - "in": "header", - "required": false, + "BlobDeleteType": { "type": "string", + "description": "The type of blob deletions.", "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive", - "Cold" + "Permanent" ], "x-ms-enum": { - "name": "AccessTier", - "modelAsString": true - }, - "x-ms-parameter-location": "method", - "description": "Optional. Indicates the tier to be set on the blob." + "name": "BlobDeleteType", + "modelAsString": true, + "values": [ + { + "name": "Permanent", + "value": "Permanent", + "description": "Permanently delete the blob." + } + ] + } }, - "PremiumPageBlobAccessTierOptional": { - "name": "x-ms-access-tier", - "x-ms-client-name": "tier", - "in": "header", - "required": false, + "BlobExpiryOptions": { "type": "string", + "description": "The blob expiration options.", "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80" + "NeverExpire", + "RelativeToCreation", + "RelativeToNow", + "Absolute" ], "x-ms-enum": { - "name": "PremiumPageBlobAccessTier", - "modelAsString": true + "name": "BlobExpiryOptions", + "modelAsString": true, + "values": [ + { + "name": "NeverExpire", + "value": "NeverExpire", + "description": "Never expire." + }, + { + "name": "RelativeToCreation", + "value": "RelativeToCreation", + "description": "Relative to creation time." + }, + { + "name": "RelativeToNow", + "value": "RelativeToNow", + "description": "Relative to now." + }, + { + "name": "Absolute", + "value": "Absolute", + "description": "Absolute time." + } + ] + } + }, + "BlobFlatListSegment": { + "type": "object", + "description": "The blob flat list segment.", + "properties": { + "blobItems": { + "type": "array", + "description": "The blob items.", + "items": { + "$ref": "#/definitions/BlobItemInternal" + }, + "x-ms-identifiers": [] + } }, - "x-ms-parameter-location": "method", - "description": "Optional. Indicates the tier to be set on the page blob." + "required": [ + "blobItems" + ] }, - "RehydratePriority": { - "name": "x-ms-rehydrate-priority", - "x-ms-client-name": "rehydratePriority", - "in": "header", - "required": false, + "BlobHierarchyListSegment": { + "type": "object", + "description": "Represents an array of blobs.", + "properties": { + "blobItems": { + "type": "array", + "description": "The blob items", + "items": { + "$ref": "#/definitions/BlobItemInternal" + }, + "x-ms-identifiers": [] + }, + "blobPrefixes": { + "type": "array", + "description": "The blob prefixes.", + "items": { + "$ref": "#/definitions/BlobPrefix" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "blobItems" + ] + }, + "BlobImmutabilityPolicyMode": { "type": "string", + "description": "The immutability policy mode.", "enum": [ - "High", - "Standard" + "Mutable", + "Locked", + "Unlocked" ], "x-ms-enum": { - "name": "RehydratePriority", - "modelAsString": true + "name": "BlobImmutabilityPolicyMode", + "modelAsString": true, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + } + }, + "BlobItemInternal": { + "type": "object", + "description": "An Azure Storage Blob", + "properties": { + "name": { + "$ref": "#/definitions/BlobName", + "description": "The name of the blob." + }, + "deleted": { + "type": "boolean", + "description": "Whether the blob is deleted." + }, + "snapshot": { + "type": "string", + "description": "The snapshot of the blob." + }, + "versionId": { + "type": "string", + "description": "The version id of the blob." + }, + "isCurrentVersion": { + "type": "boolean", + "description": "Whether the blob is the current version." + }, + "properties": { + "$ref": "#/definitions/BlobPropertiesInternal", + "description": "The properties of the blob." + }, + "metadata": { + "$ref": "#/definitions/BlobMetadata", + "description": "The metadata of the blob." + }, + "blobTags": { + "$ref": "#/definitions/BlobTags", + "description": "The tags of the blob." + }, + "objectReplicationMetadata": { + "$ref": "#/definitions/ObjectReplicationMetadata", + "description": "The object replication metadata of the blob." + }, + "hasVersionsOnly": { + "type": "boolean", + "description": "Whether the blog has versions only." + } }, - "x-ms-parameter-location": "method", - "description": "Optional: Indicates the priority with which to rehydrate an archived blob." + "required": [ + "name", + "deleted", + "snapshot", + "properties" + ] }, - "BlobContentDisposition": { - "name": "x-ms-blob-content-disposition", - "x-ms-client-name": "blobContentDisposition", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "blob-HTTP-headers" + "BlobMetadata": { + "type": "object", + "description": "The blob metadata.", + "properties": { + "encrypted": { + "type": "string", + "description": "Whether the blob metadata is encrypted." + } }, - "description": "Optional. Sets the blob's Content-Disposition header." + "additionalProperties": { + "type": "string" + } }, - "BlobContentEncoding": { - "name": "x-ms-blob-content-encoding", - "x-ms-client-name": "blobContentEncoding", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "blob-HTTP-headers" + "BlobName": { + "type": "object", + "description": "Represents a blob name.", + "properties": { + "encoded": { + "type": "boolean", + "description": "Whether the blob name is encoded." + }, + "content": { + "type": "string", + "description": "The blob name." + } }, - "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request." + "required": [ + "encoded", + "content" + ] }, - "BlobContentLanguage": { - "name": "x-ms-blob-content-language", - "x-ms-client-name": "blobContentLanguage", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "blob-HTTP-headers" + "BlobPrefix": { + "type": "object", + "description": "Represents a blob prefix.", + "properties": { + "name": { + "$ref": "#/definitions/BlobName", + "description": "The blob name." + } + }, + "required": [ + "name" + ] + }, + "BlobPropertiesInternal": { + "type": "object", + "description": "The properties of a blob.", + "properties": { + "creationTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date-time the blob was created in RFC1123 format." + }, + "lastModified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date-time the blob was last modified in RFC1123 format." + }, + "eTag": { + "type": "string", + "description": "The blog ETag." + }, + "contentLength": { + "type": "integer", + "format": "int64", + "description": "The content length of the blob." + }, + "contentType": { + "type": "string", + "description": "The content type of the blob." + }, + "contentEncoding": { + "type": "string", + "description": "The content encoding of the blob." + }, + "contentLanguage": { + "type": "string", + "description": "The content language of the blob." + }, + "contentMd5": { + "type": "string", + "format": "byte", + "description": "The content MD5 of the blob." + }, + "contentDisposition": { + "type": "string", + "description": "The content disposition of the blob." + }, + "cacheControl": { + "type": "string", + "description": "The cache control of the blob." + }, + "blobSequenceNumber": { + "type": "integer", + "format": "int64", + "description": "The sequence number of the blob." + }, + "blobType": { + "$ref": "#/definitions/BlobType", + "description": "The blob type." + }, + "leaseStatus": { + "$ref": "#/definitions/LeaseStatus", + "description": "The lease status of the blob." + }, + "leaseState": { + "$ref": "#/definitions/LeaseState", + "description": "The lease state of the blob." + }, + "leaseDuration": { + "$ref": "#/definitions/LeaseDuration", + "description": "The lease duration of the blob." + }, + "copyId": { + "type": "string", + "description": "The copy ID of the blob." + }, + "copyStatus": { + "$ref": "#/definitions/CopyStatus", + "description": "The copy status of the blob." + }, + "copySource": { + "type": "string", + "description": "The copy source of the blob." + }, + "copyProgress": { + "type": "string", + "description": "The copy progress of the blob." + }, + "copyCompletionTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The copy completion time of the blob." + }, + "copyStatusDescription": { + "type": "string", + "description": "The copy status description of the blob." + }, + "serverEncrypted": { + "type": "boolean", + "description": "Whether the blog is encrypted on the server." + }, + "incrementalCopy": { + "type": "boolean", + "description": "Whether the blog is incremental copy." + }, + "destinationSnapshot": { + "type": "string", + "description": "The name of the destination snapshot." + }, + "deletedTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The time the blob was deleted." + }, + "remainingRetentionDays": { + "type": "integer", + "format": "int32", + "description": "The remaining retention days of the blob." + }, + "accessTier": { + "$ref": "#/definitions/AccessTier", + "description": "The access tier of the blob." + }, + "accessTierInferred": { + "type": "boolean", + "description": "Whether the access tier is inferred." + }, + "archiveStatus": { + "$ref": "#/definitions/ArchiveStatus", + "description": "The archive status of the blob." + }, + "customerProvidedKeySha256": { + "type": "string", + "description": "Customer provided key sha256" + }, + "encryptionScope": { + "type": "string", + "description": "The encryption scope of the blob." + }, + "accessTierChangeTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The access tier change time of the blob." + }, + "tagCount": { + "type": "integer", + "format": "int32", + "description": "The number of tags for the blob." + }, + "expiryTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The expire time of the blob." + }, + "sealed": { + "type": "boolean", + "description": "Whether the blob is sealed." + }, + "rehydratePriority": { + "$ref": "#/definitions/RehydratePriority", + "description": "The rehydrate priority of the blob." + }, + "lastAccessTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The last access time of the blob." + }, + "immutabilityPolicyUntilDate": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The immutability policy until time of the blob." + }, + "immutabilityPolicyMode": { + "$ref": "#/definitions/BlobImmutabilityPolicyMode", + "description": "The immutability policy mode of the blob." + }, + "legalHold": { + "type": "boolean", + "description": "Whether the blob is under legal hold." + } }, - "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request." - }, - "BlobContentLengthOptional": { - "name": "x-ms-blob-content-length", - "x-ms-client-name": "blobContentLength", - "in": "header", - "required": false, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "description": "This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary." - }, - "BlobContentLengthRequired": { - "name": "x-ms-blob-content-length", - "x-ms-client-name": "blobContentLength", - "in": "header", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "description": "This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary." + "required": [ + "lastModified", + "eTag" + ] }, - "BlobContentMD5": { - "name": "x-ms-blob-content-md5", - "x-ms-client-name": "blobContentMD5", - "in": "header", - "required": false, - "type": "string", - "format": "byte", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "blob-HTTP-headers" + "BlobTag": { + "type": "object", + "description": "The blob tags.", + "properties": { + "key": { + "type": "string", + "description": "The key of the tag." + }, + "value": { + "type": "string", + "description": "The value of the tag." + } }, - "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded." + "required": [ + "key", + "value" + ] }, - "BlobContentType": { - "name": "x-ms-blob-content-type", - "x-ms-client-name": "blobContentType", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "blob-HTTP-headers" + "BlobTags": { + "type": "object", + "description": "Represents blob tags.", + "properties": { + "blobTagSet": { + "type": "array", + "description": "Represents the blob tags.", + "items": { + "$ref": "#/definitions/BlobTag" + }, + "x-ms-identifiers": [] + } }, - "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request." + "required": [ + "blobTagSet" + ] }, - "BlobDeleteType": { - "name": "deletetype", - "x-ms-client-name": "blobDeleteType", - "in": "query", - "required": false, + "BlobType": { "type": "string", + "description": "The blob type.", "enum": [ - "Permanent" + "BlockBlob", + "PageBlob", + "AppendBlob" ], "x-ms-enum": { - "name": "BlobDeleteType", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled." + "name": "BlobType", + "modelAsString": true, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] + } }, - "BlobExpiryOptions": { - "name": "x-ms-expiry-option", - "x-ms-client-name": "ExpiryOptions", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "NeverExpire", - "RelativeToCreation", - "RelativeToNow", - "Absolute" - ], - "x-ms-enum": { - "name": "BlobExpiryOptions", - "modelAsString": true + "Block": { + "type": "object", + "description": "Represents a single block in a block blob. It describes the block's ID and size.", + "properties": { + "name": { + "type": "string", + "description": "The base64 encoded block ID." + }, + "size": { + "type": "integer", + "format": "int64", + "description": "The block size in bytes." + } }, - "x-ms-parameter-location": "method", - "description": "Required. Indicates mode of the expiry time" - }, - "BlobExpiryTime": { - "name": "x-ms-expiry-time", - "x-ms-client-name": "ExpiresOn", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "The time to set the blob to expiry" - }, - "BlobSequenceNumber": { - "name": "x-ms-blob-sequence-number", - "x-ms-client-name": "blobSequenceNumber", - "in": "header", - "required": false, - "type": "integer", - "format": "int64", - "default": 0, - "x-ms-parameter-location": "method", - "description": "Set for page blobs only. The sequence number is a user-controlled value that you can use to track requests. The value of the sequence number must be between 0 and 2^63 - 1." + "required": [ + "name", + "size" + ] }, - "BlockId": { - "name": "blockid", - "x-ms-client-name": "blockId", - "in": "query", - "type": "string", - "required": true, - "x-ms-parameter-location": "method", - "description": "A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal to 64 bytes in size. For a given blob, the length of the value specified for the blockid parameter must be the same size for each block." + "BlockList": { + "type": "object", + "description": "Contains the committed and uncommitted blocks in a block blob.", + "properties": { + "committedBlocks": { + "type": "array", + "description": "The list of committed blocks.", + "items": { + "$ref": "#/definitions/Block" + }, + "x-ms-identifiers": [] + }, + "uncommittedBlocks": { + "type": "array", + "description": "The list of uncommitted blocks.", + "items": { + "$ref": "#/definitions/Block" + }, + "x-ms-identifiers": [] + } + } }, "BlockListType": { - "name": "blocklisttype", - "x-ms-client-name": "listType", - "in": "query", - "required": true, - "default": "committed", - "x-ms-parameter-location": "method", - "description": "Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together.", "type": "string", + "description": "The block list types.", "enum": [ "committed", "uncommitted", @@ -11562,882 +14243,1446 @@ ], "x-ms-enum": { "name": "BlockListType", - "modelAsString": false + "modelAsString": true, + "values": [ + { + "name": "Committed", + "value": "committed", + "description": "The list of committed blocks." + }, + { + "name": "Uncommitted", + "value": "uncommitted", + "description": "The list of uncommitted blocks." + }, + { + "name": "All", + "value": "all", + "description": "Both lists together." + } + ] } }, - "Body": { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "format": "file" - }, - "x-ms-parameter-location": "method", - "description": "Initial data" + "BlockLookupList": { + "type": "object", + "description": "The Block lookup list.", + "properties": { + "committed": { + "type": "array", + "description": "The committed blocks", + "items": { + "type": "string" + } + }, + "uncommitted": { + "type": "array", + "description": "The uncommitted blocks", + "items": { + "type": "string" + } + }, + "latest": { + "type": "array", + "description": "The latest blocks", + "items": { + "type": "string" + } + } + } }, - "ContainerAcl": { - "name": "containerAcl", - "in": "body", - "schema": { - "$ref": "#/definitions/SignedIdentifiers" + "ClearRange": { + "type": "object", + "description": "The clear range.", + "properties": { + "start": { + "type": "integer", + "format": "int64", + "description": "The start of the byte range." + }, + "end": { + "type": "integer", + "format": "int64", + "description": "The end of the byte range." + } }, - "x-ms-parameter-location": "method", - "description": "the acls for the container" - }, - "CopyId": { - "name": "copyid", - "x-ms-client-name": "copyId", - "in": "query", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "description": "The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation." - }, - "ClientRequestId": { - "name": "x-ms-client-request-id", - "x-ms-client-name": "requestId", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled." - }, - "ContainerName": { - "name": "containerName", - "in": "path", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "description": "The container name." - }, - "ContentCrc64": { - "name": "x-ms-content-crc64", - "x-ms-client-name": "transactionalContentCrc64", - "in": "header", - "required": false, - "type": "string", - "format": "byte", - "x-ms-parameter-location": "method", - "description": "Specify the transactional crc64 for the body, to be validated by the service." - }, - "ContentLength": { - "name": "Content-Length", - "in": "header", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "description": "The length of the request." - }, - "ContentMD5": { - "name": "Content-MD5", - "x-ms-client-name": "transactionalContentMD5", - "in": "header", - "required": false, - "type": "string", - "format": "byte", - "x-ms-parameter-location": "method", - "description": "Specify the transactional md5 for the body, to be validated by the service." - }, - "CopySource": { - "name": "x-ms-copy-source", - "x-ms-client-name": "copySource", - "in": "header", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature." + "required": [ + "start", + "end" + ] }, - "CopySourceAuthorization": { - "name": "x-ms-copy-source-authorization", - "x-ms-client-name": "copySourceAuthorization", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source." + "ContainerItem": { + "type": "object", + "description": "An Azure Storage container.", + "properties": { + "name": { + "type": "string", + "description": "The name of the container." + }, + "delete": { + "type": "boolean", + "description": "Whether the container is deleted." + }, + "version": { + "type": "string", + "description": "The version of the container." + }, + "properties": { + "$ref": "#/definitions/ContainerProperties", + "description": "The properties of the container." + }, + "metadata": { + "type": "object", + "description": "The metadata of the container.", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [ + "name", + "properties" + ] }, - "CopySourceBlobProperties": { - "name": "x-ms-copy-source-blob-properties", - "x-ms-client-name": "copySourceBlobProperties", - "in": "header", - "required": false, - "type": "boolean", - "x-ms-parameter-location": "method", - "description": "Optional, default is true. Indicates if properties from the source blob should be copied." + "ContainerProperties": { + "type": "object", + "description": "The properties of a container.", + "properties": { + "lastModified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date-time the container was last modified in RFC1123 format." + }, + "eTag": { + "type": "string", + "description": "The ETag of the container." + }, + "leaseStatus": { + "$ref": "#/definitions/LeaseStatus", + "description": "The lease status of the container." + }, + "leaseState": { + "$ref": "#/definitions/LeaseState", + "description": "The lease state of the container." + }, + "leaseDuration": { + "$ref": "#/definitions/LeaseDuration", + "description": "The lease duration of the container." + }, + "publicAccess": { + "$ref": "#/definitions/PublicAccessType", + "description": "The public access type of the container." + }, + "hasImmutabilityPolicy": { + "type": "boolean", + "description": "Whether it has an immutability policy." + }, + "hasLegalHold": { + "type": "boolean", + "description": "The has legal hold status of the container." + }, + "defaultEncryptionScope": { + "type": "string", + "description": "The default encryption scope of the container." + }, + "denyEncryptionScopeOverride": { + "type": "boolean", + "description": "Whether to prevent encryption scope override." + }, + "deletedTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The deleted time of the container." + }, + "remainingRetentionDays": { + "type": "integer", + "format": "int32", + "description": "The remaining retention days of the container." + }, + "immutableStorageWithVersioningEnabled": { + "type": "boolean", + "description": "Whether immutable storage with versioning is enabled." + } + }, + "required": [ + "lastModified", + "eTag" + ] }, - "CopySourceTags": { - "name": "x-ms-copy-source-tag-option", - "x-ms-client-name": "copySourceTags", - "in": "header", - "required": false, + "CopyStatus": { "type": "string", + "description": "The copy status.", "enum": [ - "REPLACE", - "COPY" + "pending", + "success", + "failed", + "aborted" ], "x-ms-enum": { - "name": "BlobCopySourceTags", - "modelAsString": false + "name": "CopyStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "CorsRule": { + "type": "object", + "description": "CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain", + "properties": { + "allowedOrigins": { + "type": "string", + "description": "The allowed origins." + }, + "allowedMethods": { + "type": "string", + "description": "The allowed methods." + }, + "allowedHeaders": { + "type": "string", + "description": "The allowed headers." + }, + "exposedHeaders": { + "type": "string", + "description": "The exposed headers." + }, + "maxAgeInSeconds": { + "type": "integer", + "format": "int32", + "description": "The maximum age in seconds.", + "minimum": 0 + } }, - "x-ms-parameter-location": "method", - "description": "Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags." + "required": [ + "allowedOrigins", + "allowedMethods", + "allowedHeaders", + "exposedHeaders", + "maxAgeInSeconds" + ] }, - "DeleteSnapshots": { - "name": "x-ms-delete-snapshots", - "x-ms-client-name": "deleteSnapshots", - "description": "Required if the blob has associated snapshots. Specify one of the following two options: include: Delete the base blob and all of its snapshots. only: Delete only the blob's snapshots and not the blob itself", - "x-ms-parameter-location": "method", - "in": "header", - "required": false, + "DeleteSnapshotsOptionType": { "type": "string", + "description": "The delete snapshots option type.", "enum": [ - "include", - "only" + "only", + "include" ], "x-ms-enum": { "name": "DeleteSnapshotsOptionType", - "modelAsString": false + "modelAsString": true, + "values": [ + { + "name": "Only", + "value": "only", + "description": "The delete snapshots include option is only." + }, + { + "name": "Include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] } }, - "Delimiter": { - "name": "delimiter", - "description": "When the request includes this parameter, the operation returns a BlobPrefix element in the response body that acts as a placeholder for all blobs whose names begin with the same substring up to the appearance of the delimiter character. The delimiter may be a single character or a string.", - "type": "string", - "x-ms-parameter-location": "method", - "in": "query", - "required": true - }, - "EncryptionKey": { - "name": "x-ms-encryption-key", - "x-ms-client-name": "encryptionKey", - "type": "string", - "in": "header", - "required": false, - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "cpk-info" - }, - "description": "Optional. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, encryption is performed with the root account encryption key. For more information, see Encryption at Rest for Azure Storage Services." - }, - "EncryptionKeySha256": { - "name": "x-ms-encryption-key-sha256", - "x-ms-client-name": "encryptionKeySha256", - "type": "string", - "in": "header", - "required": false, - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "cpk-info" - }, - "description": "The SHA-256 hash of the provided encryption key. Must be provided if the x-ms-encryption-key header is provided." + "DelimitedTextConfiguration": { + "type": "object", + "description": "Represents the delimited text configuration.", + "properties": { + "columnSeparator": { + "type": "string", + "description": "The string used to separate columns." + }, + "fieldQuote": { + "type": "string", + "description": "The string used to quote a specific field." + }, + "recordSeparator": { + "type": "string", + "description": "The string used to separate records." + }, + "escapeChar": { + "type": "string", + "description": "The string used to escape a quote character in a field." + }, + "headersPresent": { + "type": "boolean", + "description": "Represents whether the data has headers." + } + } }, - "EncryptionAlgorithm": { - "name": "x-ms-encryption-algorithm", - "x-ms-client-name": "encryptionAlgorithm", + "EncryptionAlgorithmType": { "type": "string", - "in": "header", - "required": false, + "description": "The algorithm used to produce the encryption key hash. Currently, the only accepted value is \\\"AES256\\\". Must be provided if the x-ms-encryption-key header is provided.", "enum": [ "AES256" ], "x-ms-enum": { "name": "EncryptionAlgorithmType", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "cpk-info" - }, - "description": "The algorithm used to produce the encryption key hash. Currently, the only accepted value is \"AES256\". Must be provided if the x-ms-encryption-key header is provided." + "modelAsString": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + } }, - "EncryptionScope": { - "name": "x-ms-encryption-scope", - "x-ms-client-name": "encryptionScope", - "type": "string", - "in": "header", - "required": false, - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "cpk-scope-info" + "FilterBlobItem": { + "type": "object", + "description": "The filter blob item.", + "properties": { + "name": { + "type": "string", + "description": "The name of the blob." + }, + "containerName": { + "type": "string", + "description": "The properties of the blob." + }, + "tags": { + "$ref": "#/definitions/BlobTags", + "description": "The metadata of the blob." + }, + "versionId": { + "type": "string", + "description": "The version ID of the blob." + }, + "isCurrentVersion": { + "type": "boolean", + "description": "Whether it is the current version of the blob" + } }, - "description": "Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to encrypt the data provided in the request. If not specified, encryption is performed with the default account encryption scope. For more information, see Encryption at Rest for Azure Storage Services." + "required": [ + "name", + "containerName" + ] }, - "DefaultEncryptionScope": { - "name": "x-ms-default-encryption-scope", - "x-ms-client-name": "DefaultEncryptionScope", - "type": "string", - "in": "header", - "required": false, - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "container-cpk-scope-info" + "FilterBlobSegment": { + "type": "object", + "description": "The result of a Filter Blobs API call", + "properties": { + "serviceEndpoint": { + "type": "string", + "description": "The service endpoint." + }, + "where": { + "type": "string", + "description": "The filter for the blobs." + }, + "blobs": { + "type": "array", + "description": "The blob segment.", + "items": { + "$ref": "#/definitions/FilterBlobItem" + }, + "x-ms-identifiers": [] + }, + "nextMarker": { + "type": "string", + "description": "The next marker of the blobs." + } }, - "description": "Optional. Version 2019-07-07 and later. Specifies the default encryption scope to set on the container and use for all future writes." - }, - "DeletedContainerName": { - "name": "x-ms-deleted-container-name", - "x-ms-client-name": "DeletedContainerName", - "type": "string", - "in": "header", - "required": false, - "x-ms-parameter-location": "method", - "description": "Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore." + "required": [ + "serviceEndpoint", + "where", + "blobs" + ] }, - "DeletedContainerVersion": { - "name": "x-ms-deleted-container-version", - "x-ms-client-name": "DeletedContainerVersion", + "FilterBlobsIncludeItem": { "type": "string", - "in": "header", - "required": false, - "x-ms-parameter-location": "method", - "description": "Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore." - }, - "DenyEncryptionScopeOverride": { - "name": "x-ms-deny-encryption-scope-override", - "x-ms-client-name": "PreventEncryptionScopeOverride", - "type": "boolean", - "in": "header", - "required": false, - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "container-cpk-scope-info" - }, - "description": "Optional. Version 2019-07-07 and newer. If true, prevents any request from specifying a different encryption scope than the scope set on the container." + "description": "The filter blobs includes.", + "enum": [ + "none", + "versions" + ], + "x-ms-enum": { + "name": "FilterBlobsIncludeItem", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "The filter includes no versions." + }, + { + "name": "Versions", + "value": "versions", + "description": "The filter includes n versions." + } + ] + } }, - "FilterBlobsInclude": { - "name": "include", - "in": "query", - "required": false, - "type": "array", - "collectionFormat": "csv", - "items": { - "type": "string", - "enum": [ - "none", - "versions" - ], - "x-ms-enum": { - "name": "FilterBlobsIncludeItem", - "modelAsString": false + "GeoReplication": { + "type": "object", + "description": "Geo-Replication information for the Secondary Storage Service", + "properties": { + "status": { + "$ref": "#/definitions/GeoReplicationStatusType", + "description": "The status of the secondary location" + }, + "lastSyncTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "A GMT date/time value, to the second. All primary writes preceding this value are guaranteed to be available for read operations at the secondary. Primary writes after this point in time may or may not be available for reads." } }, - "x-ms-parameter-location": "method", - "description": "Include this parameter to specify one or more datasets to include in the response." - }, - "FilterBlobsWhere": { - "name": "where", - "in": "query", - "required": false, - "type": "string", - "description": "Filters the results to return only to return only blobs whose tags match the specified expression.", - "x-ms-parameter-location": "method" - }, - "GetRangeContentMD5": { - "name": "x-ms-range-get-content-md5", - "x-ms-client-name": "rangeGetContentMD5", - "in": "header", - "required": false, - "type": "boolean", - "x-ms-parameter-location": "method", - "description": "When set to true and specified together with the Range, the service returns the MD5 hash for the range, as long as the range is less than or equal to 4 MB in size." - }, - "GetRangeContentCRC64": { - "name": "x-ms-range-get-content-crc64", - "x-ms-client-name": "rangeGetContentCRC64", - "in": "header", - "required": false, - "type": "boolean", - "x-ms-parameter-location": "method", - "description": "When set to true and specified together with the Range, the service returns the CRC64 hash for the range, as long as the range is less than or equal to 4 MB in size." - }, - "StructuredBodyGet": { - "name": "x-ms-structured-body", - "x-ms-client-name": "StructuredBodyType", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Specifies the response content should be returned as a structured message and specifies the message schema version and properties." + "required": [ + "status", + "lastSyncTime" + ] }, - "StructuredBodyPut": { - "name": "x-ms-structured-body", - "x-ms-client-name": "StructuredBodyType", - "in": "header", - "required": false, + "GeoReplicationStatusType": { "type": "string", - "x-ms-parameter-location": "method", - "description": "Required if the request body is a structured message. Specifies the message schema version and properties." + "description": "The geo replication status.", + "enum": [ + "live", + "bootstrap", + "unavailable" + ], + "x-ms-enum": { + "name": "GeoReplicationStatusType", + "modelAsString": true, + "values": [ + { + "name": "Live", + "value": "live", + "description": "The geo replication is live." + }, + { + "name": "Bootstrap", + "value": "bootstrap", + "description": "The geo replication is bootstrap." + }, + { + "name": "Unavailable", + "value": "unavailable", + "description": "The geo replication is unavailable." + } + ] + } }, - "StructuredContentLength": { - "name": "x-ms-structured-content-length", - "x-ms-client-name": "StructuredContentLength", - "in": "header", - "required": false, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "description": "Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length." + "JsonTextConfiguration": { + "type": "object", + "description": "Represents the JSON text configuration.", + "properties": { + "recordSeparator": { + "type": "string", + "description": "The string used to separate records." + } + } }, - "IfMatch": { - "name": "If-Match", - "x-ms-client-name": "ifMatch", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "modified-access-conditions" + "KeyInfo": { + "type": "object", + "description": "Key information", + "properties": { + "start": { + "type": "string", + "description": "The date-time the key is active." + }, + "expiry": { + "type": "string", + "description": "The date-time the key expires." + } }, - "description": "Specify an ETag value to operate only on blobs with a matching value." + "required": [ + "start", + "expiry" + ] }, - "IfModifiedSince": { - "name": "If-Modified-Since", - "x-ms-client-name": "ifModifiedSince", - "in": "header", - "required": false, + "LeaseDuration": { "type": "string", - "format": "date-time-rfc1123", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "modified-access-conditions" - }, - "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time." + "description": "The lease duration.", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDuration", + "modelAsString": true, + "values": [ + { + "name": "Infinite", + "value": "infinite", + "description": "The lease is of infinite duration." + }, + { + "name": "Fixed", + "value": "fixed", + "description": "The lease is of fixed duration." + } + ] + } }, - "IfNoneMatch": { - "name": "If-None-Match", - "x-ms-client-name": "ifNoneMatch", - "in": "header", - "required": false, + "LeaseState": { "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "modified-access-conditions" - }, - "description": "Specify an ETag value to operate only on blobs without a matching value." + "description": "The lease state.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": true, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } }, - "IfUnmodifiedSince": { - "name": "If-Unmodified-Since", - "x-ms-client-name": "ifUnmodifiedSince", - "in": "header", - "required": false, + "LeaseStatus": { "type": "string", - "format": "date-time-rfc1123", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "modified-access-conditions" - }, - "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time." - }, - "IfSequenceNumberEqualTo": { - "name": "x-ms-if-sequence-number-eq", - "x-ms-client-name": "ifSequenceNumberEqualTo", - "in": "header", - "required": false, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "sequence-number-access-conditions" - }, - "description": "Specify this header value to operate only on a blob if it has the specified sequence number." - }, - "IfSequenceNumberLessThan": { - "name": "x-ms-if-sequence-number-lt", - "x-ms-client-name": "ifSequenceNumberLessThan", - "in": "header", - "required": false, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "sequence-number-access-conditions" - }, - "description": "Specify this header value to operate only on a blob if it has a sequence number less than the specified." + "description": "The lease status.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": true, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } }, - "IfSequenceNumberLessThanOrEqualTo": { - "name": "x-ms-if-sequence-number-le", - "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo", - "in": "header", - "required": false, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "sequence-number-access-conditions" + "ListBlobsFlatSegmentResponse": { + "type": "object", + "description": "An enumeration of blobs.", + "properties": { + "serviceEndpoint": { + "type": "string", + "description": "The service endpoint." + }, + "containerName": { + "type": "string", + "description": "The container name." + }, + "prefix": { + "type": "string", + "description": "The prefix of the blobs." + }, + "marker": { + "type": "string", + "description": "The marker of the blobs." + }, + "maxResults": { + "type": "integer", + "format": "int32", + "description": "The max results of the blobs." + }, + "segment": { + "$ref": "#/definitions/BlobFlatListSegment", + "description": "The blob segment." + }, + "nextMarker": { + "type": "string", + "description": "The next marker of the blobs." + } }, - "description": "Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified." + "required": [ + "serviceEndpoint", + "containerName", + "segment" + ] }, - "IfTags": { - "name": "x-ms-if-tags", - "x-ms-client-name": "ifTags", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "modified-access-conditions" + "ListBlobsHierarchySegmentResponse": { + "type": "object", + "description": "An enumeration of blobs", + "properties": { + "serviceEndpoint": { + "type": "string", + "description": "The service endpoint." + }, + "containerName": { + "type": "string", + "description": "The container name." + }, + "delimiter": { + "type": "string", + "description": "The delimiter of the blobs." + }, + "prefix": { + "type": "string", + "description": "The prefix of the blobs." + }, + "marker": { + "type": "string", + "description": "The marker of the blobs." + }, + "maxResults": { + "type": "integer", + "format": "int32", + "description": "The max results of the blobs." + }, + "segment": { + "$ref": "#/definitions/BlobHierarchyListSegment", + "description": "The blob segment." + }, + "nextMarker": { + "type": "string", + "description": "The next marker of the blobs." + } }, - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value." + "required": [ + "serviceEndpoint", + "containerName", + "segment" + ] }, - "ImmutabilityPolicyExpiry": { - "name": "x-ms-immutability-policy-until-date", - "x-ms-client-name": "immutabilityPolicyExpiry", - "in": "header", - "required": false, + "ListBlobsIncludeItem": { "type": "string", - "format": "date-time-rfc1123", - "x-ms-parameter-location": "method", - "description": "Specifies the date time when the blobs immutability policy is set to expire." + "description": "The list blob includes parameter values.", + "enum": [ + "copy", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludeItem", + "modelAsString": true, + "values": [ + { + "name": "Copy", + "value": "copy", + "description": "The include copies." + }, + { + "name": "Deleted", + "value": "deleted", + "description": "The include deleted blobs." + }, + { + "name": "Metadata", + "value": "metadata", + "description": "The include metadata." + }, + { + "name": "Snapshots", + "value": "snapshots", + "description": "The include snapshots." + }, + { + "name": "UncommittedBlobs", + "value": "uncommittedblobs", + "description": "The include uncommitted blobs." + }, + { + "name": "Versions", + "value": "versions", + "description": "The include versions." + }, + { + "name": "Tags", + "value": "tags", + "description": "The include tags." + }, + { + "name": "ImmutabilityPolicy", + "value": "immutabilitypolicy", + "description": "The include immutable policy." + }, + { + "name": "LegalHold", + "value": "legalhold", + "description": "The include legal hold." + }, + { + "name": "DeletedWithVersions", + "value": "deletedwithversions", + "description": "The include deleted with versions." + } + ] + } }, - "ImmutabilityPolicyMode": { - "name": "x-ms-immutability-policy-mode", - "x-ms-client-name": "immutabilityPolicyMode", - "in": "header", - "required": false, + "ListContainersIncludeType": { "type": "string", + "description": "Include this parameter to specify that the container's metadata be returned as part of the response body.", "enum": [ - "Unlocked", - "Locked" + "metadata", + "deleted", + "system" ], "x-ms-enum": { - "name": "BlobImmutabilityPolicyMode", - "modelAsString": false - }, - "x-ms-parameter-location": "method", - "description": "Specifies the immutability policy mode to set on the blob." - }, - "KeyInfo": { - "description": "Key information", - "name": "KeyInfo", - "in": "body", - "x-ms-parameter-location": "method", - "required": true, - "schema": { - "$ref": "#/definitions/KeyInfo" + "name": "ListContainersIncludeType", + "modelAsString": true, + "values": [ + { + "name": "metadata", + "value": "metadata", + "description": "Include metadata" + }, + { + "name": "deleted", + "value": "deleted", + "description": "Include deleted" + }, + { + "name": "system", + "value": "system", + "description": "Include system" + } + ] } }, - "ListBlobsInclude": { - "name": "include", - "in": "query", - "required": false, - "type": "array", - "collectionFormat": "csv", - "items": { - "type": "string", - "enum": [ - "copy", - "deleted", - "metadata", - "snapshots", - "uncommittedblobs", - "versions", - "tags", - "immutabilitypolicy", - "legalhold", - "deletedwithversions" - ], - "x-ms-enum": { - "name": "ListBlobsIncludeItem", - "modelAsString": false + "ListContainersSegmentResponse": { + "type": "object", + "description": "The list container segment response", + "properties": { + "serviceEndpoint": { + "type": "string", + "description": "The service endpoint." + }, + "prefix": { + "type": "string", + "description": "The prefix of the containers." + }, + "marker": { + "type": "string", + "description": "The marker of the containers." + }, + "maxResults": { + "type": "integer", + "format": "int32", + "description": "The max results of the containers." + }, + "containerItems": { + "type": "array", + "description": "The container segment.", + "items": { + "$ref": "#/definitions/ContainerItem" + }, + "x-ms-identifiers": [] + }, + "NextMarker": { + "type": "string", + "description": "The next marker of the containers." } }, - "x-ms-parameter-location": "method", - "description": "Include this parameter to specify one or more datasets to include in the response." + "required": [ + "serviceEndpoint", + "containerItems" + ] }, - "ListContainersInclude": { - "name": "include", - "in": "query", - "required": false, - "type": "array", - "collectionFormat": "csv", - "items": { - "type": "string", - "enum": [ - "metadata", - "deleted", - "system" - ], - "x-ms-enum": { - "name": "ListContainersIncludeType", - "modelAsString": false + "Logging": { + "type": "object", + "description": "Azure Analytics Logging settings.", + "properties": { + "version": { + "type": "string", + "description": "The version of the logging properties." + }, + "delete": { + "type": "boolean", + "description": "Whether delete operation is logged." + }, + "read": { + "type": "boolean", + "description": "Whether read operation is logged." + }, + "write": { + "type": "boolean", + "description": "Whether write operation is logged." + }, + "retentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "The retention policy of the logs." } }, - "x-ms-parameter-location": "method", - "description": "Include this parameter to specify that the container's metadata be returned as part of the response body." - }, - "LeaseBreakPeriod": { - "name": "x-ms-lease-break-period", - "x-ms-client-name": "breakPeriod", - "in": "header", - "required": false, - "type": "integer", - "x-ms-parameter-location": "method", - "description": "For a break operation, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. This break period is only used if it is shorter than the time remaining on the lease. If longer, the time remaining on the lease is used. A new lease will not be available before the break period has expired, but the lease may be held for longer than the break period. If this header does not appear with a break operation, a fixed-duration lease breaks after the remaining lease period elapses, and an infinite lease breaks immediately." - }, - "LeaseDuration": { - "name": "x-ms-lease-duration", - "x-ms-client-name": "duration", - "in": "header", - "required": false, - "type": "integer", - "x-ms-parameter-location": "method", - "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change." + "required": [ + "version", + "delete", + "read", + "write", + "retentionPolicy" + ] }, - "LeaseIdOptional": { - "name": "x-ms-lease-id", - "x-ms-client-name": "leaseId", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "lease-access-conditions" + "Metrics": { + "type": "object", + "description": "The metrics properties.", + "properties": { + "version": { + "type": "string", + "description": "The version of the metrics properties." + }, + "enabled": { + "type": "boolean", + "description": "Whether it is enabled." + }, + "includeApis": { + "type": "boolean", + "description": "Whether to include API in the metrics." + }, + "retentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "The retention policy of the metrics." + } }, - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID." - }, - "LeaseIdRequired": { - "name": "x-ms-lease-id", - "x-ms-client-name": "leaseId", - "in": "header", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Specifies the current lease ID on the resource." - }, - "LegalHoldOptional": { - "name": "x-ms-legal-hold", - "x-ms-client-name": "legalHold", - "in": "header", - "required": false, - "type": "boolean", - "x-ms-parameter-location": "method", - "description": "Specified if a legal hold should be set on the blob." - }, - "LegalHoldRequired": { - "name": "x-ms-legal-hold", - "x-ms-client-name": "legalHold", - "in": "header", - "required": true, - "type": "boolean", - "x-ms-parameter-location": "method", - "description": "Specified if a legal hold should be set on the blob." - }, - "Marker": { - "name": "marker", - "in": "query", - "required": false, - "type": "string", - "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", - "x-ms-parameter-location": "method" - }, - "MaxResults": { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "minimum": 1, - "x-ms-parameter-location": "method", - "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items. Note that if the listing operation crosses a partition boundary, then the service will return a continuation token for retrieving the remainder of the results. For this reason, it is possible that the service will return fewer results than specified by maxresults, or than the default of 5000." + "required": [ + "enabled" + ] }, - "Metadata": { - "name": "x-ms-meta", - "x-ms-client-name": "metadata", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Optional. Specifies a user-defined name-value pair associated with the blob. If no name-value pairs are specified, the operation will copy the metadata from the source blob or file to the destination blob. If one or more name-value pairs are specified, the destination blob is created with the specified metadata, and metadata is not copied from the source blob or file. Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, Blobs, and Metadata for more information.", - "x-ms-header-collection-prefix": "x-ms-meta-" + "ObjectReplicationMetadata": { + "type": "object", + "description": "The object replication metadata.", + "additionalProperties": { + "type": "string" + } }, - "MultipartContentType": { - "name": "Content-Type", - "x-ms-client-name": "multipartContentType", - "in": "header", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_" + "PageList": { + "type": "object", + "description": "Represents a page list.", + "properties": { + "pageRange": { + "type": "array", + "description": "The page ranges.", + "items": { + "$ref": "#/definitions/PageRange" + }, + "x-ms-identifiers": [] + }, + "clearRange": { + "type": "array", + "description": "The clear ranges.", + "items": { + "$ref": "#/definitions/ClearRange" + }, + "x-ms-identifiers": [] + }, + "nextMarker": { + "type": "string", + "description": "The next marker." + } + } }, - "ObjectReplicationPolicyId": { - "name": "x-ms-or-policy-id", - "x-ms-client-name": "objectReplicationPolicyId", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + "PageRange": { + "type": "object", + "description": "The page range.", + "properties": { + "start": { + "type": "integer", + "format": "int64", + "description": "The start of the byte range." + }, + "end": { + "type": "integer", + "format": "int64", + "description": "The end of the byte range." + } + }, + "required": [ + "start", + "end" + ] }, - "ObjectReplicationRules": { - "name": "x-ms-or", - "x-ms-client-name": "ObjectReplicationRules", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed).", - "x-ms-header-collection-prefix": "x-ms-or-" + "ParquetConfiguration": { + "type": "object", + "description": "Represents the Parquet configuration.", + "additionalProperties": {} }, - "Prefix": { - "name": "prefix", - "in": "query", - "required": false, + "PremiumPageBlobAccessTier": { "type": "string", - "description": "Filters the results to return only containers whose name begins with the specified prefix.", - "x-ms-parameter-location": "method" + "description": "The premium page blob access tier types.", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80" + ], + "x-ms-enum": { + "name": "PremiumPageBlobAccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The premium page blob access tier is P4." + }, + { + "name": "P6", + "value": "P6", + "description": "The premium page blob access tier is P6." + }, + { + "name": "P10", + "value": "P10", + "description": "The premium page blob access tier is P10." + }, + { + "name": "P15", + "value": "P15", + "description": "The premium page blob access tier is P15." + }, + { + "name": "P20", + "value": "P20", + "description": "The premium page blob access tier is P20." + }, + { + "name": "P30", + "value": "P30", + "description": "The premium page blob access tier is P30." + }, + { + "name": "P40", + "value": "P40", + "description": "The premium page blob access tier is P40." + }, + { + "name": "P50", + "value": "P50", + "description": "The premium page blob access tier is P50." + }, + { + "name": "P60", + "value": "P60", + "description": "The premium page blob access tier is P60." + }, + { + "name": "P70", + "value": "P70", + "description": "The premium page blob access tier is P70." + }, + { + "name": "P80", + "value": "P80", + "description": "The premium page blob access tier is P80." + } + ] + } }, - "PrevSnapshot": { - "name": "prevsnapshot", - "in": "query", - "required": false, + "PublicAccessType": { "type": "string", - "x-ms-parameter-location": "method", - "description": "Optional in version 2015-07-08 and newer. The prevsnapshot parameter is a DateTime value that specifies that the response will contain only pages that were changed between target blob and previous snapshot. Changed pages include both updated and cleared pages. The target blob may be a snapshot, as long as the snapshot specified by prevsnapshot is the older of the two. Note that incremental snapshots are currently supported only for blobs created on or after January 1, 2016." + "description": "The public access types.", + "enum": [ + "blob", + "container" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] + } }, - "PrevSnapshotUrl": { - "name": "x-ms-previous-snapshot-url", - "x-ms-client-name": "prevSnapshotUrl", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Optional. This header is only supported in service versions 2019-04-19 and after and specifies the URL of a previous snapshot of the target blob. The response will only contain pages that were changed between the target blob and its previous snapshot." + "QueryFormat": { + "type": "object", + "description": "The query format settings.", + "properties": { + "type": { + "$ref": "#/definitions/QueryType", + "description": "The query type." + }, + "delimitedTextConfiguration": { + "$ref": "#/definitions/DelimitedTextConfiguration", + "description": "The delimited text configuration." + }, + "jsonTextConfiguration": { + "$ref": "#/definitions/JsonTextConfiguration", + "description": "The JSON text configuration." + }, + "arrowConfiguration": { + "$ref": "#/definitions/ArrowConfiguration", + "description": "The Apache Arrow configuration." + }, + "parquetTextConfiguration": { + "$ref": "#/definitions/ParquetConfiguration", + "description": "The Parquet configuration." + } + }, + "required": [ + "type" + ] }, - "ProposedLeaseIdOptional": { - "name": "x-ms-proposed-lease-id", - "x-ms-client-name": "proposedLeaseId", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID string formats." + "QueryRequest": { + "type": "object", + "description": "Groups the set of query request settings.", + "properties": { + "queryType": { + "$ref": "#/definitions/QueryRequestType", + "description": "Required. The type of the provided query expression." + }, + "expression": { + "type": "string", + "description": "The query expression in SQL. The maximum size of the query expression is 256KiB." + }, + "inputSerialization": { + "$ref": "#/definitions/QuerySerialization", + "description": "The input serialization settings." + }, + "outputSerialization": { + "$ref": "#/definitions/QuerySerialization", + "description": "The output serialization settings." + } + }, + "required": [ + "queryType", + "expression" + ] }, - "ProposedLeaseIdRequired": { - "name": "x-ms-proposed-lease-id", - "x-ms-client-name": "proposedLeaseId", - "in": "header", - "required": true, + "QueryRequestType": { "type": "string", - "x-ms-parameter-location": "method", - "description": "Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID string formats." + "description": "The query request, note only SQL supported", + "enum": [ + "SQL" + ], + "x-ms-enum": { + "name": "QueryRequestType", + "modelAsString": true, + "values": [ + { + "name": "SQL", + "value": "SQL", + "description": "The SQL request query type." + } + ] + } }, - "QueryRequest": { - "name": "queryRequest", - "in": "body", - "x-ms-parameter-location": "client", - "schema": { - "$ref": "#/definitions/QueryRequest" + "QuerySerialization": { + "type": "object", + "description": "The query serialization settings.", + "properties": { + "format": { + "$ref": "#/definitions/QueryFormat", + "description": "The query format." + } }, - "description": "the query request" + "required": [ + "format" + ] }, - "Range": { - "name": "x-ms-range", - "x-ms-client-name": "range", - "in": "header", - "required": false, + "QueryType": { "type": "string", - "x-ms-parameter-location": "method", - "description": "Return only the bytes of the blob in the specified range." + "description": "The query format type.", + "enum": [ + "delimited", + "json", + "arrow", + "parquet" + ], + "x-ms-enum": { + "name": "QueryType", + "modelAsString": true, + "values": [ + { + "name": "Delimited", + "value": "delimited", + "description": "The query format type is delimited." + }, + { + "name": "JSON", + "value": "json", + "description": "The query format type is JSON." + }, + { + "name": "Arrow", + "value": "arrow", + "description": "The query format type is Apache Arrow." + }, + { + "name": "Parquet", + "value": "parquet", + "description": "The query format type is Parquet." + } + ] + } }, - "RangeRequiredPutPageFromUrl": { - "name": "x-ms-range", - "x-ms-client-name": "range", - "in": "header", - "required": true, + "RehydratePriority": { "type": "string", - "x-ms-parameter-location": "method", - "description": "The range of bytes to which the source range would be written. The range should be 512 aligned and range-end is required." + "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "enum": [ + "High", + "Standard" + ], + "x-ms-enum": { + "name": "RehydratePriority", + "modelAsString": true, + "values": [ + { + "name": "High", + "value": "High", + "description": "The rehydrate priority is high." + }, + { + "name": "Standard", + "value": "Standard", + "description": "The rehydrate priority is standard." + } + ] + } }, - "SequenceNumberAction": { - "name": "x-ms-sequence-number-action", - "x-ms-client-name": "sequenceNumberAction", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Required if the x-ms-blob-sequence-number header is set for the request. This property applies to page blobs only. This property indicates how the service should modify the blob's sequence number", + "RetentionPolicy": { + "type": "object", + "description": "The retention policy.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether to enable the retention policy." + }, + "days": { + "type": "integer", + "format": "int32", + "description": "The number of days to retain the logs.", + "minimum": 1 + }, + "allowPermanentDelete": { + "type": "boolean", + "description": "Whether to allow permanent delete." + } + }, + "required": [ + "enabled" + ] + }, + "SequenceNumberActionType": { "type": "string", + "description": "The sequence number actions.", "enum": [ + "increment", "max", - "update", - "increment" + "update" ], "x-ms-enum": { "name": "SequenceNumberActionType", - "modelAsString": false + "modelAsString": true, + "values": [ + { + "name": "Increment", + "value": "increment", + "description": "Increment the sequence number." + }, + { + "name": "Max", + "value": "max", + "description": "Set the maximum for the sequence number." + }, + { + "name": "Update", + "value": "update", + "description": "Update the sequence number." + } + ] } }, - "Snapshot": { - "name": "snapshot", - "in": "query", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob." - }, - "VersionId": { - "name": "versionid", - "x-ms-client-name": "versionId", - "in": "query", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer." + "SignedIdentifier": { + "type": "object", + "description": "The signed identifier.", + "properties": { + "id": { + "type": "string", + "description": "The unique ID for the signed identifier." + }, + "accessPolicy": { + "$ref": "#/definitions/AccessPolicy", + "description": "The access policy for the signed identifier." + } + }, + "required": [ + "id", + "accessPolicy" + ] }, - "SealBlob": { - "name": "x-ms-seal-blob", - "x-ms-client-name": "SealBlob", - "in": "header", - "required": false, - "type": "boolean", - "x-ms-parameter-location": "method", - "description": "Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer." + "SignedIdentifiers": { + "type": "array", + "description": "Represents an array of signed identifiers", + "items": { + "$ref": "#/definitions/SignedIdentifier" + } }, - "SourceContainerName": { - "name": "x-ms-source-container-name", - "x-ms-client-name": "SourceContainerName", + "SkuName": { "type": "string", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Required. Specifies the name of the container to rename." + "description": "The SKU types", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": true, + "values": [ + { + "name": "StandardLRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "StandardGRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "StandardRAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "StandardZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "PremiumLRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + } + ] + } }, - "SourceContentMD5": { - "name": "x-ms-source-content-md5", - "x-ms-client-name": "sourceContentMD5", - "in": "header", - "required": false, - "type": "string", - "format": "byte", - "x-ms-parameter-location": "method", - "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source." + "StaticWebsite": { + "type": "object", + "description": "The properties that enable an account to host a static website", + "properties": { + "enabled": { + "type": "boolean", + "description": "Indicates whether this account is hosting a static website" + }, + "indexDocument": { + "type": "string", + "description": "The index document." + }, + "errorDocument404Path": { + "type": "string", + "description": "The error document." + }, + "defaultIndexDocumentPath": { + "type": "string", + "description": "Absolute path of the default index page" + } + }, + "required": [ + "enabled" + ] }, - "SourceContentCRC64": { - "name": "x-ms-source-content-crc64", - "x-ms-client-name": "sourceContentcrc64", - "in": "header", - "required": false, - "type": "string", - "format": "byte", - "x-ms-parameter-location": "method", - "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source." + "StorageError": { + "type": "object", + "description": "The error response.", + "properties": { + "Message": { + "type": "string", + "description": "The error message." + } + } }, - "SourceRange": { - "name": "x-ms-source-range", - "x-ms-client-name": "sourceRange", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Bytes of source data in the specified range." + "StorageServiceProperties": { + "type": "object", + "description": "The service properties.", + "properties": { + "logging": { + "$ref": "#/definitions/Logging", + "description": "The logging properties." + }, + "hourMetrics": { + "$ref": "#/definitions/Metrics", + "description": "The hour metrics properties." + }, + "minuteMetrics": { + "$ref": "#/definitions/Metrics", + "description": "The minute metrics properties." + }, + "cors": { + "type": "array", + "description": "The CORS properties.", + "items": { + "$ref": "#/definitions/CorsRule" + }, + "x-ms-identifiers": [] + }, + "defaultServiceVersion": { + "type": "string", + "description": "The default service version." + }, + "deleteRetentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "The delete retention policy." + }, + "staticWebsite": { + "$ref": "#/definitions/StaticWebsite", + "description": "The static website properties." + } + } }, - "SourceRangeRequiredPutPageFromUrl": { - "name": "x-ms-source-range", - "x-ms-client-name": "sourceRange", - "in": "header", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Bytes of source data in the specified range. The length of this range should match the ContentLength header and x-ms-range/Range destination range header." + "StorageServiceStats": { + "type": "object", + "description": "Stats for the storage service.", + "properties": { + "geoReplication": { + "$ref": "#/definitions/GeoReplication", + "description": "The geo replication stats." + } + } }, - "SourceIfMatch": { - "name": "x-ms-source-if-match", - "x-ms-client-name": "sourceIfMatch", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "source-modified-access-conditions" + "UserDelegationKey": { + "type": "object", + "description": "A user delegation key.", + "properties": { + "signedOid": { + "$ref": "#/definitions/Azure.Core.uuid", + "description": "The Azure Active Directory object ID in GUID format." + }, + "signedTid": { + "$ref": "#/definitions/Azure.Core.uuid", + "description": "The Azure Active Directory tenant ID in GUID format." + }, + "signedStart": { + "type": "string", + "description": "The date-time the key is active." + }, + "signedExpiry": { + "type": "string", + "description": "The date-time the key expires." + }, + "signedService": { + "type": "string", + "description": "Abbreviation of the Azure Storage service that accepts the key." + }, + "signedVersion": { + "type": "string", + "description": "The service version that created the key." + }, + "value": { + "type": "string", + "description": "The key as a base64 string." + } }, - "description": "Specify an ETag value to operate only on blobs with a matching value." - }, - "SourceIfModifiedSince": { - "name": "x-ms-source-if-modified-since", - "x-ms-client-name": "sourceIfModifiedSince", + "required": [ + "signedOid", + "signedTid", + "signedStart", + "signedExpiry", + "signedService", + "signedVersion", + "value" + ] + } + }, + "parameters": { + "Azure.Core.ClientRequestIdHeader": { + "name": "x-ms-client-request-id", "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", "required": false, "type": "string", - "format": "date-time-rfc1123", + "format": "uuid", "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "source-modified-access-conditions" - }, - "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time." + "x-ms-client-name": "clientRequestId" }, - "SourceIfNoneMatch": { - "name": "x-ms-source-if-none-match", - "x-ms-client-name": "sourceIfNoneMatch", + "Azure.Core.ConditionalRequestHeaders.ifMatch": { + "name": "If-Match", "in": "header", + "description": "The request should only proceed if an entity matches this string.", "required": false, "type": "string", "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "source-modified-access-conditions" - }, - "description": "Specify an ETag value to operate only on blobs without a matching value." + "x-ms-client-name": "ifMatch" }, - "SourceIfUnmodifiedSince": { - "name": "x-ms-source-if-unmodified-since", - "x-ms-client-name": "sourceIfUnmodifiedSince", + "Azure.Core.ConditionalRequestHeaders.ifModifiedSince": { + "name": "If-Modified-Since", "in": "header", + "description": "The request should only proceed if the entity was modified after this time.", "required": false, "type": "string", - "format": "date-time-rfc1123", + "format": "date-time", "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "source-modified-access-conditions" - }, - "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time." + "x-ms-client-name": "ifModifiedSince" }, - "SourceLeaseId": { - "name": "x-ms-source-lease-id", - "x-ms-client-name": "sourceLeaseId", + "Azure.Core.ConditionalRequestHeaders.ifNoneMatch": { + "name": "If-None-Match", "in": "header", + "description": "The request should only proceed if no entity matches this string.", "required": false, "type": "string", "x-ms-parameter-location": "method", - "description": "A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match." + "x-ms-client-name": "ifNoneMatch" }, - "SourceIfTags": { - "name": "x-ms-source-if-tags", - "x-ms-client-name": "sourceIfTags", + "Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince": { + "name": "If-Unmodified-Since", "in": "header", + "description": "The request should only proceed if the entity was not modified after this time.", "required": false, "type": "string", + "format": "date-time", "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "source-modified-access-conditions" - }, - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value." - }, - "SourceUrl": { - "name": "x-ms-copy-source", - "x-ms-client-name": "sourceUrl", - "in": "header", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Specify a URL to the copy source." - }, - "StorageServiceProperties": { - "name": "StorageServiceProperties", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StorageServiceProperties" - }, - "x-ms-parameter-location": "method", - "description": "The StorageService properties." - }, - "Timeout": { - "name": "timeout", - "in": "query", - "required": false, - "type": "integer", - "minimum": 0, - "x-ms-parameter-location": "method", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations." + "x-ms-client-name": "ifUnmodifiedSince" } } }