From 9dc72b8a044c2ba20b956aae5ca8c3d53b725c76 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Mon, 26 Feb 2024 19:14:59 -0500 Subject: [PATCH 001/129] [Storage Blob] Adding TypeSpec --- .../Microsoft.BlobStorage/.editorconfig | 8 + .../storage/Microsoft.BlobStorage/client.tsp | 5 + .../storage/Microsoft.BlobStorage/main.tsp | 48 + .../storage/Microsoft.BlobStorage/models.tsp | 297 ++++++ .../Microsoft.BlobStorage/package-lock.json | 893 ++++++++++++++++++ .../Microsoft.BlobStorage/package.json | 13 + .../storage/Microsoft.BlobStorage/routes.tsp | 38 + .../Microsoft.BlobStorage/tspconfig.yaml | 36 + 8 files changed, 1338 insertions(+) create mode 100644 specification/storage/Microsoft.BlobStorage/.editorconfig create mode 100644 specification/storage/Microsoft.BlobStorage/client.tsp create mode 100644 specification/storage/Microsoft.BlobStorage/main.tsp create mode 100644 specification/storage/Microsoft.BlobStorage/models.tsp create mode 100644 specification/storage/Microsoft.BlobStorage/package-lock.json create mode 100644 specification/storage/Microsoft.BlobStorage/package.json create mode 100644 specification/storage/Microsoft.BlobStorage/routes.tsp create mode 100644 specification/storage/Microsoft.BlobStorage/tspconfig.yaml diff --git a/specification/storage/Microsoft.BlobStorage/.editorconfig b/specification/storage/Microsoft.BlobStorage/.editorconfig new file mode 100644 index 000000000000..035388c1bf0c --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/.editorconfig @@ -0,0 +1,8 @@ +root = true + +[*] +indent_size = 2 +indent_style = space +end_of_line = lf +insert_final_newline = true +charset = utf-8 \ 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..164fc28c837f --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -0,0 +1,5 @@ +/** + * PLACEHOLDER + * Add readme and sample + */ +import "./main.tsp"; diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp new file mode 100644 index 000000000000..9d0dd0633620 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -0,0 +1,48 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; + +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( + "{endpoint}", + "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") + endpoint: url, + } +) +@versioned(Azure.Storage.Blob.Versions) +namespace Azure.Storage.Blob; + +@doc("The Azure.Storage.Blob service versions.") +enum Versions { + @useDependency(Azure.Core.Versions.v1_0_Preview_1) + @doc("The 2020-10-02-preview version of the Azure.Storage.Blob service.") + `2020-10-02-preview`, + @doc("The 2020-12-06-preview version of the Azure.Storage.Blob service.") + `2020-12-06-preview`, + @doc("The 2021-02-12-preview version of the Azure.Storage.Blob service.") + `2021-02-12-preview`, + @doc("The 2021-04-10-preview version of the Azure.Storage.Blob service.") + `2021-04-10-preview`, + @doc("The 2021-08-06-preview version of the Azure.Storage.Blob service.") + `2021-08-06-preview`, + @doc("The 2021-12-02-preview version of the Azure.Storage.Blob service.") + `2021-12-02-preview`, +} diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp new file mode 100644 index 000000000000..b5dbf550d64f --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -0,0 +1,297 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; + +using Azure.Core; +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Microsoft.BlobStorage; + +@doc("Key information") +model KeyInfo { + @doc("The date-time the key is active.") + Start: string; + + @doc("The date-time the key expires.") + Expiry: string; +} + +@doc("A user delegation key.") +model UserDelegationKey { + @doc("The Azure Active Directory object ID in GUID format.") + SignedOid: string; + + @doc("The Azure Active Directory tenant ID in GUID format.") + SignedTid: string; + + @doc("The date-time the key is active.") + SignedStart: string; + + @doc("The date-time the key expires.") + SignedExpiry: string; + + @doc("Abbreviation of the Azure Storage service that accepts the key.") + SignedService: string; + + @doc("The service version that created the key.") + SignedVersion: string; + + @doc("The key as a base64 string.") + Value: string; +} + +@doc("The public access types.") +enum PublicAccessType { + @doc("Blob access.") + blob, + @doc("Container access.") + container, +} + +@doc("The copy status.") +enum CopyStatus { + @doc("The copy operation is pending.") + pending, + @doc("The copy operation succeeded.") + success, + @doc("The copy operation failed.") + failed, + @doc("The copy operation is aborted.") + aborted, +} + +@doc("The lease duration.") +enum LeaseDuration { + @doc("The lease is of infinite duration.") + infinite, + @doc("The lease is of fixed duration.") + fixed, +} + +@doc("The lease state.") +enum LeaseState { + @doc("The lease is available.") + available, + @doc("The lease is currently leased.") + leased, + @doc("The lease is expired.") + expired, + @doc("The lease is breaking.") + breaking, + @doc("The lease is broken.") + broken, +} + +@doc("The lease status.") +enum LeaseStatus { + @doc("The lease is unlocked.") + unlocked, + @doc("The lease is locked.") + locked, +} + +@doc("Represents an access policy.") +model AccessPolicy { + @doc("The date-time the policy is active.") + Start: string; + + @doc("The date-time the policy expires.") + Expiry: string; + + @doc("The permissions for acl the policy.") + Permission: string; +} + +@doc("The access tiers.") +enum AccessTier { + @doc("The hot P4 tier.") + P4, + @doc("The hot P6 tier.") + P6, + @doc("The hot P10 tier.") + P10, + @doc("The hot P15 tier.") + P15, + @doc("The hot P20 tier.") + P20, + @doc("The hot P30 tier.") + P30, + @doc("The hot P40 tier.") + P40, + @doc("The hot P50 tier.") + P50, + @doc("The hot P60 tier.") + P60, + @doc("The hot P70 tier.") + P70, + @doc("The hot P80 tier.") + P80, + @doc("The hot access tier.") + Hot, + @doc("The cool access tier.") + Cool, + @doc("The archive access tier.") + Archive, +} + +@doc("The archive status.") +enum ArchiveStatus { + @doc("The archive status is rehydrating pending to hot.") + `rehydrate-pending-to-hot`, + @doc("The archive status is rehydrating pending to cool.") + `rehydrate-pending-to-cool`, + @doc("The archive status is rehydrating pending to archive.") + `rehydrate-pending-to-archive`, + @doc("The archive status is rehydrating pending to expired.") + `rehydrate-pending-to-expired`, +} + +@doc("An Azure Storage Blob") +model BlobItem { + // TODO: Add XML attribute of Encoded + @doc("The name of the blob.") + Name: string; + + @doc("Whether the blob is deleted.") + Deleted: boolean; + + @doc("The snapshot of the blob.") + Snapshot: string; + + @doc("The version id of the blob.") + VersionId?: string; + + @doc("Whether the blob is the current version.") + IsCurrentVersion?: boolean; + + @doc("The properties of the blob.") + Properties: BlobProperties; + + @doc("The metadata of the blob.") + Metadata?: BlogMetadata; + + @doc("The tags of the blob.") + Tags?: BlobTags; + + @doc("The object replication metadata of the blob.") + ObjectReplicationMetadata?: ObjectReplicationMetadata; + + @doc("Whether the blog has versions only.") + HasVersionsOnly?: boolean; +} + +@doc("The properties of a blob.") +model BlobProperties { + @doc("The date-time the blob was created in RFC1123 format.") + `Creation-Time`?: DateTimeKnownEncoding.rfc7231; + + @doc("The date-time the blob was last modified in RFC1123 format.") + `Last-Modified`: DateTimeKnownEncoding.rfc7231; + + @doc("The blog ETag.") + ETag: string; + + @doc("The content length of the blob.") + `Content-Length`?: int64; + + @doc("The content type of the blob.") + `Content-Type`?: string; + + @doc("The content encoding of the blob.") + `Content-Encoding`?: string; + + @doc("The content language of the blob.") + `Content-Language`?: string; + + @doc("The content MD5 of the blob.") + `Content-MD5`?: string; + + @doc("The content disposition of the blob.") + `Content-Disposition`?: string; + + @doc("The cache control of the blob.") + `Cache-Control`?: string; + + @doc("The sequence number of the blob.") + `x-ms-blob-sequence-number`?: int64; + + @doc("The blob type.") + `Blob-Type`: "BlockBlob" | "PageBlob" | "AppendBlob"; + + @doc("The lease status of the blob.") + LeaseStatus?: LeaseStatus; + + @doc("The lease state of the blob.") + LeaseState?: LeaseState; + + @doc("The lease duration of the blob.") + LeaseDuration?: LeaseDuration; + + @doc("The copy ID of the blob.") + CopyId?: string; + + @doc("The copy status of the blob.") + CopyStatus?: CopyStatus; + + @doc("The copy source of the blob.") + CopySource?: string; + + @doc("The copy progress of the blob.") + CopyProgress?: string; + + @doc("The copy completion time of the blob.") + CopyCompletionTime?: DateTimeKnownEncoding.rfc7231; + + @doc("The copy status description of the blob.") + CopyStatusDescription?: string; + + @doc("Whether the blog is encrypted on the server.") + ServerEncrypted?: boolean; + + @doc("Whether the blog is incremental copy.") + IncrementalCopy?: boolean; + + @doc("The name of the desination snapshot.") + DestinationSnapshot?: string; + + @doc("The time the blob was deleted.") + DeletedTime?: DateTimeKnownEncoding.rfc7231; + + @doc("The remaining retention days of the blob.") + RemainingRetentionDays?: int32; + + @doc("The access tier of the blob.") + AccessTier?: AccessTier; + + @doc("Whether the access tier is inferred.") + AccessTierInferred?: boolean; + + @doc("The archive status of the blob.") + ArchiveStatus?: ArchiveStatus; + + @doc("The encryption scope of the blob.") + EncryptionScope?: string; + + @doc("The access tier change time of the blob.") + AccessTierChangeTime?: DateTimeKnownEncoding.rfc7231; + + @doc("The number of tags for the blob.") + TagCount?: int32; + + @doc("The expire time of the blob.") + `Expiry-Time`?: DateTimeKnownEncoding.rfc7231; +} + +model BlogMetadata { + +} + +model BlobTags { + +} + +model ObjectReplicationMetadata { + +} diff --git a/specification/storage/Microsoft.BlobStorage/package-lock.json b/specification/storage/Microsoft.BlobStorage/package-lock.json new file mode 100644 index 000000000000..f9884096fd68 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/package-lock.json @@ -0,0 +1,893 @@ +{ + "name": "Microsoft.BlobStorage", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "Microsoft.BlobStorage", + "version": "0.1.0", + "dependencies": { + "@azure-tools/typespec-autorest": "^0.39.2", + "@azure-tools/typespec-azure-core": "^0.39.1", + "@typespec/compiler": "latest", + "@typespec/openapi3": "^0.53.2", + "@typespec/rest": "^0.53.0" + } + }, + "node_modules/@azure-tools/typespec-autorest": { + "version": "0.39.2", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.39.2.tgz", + "integrity": "sha512-sdYbYKv6uIktMqX573buyMoLiJMTCwk17DN/CeX0NPtmSx1SXLPh9stQFg2H/IMgVS8VmTlVeCYoSKR7krjsGg==", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@azure-tools/typespec-azure-core": "~0.39.1", + "@azure-tools/typespec-client-generator-core": "~0.39.0", + "@typespec/compiler": "~0.53.1", + "@typespec/http": "~0.53.0", + "@typespec/openapi": "~0.53.0", + "@typespec/rest": "~0.53.0", + "@typespec/versioning": "~0.53.0" + } + }, + "node_modules/@azure-tools/typespec-azure-core": { + "version": "0.39.1", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.39.1.tgz", + "integrity": "sha512-b1cN1HXTcEiKIRpk2EatFK/C4NReDaW2h4N3V4C5dxGeeLAnTa1jsQ6lwobH6Zo39CdrjazNXiSbcEq1UZ7kPw==", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.53.1", + "@typespec/http": "~0.53.0", + "@typespec/rest": "~0.53.0" + } + }, + "node_modules/@azure-tools/typespec-client-generator-core": { + "version": "0.39.1", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.39.1.tgz", + "integrity": "sha512-EV3N6IN1i/hXGqYKNfXx6+2QAyZnG4IpC9RUk6fqwSQDWX7HtMcfdXqlOaK3Rz2H6BUAc9OnH+Trq/uJCl/RgA==", + "peer": true, + "dependencies": { + "change-case": "~5.3.0", + "pluralize": "^8.0.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.53.1", + "@typespec/http": "~0.53.0", + "@typespec/rest": "~0.53.0", + "@typespec/versioning": "~0.53.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typespec/compiler": { + "version": "0.53.1", + "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.53.1.tgz", + "integrity": "sha512-qneMDvZsLaL8+3PXzwXMAqgE4YtkUPPBg4oXrbreYa5NTccuvgVaO4cfya/SzG4WePUnmDTbbrP5aWd+VzYwYA==", + "dependencies": { + "@babel/code-frame": "~7.23.5", + "ajv": "~8.12.0", + "change-case": "~5.3.0", + "globby": "~14.0.0", + "mustache": "~4.2.0", + "picocolors": "~1.0.0", + "prettier": "~3.1.1", + "prompts": "~2.4.2", + "semver": "^7.5.4", + "vscode-languageserver": "~9.0.0", + "vscode-languageserver-textdocument": "~1.0.8", + "yaml": "~2.3.4", + "yargs": "~17.7.2" + }, + "bin": { + "tsp": "cmd/tsp.js", + "tsp-server": "cmd/tsp-server.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@typespec/http": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.53.0.tgz", + "integrity": "sha512-Hdwbxr6KgzmJdULbbcwWaSSrWlduuMuEVUVdlytxyo9K+aoUCcPl0thR5Ez2VRh02/IJl3xG4n5wXgOwWb3amA==", + "peer": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.53.0" + } + }, + "node_modules/@typespec/openapi": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.53.0.tgz", + "integrity": "sha512-FRHb6Wi4Yf1HGm3EnhhXZ0Bw+EIPam6ptxRy7NDRxyMnzHsOphGcv8mDIZk6MPSy8xPasbFNwaRC1TXpxVhQBw==", + "peer": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.53.0", + "@typespec/http": "~0.53.0" + } + }, + "node_modules/@typespec/openapi3": { + "version": "0.53.2", + "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.53.2.tgz", + "integrity": "sha512-8uwU3iJbt+WN3WlT9VzC7DN8rzB727zr8BMwZ81XN1/sX8dOJB49F5UiK0L+ychvx15RZ96CvYPCFmmnsOeyCQ==", + "dependencies": { + "yaml": "~2.3.4" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.53.1", + "@typespec/http": "~0.53.0", + "@typespec/openapi": "~0.53.0", + "@typespec/versioning": "~0.53.0" + } + }, + "node_modules/@typespec/rest": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.53.0.tgz", + "integrity": "sha512-aA75Ol2pRvUjtRqQvFHmFG52pkeif3m+tboLAT00AekTxOPZ3rqQmlE12ne4QF8KjgHA6denqH4f/XyDoRJOJQ==", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.53.0", + "@typespec/http": "~0.53.0" + } + }, + "node_modules/@typespec/versioning": { + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.53.0.tgz", + "integrity": "sha512-nrrLXCWPDrrClAfpCMzQ3YPTbKQmjPC3LSeMjq+wPiMq+1PW95ulOGD4QiCBop+4wKhMCJHnqqSzVauT1LjdvQ==", + "peer": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.53.0" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/change-case": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.3.0.tgz", + "integrity": "sha512-Eykca0fGS/xYlx2fG5NqnGSnsWauhSGiSXYhB1kO6E909GUfo8S54u4UZNS7lMJmgZumZ2SUpWaoLgAcfQRICg==" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", + "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "dependencies": { + "vscode-languageserver-protocol": "3.17.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", + "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + } + } +} diff --git a/specification/storage/Microsoft.BlobStorage/package.json b/specification/storage/Microsoft.BlobStorage/package.json new file mode 100644 index 000000000000..c213c05cf391 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/package.json @@ -0,0 +1,13 @@ +{ + "name": "Microsoft.BlobStorage", + "version": "0.1.0", + "type": "module", + "dependencies": { + "@azure-tools/typespec-autorest": "^0.39.2", + "@azure-tools/typespec-azure-core": "^0.39.1", + "@typespec/compiler": "latest", + "@typespec/openapi3": "^0.53.2", + "@typespec/rest": "^0.53.0" + }, + "private": true +} diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp new file mode 100644 index 000000000000..250ad3f5cba7 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -0,0 +1,38 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@typespec/http"; + +import "./models.tsp"; + +namespace Microsoft.BlobStorage; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; + +interface Widgets { + @doc("Fetch a Widget by name.") + getWidget is ResourceRead; + + @doc("Gets status of a Widget operation.") + getWidgetOperationStatus is GetResourceOperationStatus; + + @doc("Creates or updates a Widget asynchronously.") + @pollingOperation(Widgets.getWidgetOperationStatus) + createOrUpdateWidget is LongRunningResourceCreateOrUpdate; + + @doc("Delete a Widget asynchronously.") + @pollingOperation(Widgets.getWidgetOperationStatus) + deleteWidget is LongRunningResourceDelete; + + @doc("List Widget resources") + listWidgets is ResourceList< + Widget, + { + parameters: StandardListQueryParameters; + } + >; + } + \ No newline at end of file diff --git a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml new file mode 100644 index 000000000000..f5e18d2b3a8d --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml @@ -0,0 +1,36 @@ +parameters: + "service-dir": + default: "sdk/microsoft.blobstorage" + "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-directory: "{project-root}/examples" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json" + "@azure-tools/typespec-python": + package-dir: "azure-storage-blob" + package-name: "{package-dir}" + package-mode: dataplane + "@azure-tools/typespec-csharp": + package-dir: "Azure.Storage.Blob" + namespace: "{package-dir}" + clear-output-folder: true + model-namespace: false + "@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" + "@azure-tools/typespec-java": + package-dir: "azure-storage-blob" + namespace: com.azure.storage.blob +linter: + extends: + - "@azure-tools/typespec-azure-core/all" From 09f0582c227541e176ad2d56848091d90c5771d8 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Tue, 27 Feb 2024 18:43:46 -0500 Subject: [PATCH 002/129] [storage] Update models --- .../storage/Microsoft.BlobStorage/main.tsp | 1 - .../storage/Microsoft.BlobStorage/models.tsp | 97 +++++++++++++++---- .../Microsoft.BlobStorage/package-lock.json | 3 +- .../Microsoft.BlobStorage/package.json | 1 + .../storage/Microsoft.BlobStorage/routes.tsp | 25 ----- 5 files changed, 82 insertions(+), 45 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index 9d0dd0633620..9f2715fbdab6 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -27,7 +27,6 @@ using Azure.Core; endpoint: url, } ) -@versioned(Azure.Storage.Blob.Versions) namespace Azure.Storage.Blob; @doc("The Azure.Storage.Blob service versions.") diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index b5dbf550d64f..375362aa7a9e 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -1,11 +1,13 @@ import "@typespec/rest"; import "@typespec/http"; 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 Microsoft.BlobStorage; @@ -21,10 +23,10 @@ model KeyInfo { @doc("A user delegation key.") model UserDelegationKey { @doc("The Azure Active Directory object ID in GUID format.") - SignedOid: string; + SignedOid: uuid; @doc("The Azure Active Directory tenant ID in GUID format.") - SignedTid: string; + SignedTid: uuid; @doc("The date-time the key is active.") SignedStart: string; @@ -95,10 +97,10 @@ enum LeaseStatus { @doc("Represents an access policy.") model AccessPolicy { @doc("The date-time the policy is active.") - Start: string; + Start: utcDateTime; @doc("The date-time the policy expires.") - Expiry: string; + Expiry: utcDateTime; @doc("The permissions for acl the policy.") Permission: string; @@ -170,10 +172,10 @@ model BlobItem { Properties: BlobProperties; @doc("The metadata of the blob.") - Metadata?: BlogMetadata; + Metadata?: BlobMetadata; @doc("The tags of the blob.") - Tags?: BlobTags; + Tags?: BlobTag[]; @doc("The object replication metadata of the blob.") ObjectReplicationMetadata?: ObjectReplicationMetadata; @@ -185,10 +187,12 @@ model BlobItem { @doc("The properties of a blob.") model BlobProperties { @doc("The date-time the blob was created in RFC1123 format.") - `Creation-Time`?: DateTimeKnownEncoding.rfc7231; + @encode("date-time-rfc1123") + `Creation-Time`?: utcDateTime; @doc("The date-time the blob was last modified in RFC1123 format.") - `Last-Modified`: DateTimeKnownEncoding.rfc7231; + @encode("date-time-rfc1123") + `Last-Modified`: utcDateTime; @doc("The blog ETag.") ETag: string; @@ -218,7 +222,7 @@ model BlobProperties { `x-ms-blob-sequence-number`?: int64; @doc("The blob type.") - `Blob-Type`: "BlockBlob" | "PageBlob" | "AppendBlob"; + BlobType?: BlobType; @doc("The lease status of the blob.") LeaseStatus?: LeaseStatus; @@ -242,7 +246,8 @@ model BlobProperties { CopyProgress?: string; @doc("The copy completion time of the blob.") - CopyCompletionTime?: DateTimeKnownEncoding.rfc7231; + @encode("date-time-rfc1123") + CopyCompletionTime?: utcDateTime; @doc("The copy status description of the blob.") CopyStatusDescription?: string; @@ -257,7 +262,7 @@ model BlobProperties { DestinationSnapshot?: string; @doc("The time the blob was deleted.") - DeletedTime?: DateTimeKnownEncoding.rfc7231; + DeletedTime?: utcDateTime; @doc("The remaining retention days of the blob.") RemainingRetentionDays?: int32; @@ -275,23 +280,81 @@ model BlobProperties { EncryptionScope?: string; @doc("The access tier change time of the blob.") - AccessTierChangeTime?: DateTimeKnownEncoding.rfc7231; + @encode("date-time-rfc1123") + AccessTierChangeTime?: utcDateTime; @doc("The number of tags for the blob.") TagCount?: int32; + @clientName("ExpiresOn") @doc("The expire time of the blob.") - `Expiry-Time`?: DateTimeKnownEncoding.rfc7231; -} + @encode("date-time-rfc1123") + `Expiry-Time`?: utcDateTime; + + @clientName("IsSealed") + @doc("Whether the blob is sealed.") + Sealed?: boolean; + + @doc("The rehydrate priority of the blob.") + RehydratePriority?: RehydratePriority; + + @doc("The last access time of the blob.") + @encode("date-time-rfc1123") + LastAccessTime?: utcDateTime; + + @clientName("ImmutabilityPolicyExpiresOn") + @doc("The immutability policy until time of the blob.") + @encode("date-time-rfc1123") + ImmutabilityPolicyUntilDate?: utcDateTime; -model BlogMetadata { + @doc("The immutability policy mode of the blob.") + ImmutabilityPolicyMode?: BlobImmutabilityPolicyMode; + @doc("Whether the blob is under legal hold.") + LegalHold?: boolean; } -model BlobTags { +@doc("The immutability policy mode.") +enum BlobImmutabilityPolicyMode { + @doc("The immutability policy is mutable.") + Mutable, + @doc("The immutability policy is locked.") + Locked, + @doc("The immutability policy is unlocked.") + Unlocked +} + +@doc("The blob type.") +enum BlobType { + @doc("The blob is a block blob.") + BlockBlob, + @doc("The blob is a page blob.") + PageBlob, + @doc("The blob is an append blob.") + AppendBlob +} +@doc("The rehydrate priority.") +enum RehydratePriority { + @doc("The rehydrate priority is high.") + High, + @doc("The rehydrate priority is standard.") + Standard } -model ObjectReplicationMetadata { +@doc("The blob metadata.") +model BlobMetadata is Record { + // @xml.attribute(true) + Encrypted: string; +} +@doc("The blob tags.") +model BlobTag { + @doc("The key of the tag.") + Key: string; + @doc("The value of the tag.") + Value: string; } + +@doc("The object replication metadata.") +model ObjectReplicationMetadata is Record; diff --git a/specification/storage/Microsoft.BlobStorage/package-lock.json b/specification/storage/Microsoft.BlobStorage/package-lock.json index f9884096fd68..0daea0956161 100644 --- a/specification/storage/Microsoft.BlobStorage/package-lock.json +++ b/specification/storage/Microsoft.BlobStorage/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@azure-tools/typespec-autorest": "^0.39.2", "@azure-tools/typespec-azure-core": "^0.39.1", + "@azure-tools/typespec-client-generator-core": "^0.39.1", "@typespec/compiler": "latest", "@typespec/openapi3": "^0.53.2", "@typespec/rest": "^0.53.0" @@ -49,7 +50,6 @@ "version": "0.39.1", "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.39.1.tgz", "integrity": "sha512-EV3N6IN1i/hXGqYKNfXx6+2QAyZnG4IpC9RUk6fqwSQDWX7HtMcfdXqlOaK3Rz2H6BUAc9OnH+Trq/uJCl/RgA==", - "peer": true, "dependencies": { "change-case": "~5.3.0", "pluralize": "^8.0.0" @@ -559,7 +559,6 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "peer": true, "engines": { "node": ">=4" } diff --git a/specification/storage/Microsoft.BlobStorage/package.json b/specification/storage/Microsoft.BlobStorage/package.json index c213c05cf391..6d5c1e7669d8 100644 --- a/specification/storage/Microsoft.BlobStorage/package.json +++ b/specification/storage/Microsoft.BlobStorage/package.json @@ -5,6 +5,7 @@ "dependencies": { "@azure-tools/typespec-autorest": "^0.39.2", "@azure-tools/typespec-azure-core": "^0.39.1", + "@azure-tools/typespec-client-generator-core": "^0.39.1", "@typespec/compiler": "latest", "@typespec/openapi3": "^0.53.2", "@typespec/rest": "^0.53.0" diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 250ad3f5cba7..ab969856437d 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -11,28 +11,3 @@ using TypeSpec.Http; using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; - -interface Widgets { - @doc("Fetch a Widget by name.") - getWidget is ResourceRead; - - @doc("Gets status of a Widget operation.") - getWidgetOperationStatus is GetResourceOperationStatus; - - @doc("Creates or updates a Widget asynchronously.") - @pollingOperation(Widgets.getWidgetOperationStatus) - createOrUpdateWidget is LongRunningResourceCreateOrUpdate; - - @doc("Delete a Widget asynchronously.") - @pollingOperation(Widgets.getWidgetOperationStatus) - deleteWidget is LongRunningResourceDelete; - - @doc("List Widget resources") - listWidgets is ResourceList< - Widget, - { - parameters: StandardListQueryParameters; - } - >; - } - \ No newline at end of file From 4e15d54597d0676c809939055f8fcfdf85321e99 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Thu, 29 Feb 2024 17:38:24 -0500 Subject: [PATCH 003/129] [Storage Blob] Updating routes --- .../storage/Microsoft.BlobStorage/main.tsp | 5 + .../storage/Microsoft.BlobStorage/models.tsp | 132 ++++++++++++++++++ .../storage/Microsoft.BlobStorage/routes.tsp | 44 ++++++ 3 files changed, 181 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index 9f2715fbdab6..79899fbc3788 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -35,13 +35,18 @@ enum Versions { @doc("The 2020-10-02-preview version of the Azure.Storage.Blob service.") `2020-10-02-preview`, @doc("The 2020-12-06-preview version of the Azure.Storage.Blob service.") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2020-12-06-preview`, @doc("The 2021-02-12-preview version of the Azure.Storage.Blob service.") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-02-12-preview`, @doc("The 2021-04-10-preview version of the Azure.Storage.Blob service.") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-04-10-preview`, @doc("The 2021-08-06-preview version of the Azure.Storage.Blob service.") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-08-06-preview`, @doc("The 2021-12-02-preview version of the Azure.Storage.Blob service.") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-12-02-preview`, } diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 375362aa7a9e..26ccef024335 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -9,8 +9,16 @@ using TypeSpec.Http; using TypeSpec.Versioning; using Azure.ClientGenerator.Core; +@useDependency(Azure.Core.Versions.v1_0_Preview_1) namespace Microsoft.BlobStorage; +@error +@doc("The error response.") +model StorageError { + @doc("The error message.") + Message: string; +} + @doc("Key information") model KeyInfo { @doc("The date-time the key is active.") @@ -358,3 +366,127 @@ model BlobTag { @doc("The object replication metadata.") model ObjectReplicationMetadata is Record; + +/// Service Properties + +@doc("The service properties.") +model StorageServiceProperties { + @doc("The logging properties.") + Logging?: Logging; + @doc("The hour metrics properties.") + HourMetrics?: Metrics; + @doc("The minute metrics properties.") + MinuteMetrics?: Metrics; + @doc("The CORS properties.") + Cors?: CorsRule[]; + @doc("The default service version.") + DefaultServiceVersion?: string; + @doc("The delete retention policy.") + DeleteRetentionPolicy?: RetentionPolicy; + @doc("The static website properties.") + StaticWebsite?: StaticWebsite; +} + +@doc("The static website properties.") +model StaticWebsite { + @doc("The index document.") + IndexDocument?: string; + @doc("The error document.") + ErrorDocument?: string; +} + +@doc("The CORS rule.") +model CorsRule { + @doc("The allowed origins.") + AllowedOrigins: string; + @doc("The allowed methods.") + AllowedMethods: string; + @doc("The allowed headers.") + AllowedHeaders: string; + @doc("The exposed headers.") + ExposedHeaders: string; + @doc("The maximum age in seconds.") + MaxAgeInSeconds: int32; +} + +@doc("The metrics properties.") +model Metrics { + @doc("The version of the metrics properties.") + Version?: string; + @doc("Whether it is enabled.") + Enabled: boolean; + @doc("Whether to include API in the metrics.") + IncludeAPIs?: boolean; + @doc("The retention policy of the metrics.") + RetentionPolicy?: RetentionPolicy; + @doc("The service properties of the metrics.") + ServiceProperties?: MetricsServiceProperties; +} + +@doc("The metrics service properties.") +model MetricsServiceProperties { + @doc("The hour metrics properties.") + HourMetrics: MetricsProperties; + @doc("The minute metrics properties.") + MinuteMetrics: MetricsProperties; +} + +@doc("The metrics properties.") +model MetricsProperties { + @doc("Whether to include API in the metrics.") + Enabled: boolean; + @doc("The version of the metrics properties.") + Version: string; + @doc("The retention policy of the metrics.") + RetentionPolicy: RetentionPolicy; +} + +@doc("The logging properties.") +model Logging { + @doc("The version of the logging properties.") + Version: string; + @doc("Whether delete operation is logged.") + Delete: boolean; + @doc("Whether read operation is logged.") + Read: boolean; + @doc("Whether write operation is logged.") + Write: boolean; + @doc("The retention policy of the logs.") + RetentionPolicy: RetentionPolicy; +} + +@doc("The retention policy.") +model RetentionPolicy { + @doc("Whether to enable the retention policy.") + Enabled: boolean; + @doc("The number of days to retain the logs.") + Days: int32; + @doc("Whether to allow permanent delete.") + AllowPermanentDelete: boolean; +} + +// List Blobs + +@doc("An enumeration of blobs.") +model ListBlobsFlatSegmentResponse { + @doc("The service endpoint.") + ServiceEndpoint: string; // TODO: XML Attribute + + @doc("The container name.") + ContainerName: string; // TODO: XML Attribute + + @doc("The prefix of the blobs.") + Prefix?: string; + + @doc("The marker of the blobs.") + Marker?: string; + + @doc("The max results of the blobs.") + MaxResults?: int32; + + @doc("The blob segment.") + Segment: BlobItem[]; // TODO: XML Serialization + + @doc("The next marker of the blobs.") + NextMarker?: string; +} diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index ab969856437d..8b7c891a3898 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -11,3 +11,47 @@ using TypeSpec.Http; using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; + +@route("?restype=service&comp=properties") +interface BlobServiceProperties { + @doc(""" + Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. + """) + @put + Service_SetProperties( + @body body: StorageServiceProperties; + @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") + @query timeout?: int32; + @doc("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.") + @header `x-ms-version`: string; + @doc("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.") + @header `x-ms-client-request-id`: string; + ): { + @statusCode statusCode: 202; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + } | StorageError; + + @get + Service_GetProperties( + @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") + @query timeout?: int32; + @doc("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.") + @header `x-ms-version`: string; + @doc("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.") + @header `x-ms-client-request-id`: string; + ): { + @statusCode statusCode: 200; + @body body: StorageServiceProperties; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + } | StorageError; +} From 9b04effba7c5f07c7abb4d256df3a7b35ea438ca Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Thu, 29 Feb 2024 17:52:18 -0500 Subject: [PATCH 004/129] [Storage Blob] Updating routes --- .../storage/Microsoft.BlobStorage/models.tsp | 22 ++++++++++++++ .../storage/Microsoft.BlobStorage/routes.tsp | 30 ++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 26ccef024335..7d9ebee5312e 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -19,6 +19,28 @@ model StorageError { Message: string; } +@doc("Stats for the storage service.") +model StorageServiceStats { + @doc("The geo replication stats.") + GeoReplication: GeoReplication; +} + +@doc("The geo replication status.") +model GeoReplication { + Status: GeoReplicationStatus; + LastSyncTime: string; +} + +@doc("The geo replication status.") +enum GeoReplicationStatus { + @doc("The geo replication is live.") + live, + @doc("The geo replication is bootstrap.") + bootstrap, + @doc("The geo replication is unavailable.") + unavailable +} + @doc("Key information") model KeyInfo { @doc("The date-time the key is active.") diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 8b7c891a3898..a1e4ad5db1de 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -12,7 +12,7 @@ using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; -@route("?restype=service&comp=properties") +@route("/?restype=service&comp=properties") interface BlobServiceProperties { @doc(""" Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. @@ -55,3 +55,31 @@ interface BlobServiceProperties { @header `x-ms-version`: string; } | StorageError; } + +@route("/?restype=service&comp=stats") +interface BlobServiceStatistics { + @doc(""" + 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. + """) + @get + Service_GetStatistics( + @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") + @query timeout?: int32; + @doc("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.") + @header `x-ms-version`: string; + @doc("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.") + @header `x-ms-client-request-id`: string; + ): { + @statusCode statusCode: 200; + @body body: StorageServiceStats; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} From 51a7995acefbbb63950e9ae52a6a41b7c3d7ec49 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Thu, 29 Feb 2024 18:20:09 -0500 Subject: [PATCH 005/129] [Storage Blob] Updating routes --- .../storage/Microsoft.BlobStorage/models.tsp | 64 +++++++++++++++++++ .../storage/Microsoft.BlobStorage/routes.tsp | 29 +++++++++ 2 files changed, 93 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 7d9ebee5312e..ecc3f4add67d 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -19,6 +19,70 @@ model StorageError { Message: string; } +model ListContainersSegmentResponse { + @doc("The service endpoint.") + ServiceEndpoint: string; // TODO: XML Attribute + + @doc("The prefix of the containers.") + Prefix?: string; + + @doc("The marker of the containers.") + Marker?: string; + + @doc("The max results of the containers.") + MaxResults?: int32; + + @doc("The container segment.") + Segment: ContainerItem[]; // TODO: XML Serialization + + @doc("The next marker of the containers.") + NextMarker?: string; +} + +@doc("An Azure Storage container.") +model ContainerItem { + @doc("The name of the container.") + Name: string; + + @doc("The properties of the container.") + Properties: ContainerProperties; + + @doc("The metadata of the container.") + Metadata?: ContainerMetadata; +} + +@doc("The properties of a container.") +model ContainerProperties { + @doc("The date-time the container was created in RFC1123 format.") + @encode("date-time-rfc1123") + `Creation-Time`?: utcDateTime; + + @doc("The date-time the container was last modified in RFC1123 format.") + @encode("date-time-rfc1123") + `Last-Modified`: utcDateTime; + + @doc("The ETag of the container.") + ETag: string; + + @doc("The lease status of the container.") + LeaseStatus?: LeaseStatus; + + @doc("The lease state of the container.") + LeaseState?: LeaseState; + + @doc("The lease duration of the container.") + LeaseDuration?: LeaseDuration; + + @doc("The public access type of the container.") + PublicAccess?: PublicAccessType; +} + +@doc("The metadata of a container.") +model ContainerMetadata is Record { + // @xml.attribute(true) + Encrypted: string; +} + @doc("Stats for the storage service.") model StorageServiceStats { @doc("The geo replication stats.") diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index a1e4ad5db1de..1b89cd00b248 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -83,3 +83,32 @@ interface BlobServiceStatistics { @header Date: utcDateTime; } | StorageError; } + +@route("/?comp=list") +interface ListContainerSegments { + @doc("The List Containers Segment operation returns a list of the containers under the specified account") + @get + Service_ListContainersSegment( + @doc("Filters the results to return only containers whose name begins with the specified prefix.") + @query prefix?: string; + @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") + @query timeout?: int32; + @doc("A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns a non-empty continuation token if the listing operation did not return all containers remaining to be listed with the current segment. The continuation token value is opaque to the client.") + @query marker?: string; + @doc("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 maxresults?: int32; + @doc("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.") + @header `x-ms-version`: string; + @doc("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.") + @header `x-ms-client-request-id`: string; + ): { + @statusCode statusCode: 200; + @body body: ListContainersSegmentResponse; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + } | StorageError; +} From efe933d959c9417a07f92a01bf77a6ff41203db2 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Thu, 29 Feb 2024 20:11:23 -0500 Subject: [PATCH 006/129] [Storage Blob] Updating routes --- .../storage/Microsoft.BlobStorage/models.tsp | 28 ++++++ .../Microsoft.BlobStorage/package-lock.json | 2 +- .../Microsoft.BlobStorage/package.json | 1 + .../storage/Microsoft.BlobStorage/routes.tsp | 88 ++++++++++++++++--- 4 files changed, 106 insertions(+), 13 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index ecc3f4add67d..63c340206b7c 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -19,6 +19,34 @@ model StorageError { Message: string; } +@doc("The account kind.") +enum AccountKind { + @doc("The storage account is a general-purpose account.") + Storage, + @doc("The storage account is a blob storage account.") + BlobStorage, + @doc("The storage account is a storage V2 account.") + StorageV2, + @doc("The storage account is a file storage account.") + FileStorage, + @doc("The storage account is a block blob storage account.") + BlockBlobStorage +} + +@doc("The SKU types") +enum SkuName { + @doc("The standard LRS SKU.") + Standard_LRS, + @doc("The standard GRS SKU.") + Standard_GRS, + @doc("The standard RAGRS SKU.") + Standard_RAGRS, + @doc("The standard ZRS SKU.") + Standard_ZRS, + @doc("The premium LRS SKU.") + Premium_LRS +} + model ListContainersSegmentResponse { @doc("The service endpoint.") ServiceEndpoint: string; // TODO: XML Attribute diff --git a/specification/storage/Microsoft.BlobStorage/package-lock.json b/specification/storage/Microsoft.BlobStorage/package-lock.json index 0daea0956161..e04a2a9254a4 100644 --- a/specification/storage/Microsoft.BlobStorage/package-lock.json +++ b/specification/storage/Microsoft.BlobStorage/package-lock.json @@ -12,6 +12,7 @@ "@azure-tools/typespec-azure-core": "^0.39.1", "@azure-tools/typespec-client-generator-core": "^0.39.1", "@typespec/compiler": "latest", + "@typespec/openapi": "^0.53.0", "@typespec/openapi3": "^0.53.2", "@typespec/rest": "^0.53.0" } @@ -183,7 +184,6 @@ "version": "0.53.0", "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.53.0.tgz", "integrity": "sha512-FRHb6Wi4Yf1HGm3EnhhXZ0Bw+EIPam6ptxRy7NDRxyMnzHsOphGcv8mDIZk6MPSy8xPasbFNwaRC1TXpxVhQBw==", - "peer": true, "engines": { "node": ">=18.0.0" }, diff --git a/specification/storage/Microsoft.BlobStorage/package.json b/specification/storage/Microsoft.BlobStorage/package.json index 6d5c1e7669d8..9a31bdfe0195 100644 --- a/specification/storage/Microsoft.BlobStorage/package.json +++ b/specification/storage/Microsoft.BlobStorage/package.json @@ -7,6 +7,7 @@ "@azure-tools/typespec-azure-core": "^0.39.1", "@azure-tools/typespec-client-generator-core": "^0.39.1", "@typespec/compiler": "latest", + "@typespec/openapi": "^0.53.0", "@typespec/openapi3": "^0.53.2", "@typespec/rest": "^0.53.0" }, diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 1b89cd00b248..cf9a6b5452a0 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -1,3 +1,4 @@ +import "@typespec/openapi"; import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; @@ -8,9 +9,11 @@ import "./models.tsp"; namespace Microsoft.BlobStorage; using TypeSpec.Http; +using TypeSpec.OpenAPI; using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; +using Azure.ClientGenerator.Core; @route("/?restype=service&comp=properties") interface BlobServiceProperties { @@ -18,37 +21,41 @@ interface BlobServiceProperties { Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. """) @put - Service_SetProperties( + @operationId("Service_SetProperties") + put( + @doc("The storage service properties that specifies the analytics and CORS rules to set on the Blob service.") @body body: StorageServiceProperties; @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") @query timeout?: int32; @doc("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.") @header `x-ms-version`: string; @doc("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.") - @header `x-ms-client-request-id`: string; + @header `x-ms-client-request-id`?: string; ): { @statusCode statusCode: 202; @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`: string; + @header `x-ms-client-request-id`?: string; @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") @header `x-ms-request-id`: string; @doc("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.") @header `x-ms-version`: string; } | StorageError; + @doc("Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.") + @operationId("Service_GetProperties") @get - Service_GetProperties( + get( @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") @query timeout?: int32; @doc("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.") @header `x-ms-version`: string; @doc("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.") - @header `x-ms-client-request-id`: string; + @header `x-ms-client-request-id`?: string; ): { @statusCode statusCode: 200; @body body: StorageServiceProperties; @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`: string; + @header `x-ms-client-request-id`?: string; @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") @header `x-ms-request-id`: string; @doc("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.") @@ -61,19 +68,20 @@ interface BlobServiceStatistics { @doc(""" 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. """) + @operationId("Service_GetStatistics") @get - Service_GetStatistics( + get( @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") @query timeout?: int32; @doc("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.") @header `x-ms-version`: string; @doc("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.") - @header `x-ms-client-request-id`: string; + @header `x-ms-client-request-id`?: string; ): { @statusCode statusCode: 200; @body body: StorageServiceStats; @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`: string; + @header `x-ms-client-request-id`?: string; @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") @header `x-ms-request-id`: string; @doc("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.") @@ -88,7 +96,8 @@ interface BlobServiceStatistics { interface ListContainerSegments { @doc("The List Containers Segment operation returns a list of the containers under the specified account") @get - Service_ListContainersSegment( + @operationId("Service_ListContainersSegment") + get( @doc("Filters the results to return only containers whose name begins with the specified prefix.") @query prefix?: string; @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") @@ -100,15 +109,70 @@ interface ListContainerSegments { @doc("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.") @header `x-ms-version`: string; @doc("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.") - @header `x-ms-client-request-id`: string; + @header `x-ms-client-request-id`?: string; ): { @statusCode statusCode: 200; @body body: ListContainersSegmentResponse; @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`: string; + @header `x-ms-client-request-id`?: string; @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") @header `x-ms-request-id`: string; @doc("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.") @header `x-ms-version`: string; } | StorageError; } + +@route("/?restype=service&comp=userdelegationkey") +interface BlobServiceUserDelegationKey { + @doc("The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS.") + @post + @operationId("Service_GetUserDelegationKey") + post( + @doc("The user delegation key info.") + @body body: KeyInfo; + @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") + @query timeout?: int32; + @doc("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.") + @header `x-ms-version`: string; + @doc("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.") + @header `x-ms-client-request-id`?: string; + ): { + @statusCode statusCode: 200; + @doc("The user delegation key.") + @body body: UserDelegationKey; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + } | StorageError; +} + +@route("/?restype=account&comp=properties") +interface BlobServiceAccountProperties { + @doc("Returns the sku name and account kind.") + @get + @operationId("Service_GetAccountInfo") + get( + @doc("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.") + @header `x-ms-version`: string; + ): { + @statusCode statusCode: 200; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + @doc("Identifies the sku name of the account.") + @clientName("SkuName") + @header `x-ms-sku-name`: SkuName; + @doc("Identifies the account kind.") + @clientName("AccountKind") + @header `x-ms-account-kind`: AccountKind; + } | StorageError; +} From 14b3b8b79bed18baaf7bbd7ec221467338c565b2 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Thu, 29 Feb 2024 20:43:06 -0500 Subject: [PATCH 007/129] [Storage Blob] Updating routes --- .../storage/Microsoft.BlobStorage/routes.tsp | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index cf9a6b5452a0..ab4a9e4fb26a 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -174,5 +174,38 @@ interface BlobServiceAccountProperties { @doc("Identifies the account kind.") @clientName("AccountKind") @header `x-ms-account-kind`: AccountKind; + @doc("Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled.") + @clientName("IsHierarchicalNamespaceEnabled") + @header `x-ms-is-hns-enabled`: boolean; + } | StorageError; +} + +@route("/?comp=batch") +interface BlobServiceBatch { + @doc("The Batch operation allows multiple API calls to be embedded into a single HTTP request.") + @post + @operationId("Service_SubmitBatch") + post( + @doc("The batch request content") + @body body: bytes; // TODO: Investigate this type + @doc("The batch request content length") + @header `Content-Length`: int64; + @doc("Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_") + @clientName("multipartContentType") + @header `Content-Type`: string; + @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") + @query timeout?: int32; + @doc("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.") + @header `x-ms-version`: string; + @doc("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.") + @header `x-ms-client-request-id`?: string; + ): { + @statusCode statusCode: 200; + @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") + @header `Content-Type`: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; } | StorageError; } From 1ea0d3c7a18ddfd921ec7b7f662b353a4a5ce56d Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Fri, 1 Mar 2024 16:27:14 -0500 Subject: [PATCH 008/129] [Storage Blob] Updating routes --- .../storage/Microsoft.BlobStorage/models.tsp | 118 +++++++++++++++ .../storage/Microsoft.BlobStorage/routes.tsp | 143 +++++++++++------- 2 files changed, 208 insertions(+), 53 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 63c340206b7c..8ea15c723efc 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -19,6 +19,124 @@ model StorageError { Message: string; } +/// Parameters + +@doc("The deny encryption scope override parameter.") +model DenyEncryptionScopeOverride { + @doc("Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container.") + @header `x-ms-deny-encryption-scope-override`?: boolean; +} + +@doc("The default encryption scope parameter.") +model DefaultEncryptionScope { + @doc("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`?: string; +} + +@doc("The blob public access parameter.") +model BlobPublicAccess { + @doc("Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'.") + @clientName("access") + @header `x-ms-blob-public-access`?: PublicAccessType; +} + +@doc("The metadata parameter.") +model MetadataParameter is Record { + @doc("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.") + @header + `x-ms-meta`?: string; // TODO: Figure out how to better represent this +} + +@doc("The filter blobs include parameter.") +model FilterBlobsInclude { + @doc("Include this parameter to specify one or more datasets to include in the response.") + @query({ format: "csv" }) include?: FilterBlobsIncludes[]; +} + +@doc("The filter blobs where parameter.") +model FilterBlobsWhere { + @doc("Filters the results to return only to return only blobs whose tags match the specified expression.") + @query + where?: string; +} + +@doc("The Content-Length header.") +model ContentLengthHeader { + @doc("The length of the request.") + @header + `Content-Length`: int64; +} + +@doc("The Content-Type header for multi-part requests.") +model MultipartContentType { + @doc("Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_") + @clientName("multipartContentType") + @header + `Content-Type`: string; +} + +@doc("The max results parameter.") +model MaxResultsParameter { + @doc("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 maxresults?: int32; +} + +@doc("The marker parameter.") +model MarkerParameter { + @doc("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.") + @query marker?: string; +} + +@doc("The prefix parameter.") +model PrefixParameter { + @doc("Filters the results to return only containers whose name begins with the specified prefix.") + @query prefix?: string; +} + +@doc("The client request ID parameter.") +model ClientRequestIdParameter { + @doc("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.") + @clientName("requestId") + @header + `x-ms-client-request-id`?: string; +} + +@doc("The timeout parameter.") +model TimeoutParameter { + @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") + @query timeout?: int32; +} + +@doc("The API version parameter.") +model ApiVersionParameter { + @doc("Specifies the version of the operation to use for this request.") + @header("x-ms-version") + version: string; +} + +@doc("The result of a Filter Blobs API call") +model FilterBlobSegment { + @doc("The service endpoint.") + ServiceEndpoint: string; // TODO: XML Attribute + + @doc("The filter for the blobs.") + Where: string; + + @doc("The blob segment.") + Blobs: BlobItem[]; // TODO: XML Serialization + + @doc("The next marker of the blobs.") + NextMarker?: string; +} + +@doc("The filter blobs includes.") +enum FilterBlobsIncludes { + @doc("The filter includes no versions.") + none, + @doc("The filter includes n versions.") + versions +} + @doc("The account kind.") enum AccountKind { @doc("The storage account is a general-purpose account.") diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index ab4a9e4fb26a..f1d043bc2625 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -22,15 +22,12 @@ interface BlobServiceProperties { """) @put @operationId("Service_SetProperties") - put( + setServiceProperties( @doc("The storage service properties that specifies the analytics and CORS rules to set on the Blob service.") @body body: StorageServiceProperties; - @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") - @query timeout?: int32; - @doc("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.") - @header `x-ms-version`: string; - @doc("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.") - @header `x-ms-client-request-id`?: string; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; ): { @statusCode statusCode: 202; @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") @@ -44,13 +41,10 @@ interface BlobServiceProperties { @doc("Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.") @operationId("Service_GetProperties") @get - get( - @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") - @query timeout?: int32; - @doc("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.") - @header `x-ms-version`: string; - @doc("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.") - @header `x-ms-client-request-id`?: string; + getServiceProperties( + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; @body body: StorageServiceProperties; @@ -70,13 +64,10 @@ interface BlobServiceStatistics { """) @operationId("Service_GetStatistics") @get - get( - @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") - @query timeout?: int32; - @doc("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.") - @header `x-ms-version`: string; - @doc("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.") - @header `x-ms-client-request-id`?: string; + getStatistics( + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; @body body: StorageServiceStats; @@ -97,19 +88,13 @@ interface ListContainerSegments { @doc("The List Containers Segment operation returns a list of the containers under the specified account") @get @operationId("Service_ListContainersSegment") - get( - @doc("Filters the results to return only containers whose name begins with the specified prefix.") - @query prefix?: string; - @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") - @query timeout?: int32; - @doc("A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns a non-empty continuation token if the listing operation did not return all containers remaining to be listed with the current segment. The continuation token value is opaque to the client.") - @query marker?: string; - @doc("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 maxresults?: int32; - @doc("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.") - @header `x-ms-version`: string; - @doc("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.") - @header `x-ms-client-request-id`?: string; + listContainers( + ...PrefixParameter; + ...TimeoutParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; @body body: ListContainersSegmentResponse; @@ -127,15 +112,12 @@ interface BlobServiceUserDelegationKey { @doc("The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS.") @post @operationId("Service_GetUserDelegationKey") - post( + getUserDelegationKey( @doc("The user delegation key info.") @body body: KeyInfo; - @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") - @query timeout?: int32; - @doc("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.") - @header `x-ms-version`: string; - @doc("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.") - @header `x-ms-client-request-id`?: string; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; @doc("The user delegation key.") @@ -155,8 +137,7 @@ interface BlobServiceAccountProperties { @get @operationId("Service_GetAccountInfo") get( - @doc("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.") - @header `x-ms-version`: string; + ...ApiVersionParameter; ): { @statusCode statusCode: 200; @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") @@ -188,24 +169,80 @@ interface BlobServiceBatch { post( @doc("The batch request content") @body body: bytes; // TODO: Investigate this type - @doc("The batch request content length") - @header `Content-Length`: int64; - @doc("Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_") - @clientName("multipartContentType") + ...ContentLengthHeader; + ...MultipartContentType; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") @header `Content-Type`: string; - @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") - @query timeout?: int32; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; @doc("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.") @header `x-ms-version`: string; - @doc("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.") - @header `x-ms-client-request-id`?: string; + } | StorageError; +} + +@route("/?comp=blobs") +interface FilterBlobsService { + @doc("The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression.") + @get + @operationId("Service_FilterBlobs") + listBlobs( + ...FilterBlobsWhere; + ...FilterBlobsInclude; + ...TimeoutParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") - @header `Content-Type`: string; + @body body: FilterBlobSegment; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?restype=container") +interface ContainerService { + @doc("Creates a new container under the specified account. If the container with the same name already exists, the operation fails.") + @put + @operationId("Container_Create") + createContainer( + @doc("The name of the container to create.") + @path containerName: string; + ...MetadataParameter; + ...BlobPublicAccess; + ...DefaultEncryptionScope; + ...DenyEncryptionScopeOverride; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 201; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") @header `x-ms-request-id`: string; @doc("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.") @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; } | StorageError; } From ebe486676662028b15e090a80d433a7bd5ff53cc Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Fri, 1 Mar 2024 18:17:03 -0500 Subject: [PATCH 009/129] [Storage Blob] Updating routes --- .../storage/Microsoft.BlobStorage/models.tsp | 7 +++ .../storage/Microsoft.BlobStorage/routes.tsp | 52 +++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 8ea15c723efc..45d9225b5e65 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -21,6 +21,13 @@ model StorageError { /// Parameters +@doc("The lease ID parameter.") +model LeaseIdOptional { + @doc("If specified, the operation only succeeds if the resource's lease is active and matches this ID.") + @header + `x-ms-lease-id`?: string; +} + @doc("The deny encryption scope override parameter.") model DenyEncryptionScopeOverride { @doc("Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container.") diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index f1d043bc2625..75011027f796 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -245,4 +245,56 @@ interface ContainerService { @encode("date-time-rfc1123") @header Date: utcDateTime; } | StorageError; + + @doc("returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs") + @get + @operationId("Container_GetProperties") + getContainerProperties( + @doc("The name of the container to retrieve properties.") + @path containerName: string; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...LeaseIdOptional; + ): { + @statusCode statusCode: 200; + // TODO: x-ms-meta headers + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + @doc("When a blob is leased, specifies whether the lease is of infinite or fixed duration.") + @header `x-ms-lease-duration`: LeaseDuration; + @doc("Lease state of the container.") + @header `x-ms-lease-state`: LeaseState; + @doc("The lease status of the container.") + @header `x-ms-lease-status`: LeaseStatus; + @doc("The public access setting for the container.") + @header `x-ms-blob-public-access`: PublicAccessType; + @doc("Indicates whether the container has an immutability policy set on it.") + @clientName("HasImmutabilityPolicy") + @header `x-ms-has-immutability-policy`: boolean; + @doc("Indicates whether the container has a legal hold.") + @clientName("HasLegalHold") + @header `x-ms-has-legal-hold`: boolean; + @doc("The default encryption scope for the container.") + @clientName("DefaultEncryptionScope") + @header `x-ms-default-encryption-scope`: string; + @doc("Indicates whether the container's default encryption scope can be overriden.") + @clientName("DenyEncryptionScopeOverride") + @header `x-ms-deny-encryption-scope-override`: boolean; + @doc("Indicates whether version level worm is enabled on a container.") + @clientName("IsImmutableStorageWithVersioningEnabled") + @header `x-ms-immutable-storage-with-versioning-enabled`: boolean; + } | StorageError; } From 84e768a5e7b9de09822c6588feaead099e7c21e8 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Mon, 4 Mar 2024 15:18:23 -0500 Subject: [PATCH 010/129] [Storage Blob] Updating routes --- .../storage/Microsoft.BlobStorage/models.tsp | 39 ++++++++ .../storage/Microsoft.BlobStorage/routes.tsp | 95 ++++++++++++++++++- 2 files changed, 130 insertions(+), 4 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 45d9225b5e65..fa1f52e49c57 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -21,6 +21,32 @@ model StorageError { /// Parameters +@doc("The container name header") +model ContainerNameParameter { + @doc("The name of the container.") + @header + @path + containerName: string; +} + +@doc("The If-Unmodified-Since header.") +model IfUnmodifiedSince { + @doc("A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.") + @header + @encode("date-time-rfc1123") + @clientName("ifUnmodifiedSince") + `If-Unmodified-Since`?: utcDateTime; +} + +@doc("The If-Modified-Since header.") +model IfModifiedSince { + @doc("A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.") + @header + @encode("date-time-rfc1123") + @clientName("ifModifiedSince") + `If-Modified-Since`?: utcDateTime; +} + @doc("The lease ID parameter.") model LeaseIdOptional { @doc("If specified, the operation only succeeds if the resource's lease is active and matches this ID.") @@ -121,6 +147,19 @@ model ApiVersionParameter { version: string; } +/// Models + +@doc("Represents an array of signed identifiers") +model SignedIdentifiers is Array; + +@doc("The signed identifier.") +model SignedIdentifier { + @doc("The unique ID for the signed identifier.") + Id: string; + @doc("The access policy for the signed identifier.") + AccessPolicy: AccessPolicy; +} + @doc("The result of a Filter Blobs API call") model FilterBlobSegment { @doc("The service endpoint.") diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 75011027f796..93b1b68e7a51 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -219,8 +219,7 @@ interface ContainerService { @put @operationId("Container_Create") createContainer( - @doc("The name of the container to create.") - @path containerName: string; + ...ContainerNameParameter; ...MetadataParameter; ...BlobPublicAccess; ...DefaultEncryptionScope; @@ -250,8 +249,7 @@ interface ContainerService { @get @operationId("Container_GetProperties") getContainerProperties( - @doc("The name of the container to retrieve properties.") - @path containerName: string; + ...ContainerNameParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; @@ -297,4 +295,93 @@ interface ContainerService { @clientName("IsImmutableStorageWithVersioningEnabled") @header `x-ms-immutable-storage-with-versioning-enabled`: boolean; } | StorageError; + + @doc("operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection") + @delete + @operationId("Container_Delete") + deleteContainer( + ...ContainerNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...LeaseIdOptional; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ): { + @statusCode statusCode: 202; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?restype=container&comp=metadata") +interface ContainerMetadataService { + @doc("operation sets one or more user-defined name-value pairs for the specified container.") + @put + @operationId("Container_SetMetadata") + setContainerMetadata( + ...ContainerNameParameter; + ...MetadataParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...IfModifiedSince; + ...LeaseIdOptional; + ): { + @statusCode statusCode: 200; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?restype=container&comp=acl") +interface ContainerAccessPolicyService { + @doc("gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly.") + @get + @operationId("Container_GetAccessPolicy") + getContainerccessPolicy( + ...ContainerNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...LeaseIdOptional; + ): { + @statusCode statusCode: 200; + @body body: SignedIdentifiers; + @doc("Indicated whether data in the container may be accessed publicly and the level of access") + @header `x-ms-blob-public-access`: PublicAccessType; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; } From 0a6c71687a7623bc82626b9029a3a740b170dd64 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Mon, 4 Mar 2024 17:38:44 -0500 Subject: [PATCH 011/129] [storage] Update models --- .../storage/Microsoft.BlobStorage/models.tsp | 36 ++++++ .../storage/Microsoft.BlobStorage/routes.tsp | 109 ++++++++++++++++++ 2 files changed, 145 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index fa1f52e49c57..5b6f78447140 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -21,6 +21,42 @@ model StorageError { /// Parameters +@doc("The source lease ID header parameter.") +model SourceLeaseId { + @doc("A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.") + @clientName("sourceLeaseId") + @header `x-ms-source-lease-id`?: string; +} + +@doc("The source container name header parameter.") +model SourceContainerName { + @doc("Required. Specifies the name of the container to rename.") + @clientName("SourceContainerName") + @header `x-ms-source-container-name`: string; +} + +@doc("The deleted container name header.") +model DeletedContainerName { + @doc("Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore.") + @clientName("DeletedContainerName") + @header `x-ms-deleted-container-name`?: string; +} + +@doc("The deleted container version header.") +model DeletedContainerVersion { + @doc("Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore.") + @clientName("DeletedContainerVersion") + @header `x-ms-deleted-container-version`?: string; + +} + +@doc("The container ACL parameter.") +model ContainerAcl { + @doc("The access control list for the container.") + @body + acl: SignedIdentifiers; +} + @doc("The container name header") model ContainerNameParameter { @doc("The name of the container.") diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 93b1b68e7a51..c29885b21583 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -384,4 +384,113 @@ interface ContainerAccessPolicyService { @encode("date-time-rfc1123") @header Date: utcDateTime; } | StorageError; + + @doc("sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly.") + @put + @operationId("Container_SetAccessPolicy") + setContainerAccessPolicy( + ...ContainerNameParameter; + ...ContainerAcl; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...LeaseIdOptional; + @doc("The signed identifiers.") + @body body: SignedIdentifiers; + ): { + @statusCode statusCode: 200; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?restype=container&comp=undelete") +interface ContainerRestoreService { + @doc("Restores a previously-deleted container.") + @put + @operationId("Container_Undelete") + undeleteContainer( + ...ContainerNameParameter; + ...DeletedContainerName; + ...DeletedContainerVersion; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 201; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?restype=container&comp=rename") +interface ContainerRenameService { + @doc("Renames an existing container.") + @put + @operationId("Container_Rename") + renameContainer( + ...ContainerNameParameter; + ...SourceContainerName; + ...SourceLeaseId; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?restype=container&comp=batch") +interface ContainerBatchService { + @doc("The Batch operation allows multiple API calls to be embedded into a single HTTP request.") + @post + @operationId("Container_SubmitBatch") + submitBatch( + @doc("The batch request content") + @body body: bytes; // TODO: Investigate this type + ...ContainerNameParameter; + ...ContentLengthHeader; + ...MultipartContentType; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 202; + @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") + @header `Content-Type`: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + } | StorageError; } From d140a2da3852f7793edaba0ca3fdbd4505981717 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Tue, 12 Mar 2024 18:26:52 -0400 Subject: [PATCH 012/129] [storage] Update models --- .../storage/Microsoft.BlobStorage/models.tsp | 27 ++ .../storage/Microsoft.BlobStorage/routes.tsp | 282 +++++++++++++++++- 2 files changed, 303 insertions(+), 6 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 5b6f78447140..055ea4be011e 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -183,6 +183,33 @@ model ApiVersionParameter { version: string; } +@doc("The lease break period header.") +model LeaseBreakPeriod { + @doc("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 + @clientName("breakPeriod") + `x-ms-lease-break-period`?: int32; +} + +@doc("The required lease ID header.") +model ProposedLeaseIdRequired { + @doc("Required. The proposed lease ID for the container.") + @header `x-ms-proposed-lease-id`: string; +} + +@doc("The optional lease ID header.") +model ProposedLeaseIdOptional { + @doc("Optional. The proposed lease ID for the container.") + @header `x-ms-proposed-lease-id`?: string; +} + +@doc("The lease ID required header.") +model LeaseIdRequired { + @doc("Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.") + @clientName("leaseId") + @header `x-ms-lease-id`: string; +} + /// Models @doc("Represents an array of signed identifiers") diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index c29885b21583..246128904cd9 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -22,6 +22,8 @@ interface BlobServiceProperties { """) @put @operationId("Service_SetProperties") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" setServiceProperties( @doc("The storage service properties that specifies the analytics and CORS rules to set on the Blob service.") @body body: StorageServiceProperties; @@ -41,6 +43,8 @@ interface BlobServiceProperties { @doc("Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.") @operationId("Service_GetProperties") @get + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" getServiceProperties( ...TimeoutParameter; ...ApiVersionParameter; @@ -64,6 +68,8 @@ interface BlobServiceStatistics { """) @operationId("Service_GetStatistics") @get + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" getStatistics( ...TimeoutParameter; ...ApiVersionParameter; @@ -84,10 +90,12 @@ interface BlobServiceStatistics { } @route("/?comp=list") -interface ListContainerSegments { +interface BlobServiceListContainerSegments { @doc("The List Containers Segment operation returns a list of the containers under the specified account") @get @operationId("Service_ListContainersSegment") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" listContainers( ...PrefixParameter; ...TimeoutParameter; @@ -112,6 +120,8 @@ interface BlobServiceUserDelegationKey { @doc("The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS.") @post @operationId("Service_GetUserDelegationKey") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" getUserDelegationKey( @doc("The user delegation key info.") @body body: KeyInfo; @@ -136,7 +146,9 @@ interface BlobServiceAccountProperties { @doc("Returns the sku name and account kind.") @get @operationId("Service_GetAccountInfo") - get( + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + getAccountInfo( ...ApiVersionParameter; ): { @statusCode statusCode: 200; @@ -166,7 +178,9 @@ interface BlobServiceBatch { @doc("The Batch operation allows multiple API calls to be embedded into a single HTTP request.") @post @operationId("Service_SubmitBatch") - post( + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + submitBatch( @doc("The batch request content") @body body: bytes; // TODO: Investigate this type ...ContentLengthHeader; @@ -190,6 +204,8 @@ interface FilterBlobsService { @doc("The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression.") @get @operationId("Service_FilterBlobs") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" listBlobs( ...FilterBlobsWhere; ...FilterBlobsInclude; @@ -214,10 +230,12 @@ interface FilterBlobsService { } @route("/{containerName}?restype=container") -interface ContainerService { +interface BlobServiceContainer { @doc("Creates a new container under the specified account. If the container with the same name already exists, the operation fails.") @put @operationId("Container_Create") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" createContainer( ...ContainerNameParameter; ...MetadataParameter; @@ -248,6 +266,8 @@ interface ContainerService { @doc("returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs") @get @operationId("Container_GetProperties") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" getContainerProperties( ...ContainerNameParameter; ...TimeoutParameter; @@ -299,6 +319,8 @@ interface ContainerService { @doc("operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection") @delete @operationId("Container_Delete") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" deleteContainer( ...ContainerNameParameter; ...TimeoutParameter; @@ -322,10 +344,12 @@ interface ContainerService { } @route("/{containerName}?restype=container&comp=metadata") -interface ContainerMetadataService { +interface BlobServiceContainerMetadata { @doc("operation sets one or more user-defined name-value pairs for the specified container.") @put @operationId("Container_SetMetadata") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" setContainerMetadata( ...ContainerNameParameter; ...MetadataParameter; @@ -354,10 +378,12 @@ interface ContainerMetadataService { } @route("/{containerName}?restype=container&comp=acl") -interface ContainerAccessPolicyService { +interface BlobServiceContainerAccessPolicy { @doc("gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly.") @get @operationId("Container_GetAccessPolicy") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" getContainerccessPolicy( ...ContainerNameParameter; ...TimeoutParameter; @@ -388,6 +414,8 @@ interface ContainerAccessPolicyService { @doc("sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly.") @put @operationId("Container_SetAccessPolicy") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" setContainerAccessPolicy( ...ContainerNameParameter; ...ContainerAcl; @@ -423,6 +451,8 @@ interface ContainerRestoreService { @doc("Restores a previously-deleted container.") @put @operationId("Container_Undelete") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" undeleteContainer( ...ContainerNameParameter; ...DeletedContainerName; @@ -449,6 +479,8 @@ interface ContainerRenameService { @doc("Renames an existing container.") @put @operationId("Container_Rename") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" renameContainer( ...ContainerNameParameter; ...SourceContainerName; @@ -475,6 +507,8 @@ interface ContainerBatchService { @doc("The Batch operation allows multiple API calls to be embedded into a single HTTP request.") @post @operationId("Container_SubmitBatch") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" submitBatch( @doc("The batch request content") @body body: bytes; // TODO: Investigate this type @@ -494,3 +528,239 @@ interface ContainerBatchService { @header `x-ms-version`: string; } | StorageError; } + +@route("/{containerName}?restype=container&comp=blobs") +interface BlobListService { + @doc("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.") + @get + @operationId("Container_FilterBlobs") + filterBlobs( + ...ContainerNameParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...FilterBlobsWhere; + ...FilterBlobsInclude; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + @body body: FilterBlobSegment; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?comp=lease&restype=container&acquire") +interface ContainerLeaseService { + @doc("[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") + @put + @operationId("Container_AcquireLease") + acquireLease( + ...ContainerNameParameter; + ...LeaseDuration; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...ProposedLeaseId; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ): { + @statusCode statusCode: 201; + @doc("The lease ID specified in the request or a generated one if not specified.") + @header `x-ms-lease-id`: string; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?comp=lease&restype=container&release") +interface ContainerReleaseLeaseService { + @doc("[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") + @put + @operationId("Container_ReleaseLease") + releaseLease( + ...ContainerNameParameter; + ...LeaseIdRequired; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ): { + @statusCode statusCode: 200; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?comp=lease&restype=container&renew") +interface ContainerRenewLeaseService { + @doc("[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") + @put + @operationId("Container_RenewLease") + renewLease( + ...ContainerNameParameter; + ...LeaseIdRequired; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ): { + @statusCode statusCode: 200; + @doc("The lease ID specified in the request or a generated one if not specified.") + @header `x-ms-lease-id`: string; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?comp=lease&restype=container&break") +interface ConatinerBreakLeaseService { + @doc("[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") + @put + @operationId("Container_BreakLease") + breakLease( + ...ContainerNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...LeaseBreakPeriod; + ): { + @statusCode statusCode: 202; + @doc("The lease time remaining on the container.") + @header `x-ms-lease-time`: number; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("The lease ID specified in the request or a generated one if not specified.") + @header `x-ms-lease-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?comp=lease&restype=container&change") +interface ContainerChangeLeaseService { + @doc("[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") + @put + @operationId("Container_ChangeLease") + changeLease( + ...ContainerNameParameter; + ...LeaseIdRequired; + ...ProposedLeaseIdRequired; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ): { + @statusCode statusCode: 200; + @doc("The lease ID specified in the request or a generated one if not specified.") + @header `x-ms-lease-id`: string; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("The lease time remaining on the container.") + @header `x-ms-lease-time`: number; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?restype=container&comp=list&flat") +interface ContainerListBlobsService { + @doc("[Update] The List Blobs operation returns a list of the blobs under the specified container",) + @get + @operationId("Container_ListBlobs") + listBlobs( + ...ContainerNameParameter; + ...PrefixParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...IncludeParameter; + ...DelimiterParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + @body body: ListBlobsFlatSegment; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("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.") + @header `x-ms-version`: string; + @doc("The value of the NextMarker header is used when the number of blobs to return exceeds the maximum that can be returned in a single response.") + @header `x-ms-blob-continuation-token`: string; + @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") + @header `Content-Type`: string; + @doc("The value of the NextMarker header is used when the number of blobs to return exceeds the maximum that can be returned in a single response.") + @header `x-ms-continuation-token`: string; + @doc("The value of the NextMarker header is used when the number of blobs to return exceeds the maximum that can be returned in a single response.") + @header `x-ms-marker`: string; + @doc("The value of the NextMarker header is used when the number of blobs to return exceeds the maximum that can be returned in a single response.") + @header `x-ms-blob-continuation-token`: string; + @doc("The value of the NextMarker header is used when the number of blobs to return exceeds the maximum that can be returned in a single response.") + @header `x-ms-continuation-token`: string; + @doc("The value of the NextMarker header is used when +} From 19e85ae584d48aac544fbd8915ac362386bb11be Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Tue, 19 Mar 2024 22:31:10 -0400 Subject: [PATCH 013/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/models.tsp | 151 +++++++ .../storage/Microsoft.BlobStorage/routes.tsp | 385 +++++++++++++++++- 2 files changed, 517 insertions(+), 19 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 055ea4be011e..ababa26a1d9a 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -21,6 +21,157 @@ model StorageError { /// Parameters +@doc("The encryption algorithm parameter.") +model EncryptionAlgorithmParameter { + @doc("Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.") + @clientName("encryptionAlgorithm") + @header `x-ms-encryption-algorithm`?: string; +} + +@doc("The encryption key SHA256 hash parameter.") +model EncryptionKeySha256Parameter { + @doc("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.") + @clientName("encryptionKeySha256") + @header `x-ms-encryption-key-sha256`?: string; +} + + +@doc("The encryption key parameter.") +model EncryptionKeyParameter { + @doc("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.") + @clientName("encryptionKey") + @header `x-ms-encryption-key`?: string; +} + +@doc("The If-Tags parameters.") +model IfTagsParameter { + @doc("Specify a SQL where clause on blob tags to operate only on blobs with a matching value.") + @clientName("ifTags") + @header `x-ms-if-tags`?: string; +} + +@doc("The If-Match parameter.") +model IfMatchParameter { + @doc("A condition that must be met in order for the request to be processed.") + @header + @clientName("ifMatch") + `If-Match`?: string; +} + +@doc("The If-None-Match parameter.") +model IfNoneMatchParameter { + @doc("A condition that must be met in order for the request to be processed.") + @header + @clientName("ifNoneMatch") + `If-None-Match`?: string; +} + +@doc("The get range content CRC64 parameter.") +model GetRangeContentCRC64 { + @doc("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`?: boolean; +} + +@doc("The get range content MD5 parameter.") +model GetRangeContentMD5 { + @doc("Optional. When this header is set to true and specified together with the Range header, 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`?: boolean; +} + +@doc("The range parameter.") +model RangeParameter { + @doc("Return only the bytes of the blob in the specified range.") + @header + @clientName("range") + `x-ms-range`: string; +} + +@doc("The version ID parameter.") +model VersionIdParameter { + @doc("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.") + @header + @clientName("versionId") + versionid: string; +} + +@doc("The snapshot parameter.") +model 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; +} + +@doc("An enumeration of blobs") +model ListBlobsHierarchySegmentResponse { + @doc("The service endpoint.") + ServiceEndpoint: string; // TODO: XML Attribute + + @doc("The container name.") + ContainerName: string; // TODO: XML Attribute + + @doc("The delimiter of the blobs.") + Delimiter?: string; + + @doc("The prefix of the blobs.") + Prefix?: string; + + @doc("The marker of the blobs.") + Marker?: string; + + @doc("The max results of the blobs.") + MaxResults?: int32; + + @doc("The blob segment.") + Segment: BlobItem[]; // TODO: XML Serialization + + @doc("The next marker of the blobs.") + NextMarker?: string; +} + +@doc("The delimiter parameter.") +model DelimiterParameter { + @doc("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; +} + +@doc("The list blob includes parameter.") +model ListBlobsInclude { + @doc("Include this parameter to specify one or more datasets to include in the response.") + @query({ format: "csv" }) include?: ListBlobsIncludes[]; +} + +@doc("The list blob includes parameter values.") +enum ListBlobsIncludes { + @doc("The include copies.") + copies, + @doc("The include deleted blobs.") + deleted, + @doc("The include metadata.") + metadata, + @doc("The include snapshots.") + snapshots, + @doc("The include uncommitted blobs.") + uncommittedblobs, + @doc("The include versions.") + versions, + @doc("The include tags.") + tags, + @doc("The include immutable policy.") + immutabilitypolicy, + @doc("The include legal hold.") + legalhold, + @doc("The include deleted with versions.") + deletedwithversions +} + +@doc("The lease duration parameter.") +model LeaseDurationParameter { + @doc("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.") + @clientName("duration") + @header + `x-ms-lease-duration`: int32; +} + @doc("The source lease ID header parameter.") model SourceLeaseId { @doc("A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.") diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 246128904cd9..0c4771d2814e 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -534,6 +534,8 @@ interface BlobListService { @doc("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.") @get @operationId("Container_FilterBlobs") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" filterBlobs( ...ContainerNameParameter; ...MarkerParameter; @@ -563,13 +565,15 @@ interface ContainerLeaseService { @doc("[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") @put @operationId("Container_AcquireLease") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" acquireLease( ...ContainerNameParameter; - ...LeaseDuration; + ...LeaseDurationParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...ProposedLeaseId; + ...ProposedLeaseIdOptional; ...IfModifiedSince; ...IfUnmodifiedSince; ): { @@ -598,6 +602,8 @@ interface ContainerReleaseLeaseService { @doc("[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") @put @operationId("Container_ReleaseLease") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" releaseLease( ...ContainerNameParameter; ...LeaseIdRequired; @@ -630,6 +636,8 @@ interface ContainerRenewLeaseService { @doc("[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") @put @operationId("Container_RenewLease") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" renewLease( ...ContainerNameParameter; ...LeaseIdRequired; @@ -664,6 +672,8 @@ interface ConatinerBreakLeaseService { @doc("[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") @put @operationId("Container_BreakLease") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" breakLease( ...ContainerNameParameter; ...TimeoutParameter; @@ -675,7 +685,7 @@ interface ConatinerBreakLeaseService { ): { @statusCode statusCode: 202; @doc("The lease time remaining on the container.") - @header `x-ms-lease-time`: number; + @header `x-ms-lease-time`: int32; @doc("The ETag contains a value that you can use to perform operations conditionally.") @header ETag: string; @doc("The date/time that the container was last modified.") @@ -696,6 +706,8 @@ interface ContainerChangeLeaseService { @doc("[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") @put @operationId("Container_ChangeLease") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" changeLease( ...ContainerNameParameter; ...LeaseIdRequired; @@ -715,7 +727,7 @@ interface ContainerChangeLeaseService { @encode("date-time-rfc1123") @header `Last-Modified`: utcDateTime; @doc("The lease time remaining on the container.") - @header `x-ms-lease-time`: number; + @header `x-ms-lease-time`: int64; @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") @header `x-ms-client-request-id`?: string; @doc("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.") @@ -727,40 +739,375 @@ interface ContainerChangeLeaseService { @route("/{containerName}?restype=container&comp=list&flat") interface ContainerListBlobsService { - @doc("[Update] The List Blobs operation returns a list of the blobs under the specified container",) + @doc("[Update] The List Blobs operation returns a list of the blobs under the specified container") @get - @operationId("Container_ListBlobs") + @operationId("Container_ListBlobFlatSegment") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" listBlobs( ...ContainerNameParameter; ...PrefixParameter; ...MarkerParameter; ...MaxResultsParameter; - ...IncludeParameter; + ...ListBlobsInclude; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + @body body: ListBlobsFlatSegmentResponse; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?restype=container&comp=list&hierarchy") +interface ContainerListBlobsHierarchyService { + @doc("[Update] The List Blobs operation returns a list of the blobs under the specified container") + @get + @operationId("Container_ListBlobHierarchySegment") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + listBlobs( + ...ContainerNameParameter; ...DelimiterParameter; + ...PrefixParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...ListBlobsInclude; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: ListBlobsFlatSegment; + @body body: ListBlobsHierarchySegmentResponse; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}?restype=account&comp=properties") +interface ContainerAccountInfoService { + @doc("Returns the sku name and account kind ") + @get + @operationId("Container_GetAccountInfo") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + getAccountInfo( + ...ApiVersionParameter; + ): { + @statusCode statusCode: 200; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @header `x-ms-request-id`: string; + @doc("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.") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + @doc("Identifies the sku name of the account.") + @clientName("SkuName") + @header `x-ms-sku-name`: SkuName; + @doc("Identifies the account kind.") + @clientName("AccountKind") + @header `x-ms-account-kind`: AccountKind; + } | StorageError; +} + +@route("/{containerName}/{blob}") +interface BlobService { + @doc("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.") + @get + @operationId("Blob_Download") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + downloadBlob( + ...SnapshotParameter; + ...VersionIdParameter; + ...TimeoutParameter; + ...RangeParameter; + ...LeaseIdOptional; + ...GetRangeContentMD5; + ...GetRangeContentCRC64; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...ClientRequestIdParameter; + ...ApiVersionParameter; + ): { + @statusCode statusCode: 200; + @body body: bytes; + // TODO: x-ms-meta headers + // TODO: x-ms-or headers + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("Returns the date and time the blob was created.") + @encode("date-time-rfc1123") + @clientName("CreationTime") + @header `x-ms-creation-time`: utcDateTime; + @doc("Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication.") + @clientName("ObjectReplicationPolicyId") + @header `x-ms-or-policy-id`: string; + @doc("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`: string; + @doc("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`: string; + @doc("This header returns the value that was specified for the Content-Encoding request header") + @header `Content-Encoding`: string; + @doc("This header is returned if it was previously specified for the blob.") + @header `Cache-Control`: string; + @doc("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`: string; + @doc("This header returns the value that was specified for the Content-Language request header.") + @header `Content-Language`: string; + @doc("The current sequence number for a page blob. This header is not returned for block blobs or append blobs") + @clientName("BlobSequenceNumber") + @header `x-ms-blob-sequence-number`: int64; + @doc("The type of the blob.") + @clientName("BlobType") + @header `x-ms-blob-type`: BlobType; + @doc("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.") + @clientName("CopyCompletionTime") + @encode("date-time-rfc1123") + @header `x-ms-copy-completion-time`: utcDateTime; + @doc("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") + @clientName("CopyStatusDescription") + @header `x-ms-copy-status-description`: string; + @doc("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.") + @clientName("CopyId") + @header `x-ms-copy-id`: string; + @doc("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") + @clientName("CopyProgress") + @header `x-ms-copy-progress`: string; + @doc("State of the copy operation identified by x-ms-copy-id.") + @clientName("CopyStatus") + @header `x-ms-copy-status`: CopyStatus; + @doc("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.") + @clientName("CopySource") + @header `x-ms-copy-source`: string; + @doc("When a blob is leased, specifies whether the lease is of infinite or fixed duration.") + @clientName("LeaseDuration") + @header `x-ms-lease-duration`: LeaseDuration; + @doc("Lease state of the blob.") + @clientName("LeaseState") + @header `x-ms-lease-state`: LeaseState; + @doc("The lease status of the blob.") + @clientName("LeaseStatus") + @header `x-ms-lease-status`: LeaseStatus; + @doc("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.") + @clientName("Version") + @header `x-ms-version`: string; + @doc("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.") + @clientName("VersionId") + @header `x-ms-version-id`: string; + @doc("The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header.") + @clientName("IsCurrentVersion") + @header `x-ms-is-current-version`: boolean; + @doc("Indicates that the service supports requests for partial blob content.") + @header `Accept-Ranges`: string; + @doc("The number of committed blocks present in the blob. This header is returned only for append blobs.") + @clientName("BlobCommittedBlockCount") + @header `x-ms-blob-committed-block-count`: int32; + @doc("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).") + @clientName("IsServerEncrypted") + @header `x-ms-server-encrypted`: boolean; + @doc("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.") + @clientName("EncryptionKeySha256") + @header `x-ms-encryption-key-sha256`: string; + @doc("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") + @clientName("EncryptionScope") + @header `x-ms-encryption-scope`: string; + @doc("The number of tags associated with the blob") + @clientName("TagCount") + @header `x-ms-tag-count`: int64; + @doc("If this blob has been sealed") + @clientName("IsSealed") + @header `x-ms-blob-sealed`: boolean; + @doc("UTC date/time value generated by the service that indicates the time at which the blob was last read or written to") + @clientName("LastAccessed") + @encode("date-time-rfc1123") + @header `x-ms-last-access-time`: utcDateTime; + @doc("UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire.") + @clientName("ImmutabilityPolicyExpiresOn") + @encode("date-time-rfc1123") + @header `x-ms-immutability-policy-until-date`: utcDateTime; + @doc("Indicates immutability policy mode.") + @clientName("ImmutabilityPolicyMode") + @header `x-ms-immutability-policy-mode`: BlobImmutabilityPolicyMode; + @doc("Indicates if a legal hold is present on the blob.") + @clientName("LegalHold") + @header `x-ms-legal-hold`: boolean; + @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") + @header `Content-Type`: string; + @doc("The number of bytes present in the response body.") + @header `Content-Length`: int64; @doc("The ETag contains a value that you can use to perform operations conditionally.") @header ETag: string; + } | { + @statusCode statusCode: 206; + @body body: bytes; + // TODO: x-ms-meta headers + // TODO: x-ms-or headers @doc("The date/time that the container was last modified.") @encode("date-time-rfc1123") @header `Last-Modified`: utcDateTime; + @doc("Returns the date and time the blob was created.") + @encode("date-time-rfc1123") + @clientName("CreationTime") + @header `x-ms-creation-time`: utcDateTime; + @doc("Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication.") + @clientName("ObjectReplicationPolicyId") + @header `x-ms-or-policy-id`: string; + @doc("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`: string; + @doc("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`: string; + @doc("This header returns the value that was specified for the Content-Encoding request header") + @header `Content-Encoding`: string; + @doc("This header is returned if it was previously specified for the blob.") + @header `Cache-Control`: string; + @doc("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`: string; + @doc("This header returns the value that was specified for the Content-Language request header.") + @header `Content-Language`: string; + @doc("The current sequence number for a page blob. This header is not returned for block blobs or append blobs") + @clientName("BlobSequenceNumber") + @header `x-ms-blob-sequence-number`: int64; + @doc("The type of the blob.") + @header `x-ms-blob-type`: BlobType; + @doc("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.") + @clientName("CopyCompletionTime") + @encode("date-time-rfc1123") + @header `x-ms-copy-completion-time`: utcDateTime; + @doc("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") + @clientName("CopyStatusDescription") + @header `x-ms-copy-status-description`: string; + @doc("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.") + @clientName("CopyId") + @header `x-ms-copy-id`: string; + @doc("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") + @clientName("CopyProgress") + @header `x-ms-copy-progress`: string; + @doc("State of the copy operation identified by x-ms-copy-id.") + @clientName("CopyStatus") + @header `x-ms-copy-status`: CopyStatus; + @doc("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.") + @clientName("CopySource") + @header `x-ms-copy-source`: string; + @doc("When a blob is leased, specifies whether the lease is of infinite or fixed duration.") + @clientName("LeaseDuration") + @header `x-ms-lease-duration`: LeaseDuration; + @doc("Lease state of the blob.") + @clientName("LeaseState") + @header `x-ms-lease-state`: LeaseState; + @doc("The lease status of the blob.") + @clientName("LeaseStatus") + @header `x-ms-lease-status`: LeaseStatus; @doc("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.") + @clientName("Version") @header `x-ms-version`: string; - @doc("The value of the NextMarker header is used when the number of blobs to return exceeds the maximum that can be returned in a single response.") - @header `x-ms-blob-continuation-token`: string; + @doc("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.") + @clientName("VersionId") + @header `x-ms-version-id`: string; + @doc("The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header.") + @clientName("IsCurrentVersion") + @header `x-ms-is-current-version`: boolean; + @doc("Indicates that the service supports requests for partial blob content.") + @header `Accept-Ranges`: string; + @doc("The number of committed blocks present in the blob. This header is returned only for append blobs.") + @clientName("BlobCommittedBlockCount") + @header `x-ms-blob-committed-block-count`: int32; + @doc("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).") + @clientName("IsServerEncrypted") + @header `x-ms-server-encrypted`: boolean; + @doc("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.") + @clientName("EncryptionKeySha256") + @header `x-ms-encryption-key-sha256`: string; + @doc("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") + @clientName("EncryptionScope") + @header `x-ms-encryption-scope`: string; + @doc("The number of tags associated with the blob") + @clientName("TagCount") + @header `x-ms-tag-count`: int64; + @doc("If this blob has been sealed") + @clientName("IsSealed") + @header `x-ms-blob-sealed`: boolean; + @doc("UTC date/time value generated by the service that indicates the time at which the blob was last read or written to") + @clientName("LastAccessed") + @encode("date-time-rfc1123") + @header `x-ms-last-access-time`: utcDateTime; + @doc("UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire.") + @clientName("ImmutabilityPolicyExpiresOn") + @encode("date-time-rfc1123") + @header `x-ms-immutability-policy-until-date`: utcDateTime; + @doc("Indicates immutability policy mode.") + @clientName("ImmutabilityPolicyMode") + @header `x-ms-immutability-policy-mode`: BlobImmutabilityPolicyMode; + @doc("Indicates if a legal hold is present on the blob.") + @clientName("LegalHold") + @header `x-ms-legal-hold`: boolean; @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") @header `Content-Type`: string; - @doc("The value of the NextMarker header is used when the number of blobs to return exceeds the maximum that can be returned in a single response.") - @header `x-ms-continuation-token`: string; - @doc("The value of the NextMarker header is used when the number of blobs to return exceeds the maximum that can be returned in a single response.") - @header `x-ms-marker`: string; - @doc("The value of the NextMarker header is used when the number of blobs to return exceeds the maximum that can be returned in a single response.") - @header `x-ms-blob-continuation-token`: string; - @doc("The value of the NextMarker header is used when the number of blobs to return exceeds the maximum that can be returned in a single response.") - @header `x-ms-continuation-token`: string; - @doc("The value of the NextMarker header is used when + @doc("The number of bytes present in the response body.") + @header `Content-Length`: int64; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + } | StorageError; + + @doc("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.") + @head + @operationId("Blob_GetProperties") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + getBlobProperties( + ...SnapshotParameter; + ...VersionIdParameter; + ...LeaseIdOptional; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ClientRequestIdParameter; + ...ApiVersionParameter; + ): { + @statusCode statusCode: 200; + // TODO: x-ms-meta headers + // TODO: x-ms-or headers + + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("Returns the date and time the blob was created.") + @encode("date-time-rfc1123") + @clientName("CreationTime") + @header `x-ms-creation-time`: utcDateTime; + @doc("Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication.") + @clientName("ObjectReplicationPolicyId") + @header `x-ms-or-policy-id`: string; + } | StorageError; } From f2bb784bc9b353e7756e8d33b5b01b652444684d Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Wed, 20 Mar 2024 13:08:25 -0400 Subject: [PATCH 014/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/models.tsp | 177 ++++++++++++ .../storage/Microsoft.BlobStorage/routes.tsp | 253 ++++++++++++++++++ 2 files changed, 430 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index ababa26a1d9a..cfb9257498b8 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -21,6 +21,183 @@ model StorageError { /// Parameters +@doc("The legal hold optional parameter.") +model LegalHoldOptionalParameter { + @doc("Specified if a legal hold should be set on the blob.") + @clientName("legalHold") + @header `x-ms-legal-hold`?: boolean; +} + +@doc("The immutability policy mode parameter.") +model ImmutabilityPolicyModeParameter { + @doc("Specifies the immutability policy mode to set on the blob.") + @header + @clientName("immutabilityPolicyMode") + `x-ms-immutability-policy-mode`?: BlobImmutabilityPolicyMode; +} + +@doc("The immutability policy expiration parameter.") +model ImmutabilityPolicyExpiryParameter { + @doc("Specifies the date time when the blobs immutability policy is set to expire.") + @header + @clientName("immutabilityPolicyExpiry") + @encode("date-time-rfc1123") + `x-ms-immutability-policy-until-date`?: string; +} + +@doc("The blobs tags header parameter.") +model BlobTagsHeaderParameter { + @doc("Optional. Used to set blob tags in various blob operations.") + @clientName("BlobTagsString") + @header + `x-ms-tags`?: string; +} + +@doc("The blob sequence number parameter.") +model BlobSequenceNumberParameter { + @doc("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 + @clientName("blobSequenceNumber") + `x-ms-blob-sequence-number`?: int64; +} + +@doc("The blob content length parameter.") +model BlobContentLengthRequiredParameter { + @doc("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 + @clientName("blobContentLength") + `x-ms-blob-content-length`: int64; +} + +@doc("The encryption scope parameter.") +model EncryptionScopeParameter { + @doc("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.") + @clientName("encryptionScope") + @header `x-ms-encryption-scope`?: string; +} + +@doc("The blob content disposition parameter.") +model BlobContentDispositionParameter { + @doc("Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.") + @header + @clientName("blobContentDisposition") + `x-ms-blob-content-disposition`?: string; +} + +@doc("The blob cache control parameter.") +model BlobCacheControlParameter { + @doc("Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.") + @header + @clientName("blobCacheControl") + `x-ms-blob-cache-control`?: string; +} + +@doc("The blob content MD5 parameter.") +model BlobContentMD5Parameter { + @doc("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("blobContentMD5") + @header + `x-ms-blob-content-md5`?: string; +} + +@doc("The blob content type parameter.") +model BlobContentLanguageParameter { + @doc("Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.") + @header + @clientName("blobContentLanguage") + `x-ms-blob-content-language`?: string; +} + +@doc("The blob content type parameter.") +model BlobContentEncodingParameter { + @doc("Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.") + @clientName("blobContentEncoding") + @header + `x-ms-blob-content-encoding`?: string; +} + +@doc("The blob content type parameter.") +model BlobContentTypeParamter { + @doc("Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.") + @header + @clientName("blobContentType") + `x-ms-blob-content-type`?: string; +} + +@doc("The optional premium page blob access tier parameter.") +model PremiumPageBlobAccessTierOptional { + @doc("Optional. Indicates the tier to be set on the page blob.") + @clientName("tier") + @header + `x-ms-access-tier`?: PremiumPageBlobAccessTier; +} + +@doc("The premium page blob access tier types.") +enum PremiumPageBlobAccessTier { + @doc("The premium page blob access tier is P4.") + P4, + @doc("The premium page blob access tier is P6.") + P6, + @doc("The premium page blob access tier is P10.") + P10, + @doc("The premium page blob access tier is P15.") + P15, + @doc("The premium page blob access tier is P20.") + P20, + @doc("The premium page blob access tier is P30.") + P30, + @doc("The premium page blob access tier is P40.") + P40, + @doc("The premium page blob access tier is P50.") + P50, + @doc("The premium page blob access tier is P60.") + P60, + @doc("The premium page blob access tier is P70.") + P70, + @doc("The premium page blob access tier is P80.") + P80 +} + +@doc("The blob name parameter.") +model BlobNameParameter { + @doc("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 + blobName: string; +} + +@doc("The blob delete type parameter.") +model BlobDeleteTypeParameter { + @doc("Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled.") + @query + @clientName("blobDeleteType") + deletetype?: DeleteSnapshotsOptionType; +} + +@doc("The type of blob deletions.") +enum BlobDeleteType { + @doc("Permanently delete the blob.") + Permanent, +} + +@doc("The delete snapshot parameter.") +model DeleteSnapshotsParameter { + @doc("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") + @clientName("deleteSnapshots") + @header + `x-ms-delete-snapshots`?: DeleteSnapshotsOptionType; +} + +@doc("The delete snapshots option type.") +enum DeleteSnapshotsOptionType { + @doc("The delete snapshots include option is not specified.") + none, + @doc("The delete snapshots include option is include.") + include, +} + @doc("The encryption algorithm parameter.") model EncryptionAlgorithmParameter { @doc("Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.") diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 0c4771d2814e..4303025e7359 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -33,10 +33,13 @@ interface BlobServiceProperties { ): { @statusCode statusCode: 202; @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @clientName("ClientRequestId") @header `x-ms-client-request-id`?: string; @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @clientName("RequestId") @header `x-ms-request-id`: string; @doc("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.") + @clientName("Version") @header `x-ms-version`: string; } | StorageError; @@ -292,10 +295,13 @@ interface BlobServiceContainer { @encode("date-time-rfc1123") @header Date: utcDateTime; @doc("When a blob is leased, specifies whether the lease is of infinite or fixed duration.") + @clientName("LeaseDuration") @header `x-ms-lease-duration`: LeaseDuration; @doc("Lease state of the container.") + @clientName("LeaseState") @header `x-ms-lease-state`: LeaseState; @doc("The lease status of the container.") + @clientName("LeaseStatus") @header `x-ms-lease-status`: LeaseStatus; @doc("The public access setting for the container.") @header `x-ms-blob-public-access`: PublicAccessType; @@ -812,10 +818,13 @@ interface ContainerAccountInfoService { ): { @statusCode statusCode: 200; @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @clientName("ClientRequestId") @header `x-ms-client-request-id`?: string; @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @clientName("RequestId") @header `x-ms-request-id`: string; @doc("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.") + @clientName("Version") @header `x-ms-version`: string; @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") @encode("date-time-rfc1123") @@ -837,6 +846,8 @@ interface BlobService { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" downloadBlob( + ...ContainerNameParameter; + ...BlobNameParameter; ...SnapshotParameter; ...VersionIdParameter; ...TimeoutParameter; @@ -995,6 +1006,7 @@ interface BlobService { @clientName("BlobSequenceNumber") @header `x-ms-blob-sequence-number`: int64; @doc("The type of the blob.") + @clientName("BlobType") @header `x-ms-blob-type`: BlobType; @doc("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.") @clientName("CopyCompletionTime") @@ -1081,6 +1093,8 @@ interface BlobService { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" getBlobProperties( + ...ContainerNameParameter; + ...BlobNameParameter; ...SnapshotParameter; ...VersionIdParameter; ...LeaseIdOptional; @@ -1109,5 +1123,244 @@ interface BlobService { @doc("Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication.") @clientName("ObjectReplicationPolicyId") @header `x-ms-or-policy-id`: string; + @doc("The type of the blob.") + @clientName("BlobType") + @header `x-ms-blob-type`: BlobType; + @doc("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.") + @clientName("CopyCompletionTime") + @encode("date-time-rfc1123") + @header `x-ms-copy-completion-time`: utcDateTime; + @doc("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") + @clientName("CopyStatusDescription") + @header `x-ms-copy-status-description`: string; + @doc("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.") + @clientName("CopyId") + @header `x-ms-copy-id`: string; + @doc("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") + @clientName("CopyProgress") + @header `x-ms-copy-progress`: string; + @doc("State of the copy operation identified by x-ms-copy-id.") + @clientName("CopyStatus") + @header `x-ms-copy-status`: CopyStatus; + @doc("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.") + @clientName("CopySource") + @header `x-ms-copy-source`: string; + @doc("Included if the blob is incremental copy blob.") + @clientName("IsIncrementalCopy") + @header `x-ms-incremental-copy`: boolean; + @doc("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.") + @clientName("DestinationSnapshot") + @header `x-ms-copy-destination-snapshot`: string; + @doc("When a blob is leased, specifies whether the lease is of infinite or fixed duration.") + @clientName("LeaseDuration") + @header `x-ms-lease-duration`: LeaseDuration; + @doc("Lease state of the container.") + @clientName("LeaseState") + @header `x-ms-lease-state`: LeaseState; + @doc("The lease status of the container.") + @clientName("LeaseStatus") + @header `x-ms-lease-status`: LeaseStatus; + @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") + @header `Content-Type`: string; + @doc("The number of bytes present in the response body.") + @header `Content-Length`: int64; + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("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`: string; + @doc("This header returns the value that was specified for the Content-Encoding request header") + @header `Content-Encoding`: string; + @doc("This header is returned if it was previously specified for the blob.") + @header `Cache-Control`: string; + @doc("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`: string; + @doc("This header returns the value that was specified for the Content-Language request header.") + @header `Content-Language`: string; + @doc("The current sequence number for a page blob. This header is not returned for block blobs or append blobs") + @clientName("BlobSequenceNumber") + @header `x-ms-blob-sequence-number`: int64; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @clientName("ClientRequestId") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @clientName("RequestId") + @header `x-ms-request-id`: string; + @doc("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.") + @clientName("Version") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + @doc("Indicates that the service supports requests for partial blob content.") + @header `Accept-Ranges`: string; + @doc("The number of committed blocks present in the blob. This header is returned only for append blobs.") + @clientName("BlobCommittedBlockCount") + @header `x-ms-blob-committed-block-count`: int32; + @doc("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).") + @clientName("IsServerEncrypted") + @header `x-ms-server-encrypted`: boolean; + @doc("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.") + @clientName("EncryptionKeySha256") + @header `x-ms-encryption-key-sha256`: string; + @doc("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") + @clientName("EncryptionScope") + @header `x-ms-encryption-scope`: string; + @doc("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.") + @clientName("AccessTier") + @header `x-ms-access-tier`: AccessTier; + @doc("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.") + @clientName("AccessTierInferred") + @header `x-ms-access-tier-inferred`: boolean; + @doc("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.") + @clientName("ArchiveStatus") + @header `x-ms-archive-status`: ArchiveStatus; + @doc("The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set.") + @encode("date-time-rfc1123") + @clientName("AccessTierChangeTime") + @header `x-ms-access-tier-change-time`: utcDateTime; + @doc("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.") + @clientName("VersionId") + @header `x-ms-version-id`: string; + @doc("The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header.") + @clientName("IsCurrentVersion") + @header `x-ms-is-current-version`: boolean; + @doc("The number of tags associated with the blob") + @clientName("TagCount") + @header `x-ms-tag-count`: int64; + @doc("The time this blob will expire.") + @clientName("ExpiresOn") + @encode("date-time-rfc1123") + @header `x-ms-expiry-time`: utcDateTime; + @doc("If this blob has been sealed") + @clientName("IsSealed") + @header `x-ms-blob-sealed`: boolean; + @doc("If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.") + @clientName("RehydratePriority") + @header `x-ms-rehydrate-priority`: RehydratePriority; + @doc("UTC date/time value generated by the service that indicates the time at which the blob was last read or written to") + @clientName("LastAccessed") + @encode("date-time-rfc1123") + @header `x-ms-last-access-time`: utcDateTime; + @doc("UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire.") + @clientName("ImmutabilityPolicyExpiresOn") + @encode("date-time-rfc1123") + @header `x-ms-immutability-policy-until-date`: utcDateTime; + @doc("Indicates immutability policy mode.") + @clientName("ImmutabilityPolicyMode") + @header `x-ms-immutability-policy-mode`: BlobImmutabilityPolicyMode; + @doc("Indicates if a legal hold is present on the blob.") + @clientName("LegalHold") + @header `x-ms-legal-hold`: boolean; + } | StorageError; + + @delete + @doc("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).") + @operationId("Blob_Delete") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + deleteBlob( + ...ContainerNameParameter; + ...BlobNameParameter; + ...SnapshotParameter; + ...VersionIdParameter; + ...TimeoutParameter; + ...LeaseIdOptional; + ...DeleteSnapshotsParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...BlobDeleteTypeParameter; + ): { + @statusCode statusCode: 202; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @clientName("ClientRequestId") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @clientName("RequestId") + @header `x-ms-request-id`: string; + @doc("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.") + @clientName("Version") + @header `x-ms-version`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + } | StorageError; +} + +@route("/{containerName}/{blob}?PageBlob") +interface PageBlobService { + @doc("The Create operation creates a new page blob.") + @put + @operationId("PageBlob_Create") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + createPageBlob( + // TODO: Metadata + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentLengthHeader; + ...PremiumPageBlobAccessTierOptional; + ...BlobContentTypeParamter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMD5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptional; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...BlobContentLengthRequiredParameter; + ...BlobSequenceNumberParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...LegalHoldOptionalParameter; + ): { + @statusCode statusCode: 201; + + @doc("The ETag contains a value that you can use to perform operations conditionally.") + @header ETag: string; + @doc("The date/time that the container was last modified.") + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; + @doc("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`: string; + @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") + @clientName("ClientRequestId") + @header `x-ms-client-request-id`?: string; + @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") + @clientName("RequestId") + @header `x-ms-request-id`: string; + @doc("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.") + @clientName("Version") + @header `x-ms-version`: string; + @doc("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.") + @clientName("VersionId") + @header `x-ms-version-id`: string; + @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") + @encode("date-time-rfc1123") + @header Date: utcDateTime; + @doc("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`: boolean; + @doc("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.") + @clientName("EncryptionKeySha256") + @header `x-ms-encryption-key-sha256`: string; + @doc("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") + @clientName("EncryptionScope") + @header `x-ms-encryption-scope`: string; } | StorageError; } From 4b3e1c150c1b9f8590a4eb37e45a91b228823435 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Thu, 21 Mar 2024 17:54:43 -0400 Subject: [PATCH 015/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/models.tsp | 423 ++++- .../storage/Microsoft.BlobStorage/routes.tsp | 1666 +++++++++++------ 2 files changed, 1489 insertions(+), 600 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index cfb9257498b8..77cb0eb6baea 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -21,6 +21,427 @@ model StorageError { /// Parameters +/** The is hierarchical namespace enabled response header. */ +model IsHierarchicalNamespaceEnabledResponseHeader { + /** Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled. */ + @header + @clientName("IsHierarchicalNamespaceEnabled") + `x-ms-is-hns-enabled`: boolean; +} + +/** The account kind response header. */ +model AccountKindResponseHeader { + /** Identifies the account kind */ + @header + @clientName("AccountKind") + `x-ms-account-kind`: AccountKind; +} + +/** The SKU name response header. */ +model SkuNameResponseHeader { + /** Identifies the sku name of the account */ + @header + @clientName("SkuName") + `x-ms-sku-name`: SkuName; +} + +/** The access tier required parameter. */ +model AccessTierRequiredParameter { + /** Indicates the tier to be set on the blob. */ + @header + @clientName("AccessTier") + `x-ms-access-tier`: AccessTier; +} + +/** The copy ID parameter. */ +model CopyIdParameter { + /** The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation. */ + @header + @clientName("CopyId") + `x-ms-copy-id`: string; +} + +/** The content CRC 64 response header. */ +model ContentCrc64ResponseHeader { + /** This response header is returned so that the client can check for the integrity of the copied content. */ + @header + @clientName("ContentCrc64") + `x-ms-content-crc64`: string; +} + +/** The copy status response header. */ +model CopyStatusResponseHeader { + /** State of the copy operation identified by x-ms-copy-id. */ + @header + @clientName("CopyStatus") + `x-ms-copy-status`: CopyStatus; +} + +/** The copy ID response header. */ +model 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 + @clientName("CopyId") + `x-ms-copy-id`: string; +} + +/** The seal blob parameter. */ +model SealBlobParameter { + /** Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer. */ + @header + @clientName("SealBlob") + `x-ms-seal-blob`?: boolean; +} + +/** The source if unmodified since parameter. */ +model SourceIfUnmodifiedSinceParameter { + /** Specify this header value to operate only on a blob if it has not been modified since the specified date/time. */ + @header + @clientName("sourceIfUnmodifiedSince") + @encode("date-time-rfc1123") + `x-ms-source-if-unmodified-since`?: utcDateTime; +} + +/** The rehydrate priority parameter. */ +model RehydratePriorityParameter { + /** Optional: Indicates the priority with which to rehydrate an archived blob. */ + @clientName("rehydratePriority") + @header + `x-ms-rehydrate-priority`?: RehydratePriority; +} + +/** The snapshot response header. */ +model SnapshotResponseHeader { + /** Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot. */ + @header + @clientName("Snapshot") + `x-ms-snapshot`: string; +} + +/** The lease time response header. */ +model LeaseTimeResponseHeader { + /** Approximate time remaining in the lease period, in seconds. */ + @header + @clientName("LeaseTime") + `x-ms-lease-time`: int32; +} + +/** The lease break period parameter. */ +model 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. */ + @clientName("breakPeriod") + @header `x-ms-lease-break-period`?: int32; +} + +/** The lease ID required parameter. */ +model 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. */ + @clientName("leaseId") + @header `x-ms-lease-id`: string; +} + +/** The lease ID response header. */ +model LeaseIdResponseHeader { + /** Uniquely identifies a blobs' lease */ + @header + @clientName("LeaseId") + `x-ms-lease-id`: string; +} + +/** The encryption scope response header. */ +model 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 */ + @clientName("EncryptionScope") + @header `x-ms-encryption-scope`: string; +} + +/** The encryption key SHA256 response header. */ +model 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. */ + @clientName("EncryptionKeySha256") + @header `x-ms-encryption-key-sha256`: string; +} + +/** The is server encrypted response header. */ +model 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. */ + @header + @clientName("isServerEncrypted") + `x-ms-request-server-encrypted`?: boolean; +} + + +// TODO: Collapose Legal Hold? +/** The legal hold response header. */ +model LegalHoldResponseHeader { + /** Specifies the legal hold status to set on the blob. */ + @clientName("legalHold") + @header `x-ms-legal-hold`: boolean; +} + +/** The legal hold required parameter. */ +model LegalHoldRequiredParameter { + /** Required. Specifies the legal hold status to set on the blob. */ + @clientName("legalHold") + @header `x-ms-legal-hold`: boolean; +} + +/** The immutability policy mode response header. */ +model ImmutabilityPolicyModeResponseHeader { + /** Indicates the immutability policy mode of the blob. */ + @clientName("ImmutabilityPolicyMode") + @header `x-ms-immutability-policy-mode`: BlobImmutabilityPolicyMode; +} + +/** The immutability policy expiration response header. */ +model ImmutabilityPolicyExpiryResponseHeader { + /** Indicates the time the immutability policy will expire. */ + @encode("date-time-rfc1123") + @clientName("ImmutabilityPolicyExpiry") + @header `x-ms-immutability-policy-until-date`: utcDateTime; +} + +/** The blob sequence number response header. */ +model BlobSequenceNumberResponseHeader { + /** The current sequence number for a page blob. This header is not returned for block blobs or append blobs. */ + @clientName("BlobSequenceNumber") + @header `x-ms-blob-sequence-number`: int64; +} + +/** The blob expiration time parameter. */ +model BlobExpiryTimeParameter { + /** The time to set the blob to expiry. */ + @clientName("ExpiresOn") + @header `x-ms-expiry-time`: string; +} + +/** The blob expiration options parameter. */ +model BlobExpiryOptionsParameter { + /** Required. Indicates mode of the expiry time */ + @clientName("ExpiryOptions") + @header `x-ms-expiry-option`: BlobExpiryOptions; +} + +/** The blob expiration options. */ +enum BlobExpiryOptions { + /** Never expire. */ + NeverExpire, + /** Relative to creation time. */ + RelativeToCreation, + /** Relative to now. */ + RelativeToNow, + /** Absolute time. */ + Absolute +} + +/** The Content-Language response header. */ +model ContentLanguageResponseHeader { + /** This header returns the value that was specified for the Content-Language request header. */ + @header `Content-Language`: string; +} + +/** The Content-Disposition response header. */ +model 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`: string; +} + +/** The Cache-Control response header. */ +model CacheControlResponseHeader { + /** This header is returned if it was previously specified for the blob. */ + @header `Cache-Control`: string; +} + +/** The Content-Encoding response header. */ +model ContentEncodingResponseParameter { + /** This header returns the value that was specified for the Content-Encoding request header */ + @header `Content-Encoding`: string; +} + +/** The Content-Range response header. */ +model 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`: string; +} + +/** The Content-MD5 response header. */ +model 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`: string; +} + +/** The Content-Type response header. */ +model ContentTypeResponseHeader { + /** The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID */ + @header `Content-Type`: string; +} + +/** The Content-Length response header. */ +model ContentLengthResponseHeader { + /** The number of bytes present in the response body. */ + @header `Content-Length`: int64; +} + +/** The version ID response header. */ +model 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. */ + @clientName("VersionId") + @header `x-ms-version-id`: string; +} + +/** The version response header. */ +model VersionResponseHeader { + /** 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. */ + @clientName("Version") + @header `x-ms-version`: string; +} + +/** The creation time response header. */ +model CreationTimeResponseHeader { + /** Returns the date and time the blob was created. */ + @encode("date-time-rfc1123") + @clientName("CreationTime") + @header `x-ms-creation-time`: utcDateTime; +} + +/** The last modified response header */ +model LastModifiedResponseHeader { + /** The date/time that the container was last modified. */ + @encode("date-time-rfc1123") + @header `Last-Modified`: utcDateTime; +} + +/** The request ID response header. */ +model RequestIdResponseHeader { + /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */ + @clientName("RequestId") + @header `x-ms-request-id`: string; +} + +/** The client request ID response header. */ +model ClientRequestIdResponseHeader { + /** If a client request id header is sent in the request, this header will be present in the response with the same value. */ + @clientName("ClientRequestId") + @header `x-ms-client-request-id`?: string; +} + +/** The Date response header */ +model DateResponseHeader { + /** UTC date/time value generated by the service that indicates the time at which the response was initiated */ + @encode("date-time-rfc1123") + @header Date: utcDateTime; +} + +/** The ETag response header */ +model ETagResponseHeader { + /** The ETag contains a value that you can use to perform operations conditionally. */ + @header ETag: string; +} + +/** The copy source tags header parameter. */ +model CopySourceTagsParameter { + /** Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags. */ + @clientName("copySourceTags") + @header `x-ms-copy-source-tags`?: string; +} + +/** The blob copy source tags types. */ +enum BlobCopySourceTags { + /** The replace blob source tags option. */ + REPLACE, + /** The copy blob source tags option. */ + COPY +} + +/** The copy source authorization header parameter */ +model CopySourceAuthorizationParameter { + /** Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source. */ + @header + @clientName("copySourceAuthorization") + `x-ms-copy-source-authorization`?: string; + +} + +/** The copy source blob properties parameter. */ +model CopySourceBlobPropertiesParameter { + /** Optional, default is true. Indicates if properties from the source blob should be copied. */ + @header + @clientName("copySourceBlobProperties") + `x-ms-copy-source-blob-properties`?: boolean; +} + +/** The copy source header parameter. */ +model 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 + @clientName("copySource") + `x-ms-copy-source`: string; +} + +/** The source content MD5 header parameter. */ +model SourceContentMD5Parameter { + /** Specify the md5 calculated for the range of bytes that must be read from the copy source. */ + @header + @clientName("sourceContentMD5") + `x-ms-source-content-md5`?: string; +} + +/** The source if tags parameter. */ +model SourceIfTagsParameter { + /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ + @header + @clientName("sourceIfTags") + `x-ms-source-if-tags`?: string; +} + +/** The source if match parameter. */ +model SourceIfMatchParameter { + /** Specify an ETag value to operate only on blobs with a matching value. */ + @header + @clientName("sourceIfMatch") + `x-ms-source-if-match`?: string; +} + +@doc("The source if none match parameter.") +model SourceIfNoneMatchParameter { + @doc("Specify this header value to operate only on a blob if it has been modified since the specified date/time.") + @header + @clientName("sourceIfNoneMatch") + `x-ms-source-if-none-match`?: string; +} + +@doc("The source if modified since parameter.") +model SourceIfModifiedSinceParameter { + @doc("Specify this header value to operate only on a blob if it has been modified since the specified date/time.") + @header + @clientName("sourceIfModifiedSince") + @encode("date-time-rfc1123") + `x-ms-source-if-modified-since`?: utcDateTime; +} + +/** The content CRC64 parameter. */ +model ContentCrc64Parameter { + /** Specify the transactional crc64 for the body, to be validated by the service. */ + @clientName("transactionalContentCrc64") + @header `x-ms-content-crc64`?: string; +} + +@doc("The access tier optional parameter.") +model AccessTierOptionalParameter { + @doc("Optional. The tier to be set on the blob.") + @clientName("tier") + @header + `x-ms-access-tier`?: AccessTier; +} + +@doc("The content MD5 parameter.") +model ContentMD5Parameter { + @doc("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 + @clientName("transactionalContentMD5") + `Content-MD5`?: string; +} + @doc("The legal hold optional parameter.") model LegalHoldOptionalParameter { @doc("Specified if a legal hold should be set on the blob.") @@ -117,7 +538,7 @@ model BlobContentEncodingParameter { } @doc("The blob content type parameter.") -model BlobContentTypeParamter { +model BlobContentTypeParameter { @doc("Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.") @header @clientName("blobContentType") diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 4303025e7359..3fee7fcf5c8d 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -17,33 +17,28 @@ using Azure.ClientGenerator.Core; @route("/?restype=service&comp=properties") interface BlobServiceProperties { - @doc(""" + /** Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. - """) + */ @put @operationId("Service_SetProperties") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" setServiceProperties( - @doc("The storage service properties that specifies the analytics and CORS rules to set on the Blob service.") + /** The storage service properties that specifies the analytics and CORS rules to set on the Blob service. */ @body body: StorageServiceProperties; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; ): { @statusCode statusCode: 202; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @clientName("ClientRequestId") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @clientName("RequestId") - @header `x-ms-request-id`: string; - @doc("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.") - @clientName("Version") - @header `x-ms-version`: string; + + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; } | StorageError; - @doc("Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.") + /** Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. */ @operationId("Service_GetProperties") @get #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -54,21 +49,17 @@ interface BlobServiceProperties { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: StorageServiceProperties; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; + @body body: StorageServiceProperties; // TODO: XML + + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; } | StorageError; } @route("/?restype=service&comp=stats") interface BlobServiceStatistics { - @doc(""" - 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. - """) + /** 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. */ @operationId("Service_GetStatistics") @get #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -79,22 +70,17 @@ interface BlobServiceStatistics { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: StorageServiceStats; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + @body body: StorageServiceStats; // TODO: XML + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/?comp=list") interface BlobServiceListContainerSegments { - @doc("The List Containers Segment operation returns a list of the containers under the specified account") + /** The List Containers Segment operation returns a list of the containers under the specified account */ @get @operationId("Service_ListContainersSegment") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -108,45 +94,40 @@ interface BlobServiceListContainerSegments { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: ListContainersSegmentResponse; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; + @body body: ListContainersSegmentResponse; // TODO: XML + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; } | StorageError; } @route("/?restype=service&comp=userdelegationkey") interface BlobServiceUserDelegationKey { - @doc("The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS.") + /** The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS. */ @post @operationId("Service_GetUserDelegationKey") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" getUserDelegationKey( - @doc("The user delegation key info.") + /** The user delegation key info. */ @body body: KeyInfo; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @doc("The user delegation key.") - @body body: UserDelegationKey; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; + /** The user delegation key. */ + @body body: UserDelegationKey; // TODO: XML + + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; } | StorageError; } @route("/?restype=account&comp=properties") interface BlobServiceAccountProperties { - @doc("Returns the sku name and account kind.") + /** Returns the sku name and account kind. */ @get @operationId("Service_GetAccountInfo") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -155,36 +136,26 @@ interface BlobServiceAccountProperties { ...ApiVersionParameter; ): { @statusCode statusCode: 200; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; - @doc("Identifies the sku name of the account.") - @clientName("SkuName") - @header `x-ms-sku-name`: SkuName; - @doc("Identifies the account kind.") - @clientName("AccountKind") - @header `x-ms-account-kind`: AccountKind; - @doc("Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled.") - @clientName("IsHierarchicalNamespaceEnabled") - @header `x-ms-is-hns-enabled`: boolean; + + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...SkuNameResponseHeader; + ...AccountKindResponseHeader; + ...IsHierarchicalNamespaceEnabledResponseHeader; } | StorageError; } @route("/?comp=batch") interface BlobServiceBatch { - @doc("The Batch operation allows multiple API calls to be embedded into a single HTTP request.") + /** The Batch operation allows multiple API calls to be embedded into a single HTTP request. */ @post @operationId("Service_SubmitBatch") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" submitBatch( - @doc("The batch request content") + /** The batch request content */ @body body: bytes; // TODO: Investigate this type ...ContentLengthHeader; ...MultipartContentType; @@ -193,18 +164,16 @@ interface BlobServiceBatch { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") - @header `Content-Type`: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; + + ...ContentTypeResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; } | StorageError; } @route("/?comp=blobs") interface FilterBlobsService { - @doc("The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression.") + /** The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression. */ @get @operationId("Service_FilterBlobs") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -220,21 +189,16 @@ interface FilterBlobsService { ): { @statusCode statusCode: 200; @body body: FilterBlobSegment; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?restype=container") interface BlobServiceContainer { - @doc("Creates a new container under the specified account. If the container with the same name already exists, the operation fails.") + /** Creates a new container under the specified account. If the container with the same name already exists, the operation fails. */ @put @operationId("Container_Create") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -250,23 +214,15 @@ interface BlobServiceContainer { ...ClientRequestIdParameter; ): { @statusCode statusCode: 201; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; - @doc("returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs") + /** returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs */ @get @operationId("Container_GetProperties") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -279,50 +235,43 @@ interface BlobServiceContainer { ...LeaseIdOptional; ): { @statusCode statusCode: 200; + // TODO: x-ms-meta headers - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; - @doc("When a blob is leased, specifies whether the lease is of infinite or fixed duration.") + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ @clientName("LeaseDuration") @header `x-ms-lease-duration`: LeaseDuration; - @doc("Lease state of the container.") + /** Lease state of the container. */ @clientName("LeaseState") @header `x-ms-lease-state`: LeaseState; - @doc("The lease status of the container.") + /** The lease status of the container. */ @clientName("LeaseStatus") @header `x-ms-lease-status`: LeaseStatus; - @doc("The public access setting for the container.") + /** The public access setting for the container. */ @header `x-ms-blob-public-access`: PublicAccessType; - @doc("Indicates whether the container has an immutability policy set on it.") + /** Indicates whether the container has an immutability policy set on it. */ @clientName("HasImmutabilityPolicy") @header `x-ms-has-immutability-policy`: boolean; - @doc("Indicates whether the container has a legal hold.") + /** Indicates whether the container has a legal hold. */ @clientName("HasLegalHold") @header `x-ms-has-legal-hold`: boolean; - @doc("The default encryption scope for the container.") + /** The default encryption scope for the container. */ @clientName("DefaultEncryptionScope") @header `x-ms-default-encryption-scope`: string; - @doc("Indicates whether the container's default encryption scope can be overriden.") + /** Indicates whether the container's default encryption scope can be overriden. */ @clientName("DenyEncryptionScopeOverride") @header `x-ms-deny-encryption-scope-override`: boolean; - @doc("Indicates whether version level worm is enabled on a container.") + /** Indicates whether version level worm is enabled on a container */ @clientName("IsImmutableStorageWithVersioningEnabled") @header `x-ms-immutable-storage-with-versioning-enabled`: boolean; } | StorageError; - @doc("operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection") + /** operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection */ @delete @operationId("Container_Delete") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -337,21 +286,17 @@ interface BlobServiceContainer { ...IfUnmodifiedSince; ): { @statusCode statusCode: 202; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?restype=container&comp=metadata") interface BlobServiceContainerMetadata { - @doc("operation sets one or more user-defined name-value pairs for the specified container.") + /** operation sets one or more user-defined name-value pairs for the specified container. */ @put @operationId("Container_SetMetadata") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -366,26 +311,18 @@ interface BlobServiceContainerMetadata { ...LeaseIdOptional; ): { @statusCode statusCode: 200; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?restype=container&comp=acl") interface BlobServiceContainerAccessPolicy { - @doc("gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly.") + /** gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly. */ @get @operationId("Container_GetAccessPolicy") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -398,26 +335,19 @@ interface BlobServiceContainerAccessPolicy { ...LeaseIdOptional; ): { @statusCode statusCode: 200; - @body body: SignedIdentifiers; - @doc("Indicated whether data in the container may be accessed publicly and the level of access") + @body body: SignedIdentifiers; // TODO: XML + + /** Indicated whether data in the container may be accessed publicly and the level of access */ @header `x-ms-blob-public-access`: PublicAccessType; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; - @doc("sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly.") + /** sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly. */ @put @operationId("Container_SetAccessPolicy") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -431,30 +361,23 @@ interface BlobServiceContainerAccessPolicy { ...IfModifiedSince; ...IfUnmodifiedSince; ...LeaseIdOptional; - @doc("The signed identifiers.") + /** The signed identifiers. */ @body body: SignedIdentifiers; ): { @statusCode statusCode: 200; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?restype=container&comp=undelete") interface ContainerRestoreService { - @doc("Restores a previously-deleted container.") + /** Restores a previously-deleted container. */ @put @operationId("Container_Undelete") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -468,21 +391,17 @@ interface ContainerRestoreService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 201; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?restype=container&comp=rename") interface ContainerRenameService { - @doc("Renames an existing container.") + /** Renames an existing container. */ @put @operationId("Container_Rename") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -496,27 +415,23 @@ interface ContainerRenameService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?restype=container&comp=batch") interface ContainerBatchService { - @doc("The Batch operation allows multiple API calls to be embedded into a single HTTP request.") + /** The Batch operation allows multiple API calls to be embedded into a single HTTP request. */ @post @operationId("Container_SubmitBatch") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" submitBatch( - @doc("The batch request content") + /** The batch request content */ @body body: bytes; // TODO: Investigate this type ...ContainerNameParameter; ...ContentLengthHeader; @@ -526,18 +441,15 @@ interface ContainerBatchService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 202; - @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") - @header `Content-Type`: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; + ...ContentTypeResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; } | StorageError; } @route("/{containerName}?restype=container&comp=blobs") interface BlobListService { - @doc("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.") + /** 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. */ @get @operationId("Container_FilterBlobs") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -553,22 +465,18 @@ interface BlobListService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: FilterBlobSegment; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + @body body: FilterBlobSegment; // TODO: XML + + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?comp=lease&restype=container&acquire") interface ContainerLeaseService { - @doc("[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") + /** [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 */ @put @operationId("Container_AcquireLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -584,28 +492,21 @@ interface ContainerLeaseService { ...IfUnmodifiedSince; ): { @statusCode statusCode: 201; - @doc("The lease ID specified in the request or a generated one if not specified.") + + /** The lease ID specified in the request or a generated one if not specified. */ @header `x-ms-lease-id`: string; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?comp=lease&restype=container&release") interface ContainerReleaseLeaseService { - @doc("[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") + /** [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 */ @put @operationId("Container_ReleaseLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -620,26 +521,19 @@ interface ContainerReleaseLeaseService { ...IfUnmodifiedSince; ): { @statusCode statusCode: 200; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?comp=lease&restype=container&renew") interface ContainerRenewLeaseService { - @doc("[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") + /** [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 */ @put @operationId("Container_RenewLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -654,28 +548,20 @@ interface ContainerRenewLeaseService { ...IfUnmodifiedSince; ): { @statusCode statusCode: 200; - @doc("The lease ID specified in the request or a generated one if not specified.") + /** The lease ID specified in the request or a generated one if not specified. */ @header `x-ms-lease-id`: string; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?comp=lease&restype=container&break") interface ConatinerBreakLeaseService { - @doc("[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") + /** [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 */ @put @operationId("Container_BreakLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -690,26 +576,20 @@ interface ConatinerBreakLeaseService { ...LeaseBreakPeriod; ): { @statusCode statusCode: 202; - @doc("The lease time remaining on the container.") + /** The lease time remaining on the container. */ @header `x-ms-lease-time`: int32; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("The lease ID specified in the request or a generated one if not specified.") + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + /** The lease ID specified in the request or a generated one if not specified. */ @header `x-ms-lease-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?comp=lease&restype=container&change") interface ContainerChangeLeaseService { - @doc("[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") + /** [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 */ @put @operationId("Container_ChangeLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -725,27 +605,21 @@ interface ContainerChangeLeaseService { ...IfUnmodifiedSince; ): { @statusCode statusCode: 200; - @doc("The lease ID specified in the request or a generated one if not specified.") + /** The lease ID specified in the request or a generated one if not specified. */ @header `x-ms-lease-id`: string; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("The lease time remaining on the container.") + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + /** The lease time remaining on the container. */ @header `x-ms-lease-time`: int64; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @header Date: utcDateTime; + ...ClientRequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?restype=container&comp=list&flat") interface ContainerListBlobsService { - @doc("[Update] The List Blobs operation returns a list of the blobs under the specified container") + /** [Update] The List Blobs operation returns a list of the blobs under the specified container */ @get @operationId("Container_ListBlobFlatSegment") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -761,22 +635,17 @@ interface ContainerListBlobsService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: ListBlobsFlatSegmentResponse; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + @body body: ListBlobsFlatSegmentResponse; // TODO: XML + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?restype=container&comp=list&hierarchy") interface ContainerListBlobsHierarchyService { - @doc("[Update] The List Blobs operation returns a list of the blobs under the specified container") + /** [Update] The List Blobs operation returns a list of the blobs under the specified container */ @get @operationId("Container_ListBlobHierarchySegment") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -793,22 +662,18 @@ interface ContainerListBlobsHierarchyService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: ListBlobsHierarchySegmentResponse; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @header `x-ms-request-id`: string; - @doc("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.") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + @body body: ListBlobsHierarchySegmentResponse; // TODO: XML + + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}?restype=account&comp=properties") interface ContainerAccountInfoService { - @doc("Returns the sku name and account kind ") + /** Returns the sku name and account kind */ @get @operationId("Container_GetAccountInfo") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -817,22 +682,15 @@ interface ContainerAccountInfoService { ...ApiVersionParameter; ): { @statusCode statusCode: 200; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @clientName("ClientRequestId") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @clientName("RequestId") - @header `x-ms-request-id`: string; - @doc("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.") - @clientName("Version") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; - @doc("Identifies the sku name of the account.") + + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + /** Identifies the sku name of the account. */ @clientName("SkuName") @header `x-ms-sku-name`: SkuName; - @doc("Identifies the account kind.") + /** Identifies the account kind. */ @clientName("AccountKind") @header `x-ms-account-kind`: AccountKind; } | StorageError; @@ -840,7 +698,7 @@ interface ContainerAccountInfoService { @route("/{containerName}/{blob}") interface BlobService { - @doc("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.") + /** 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. */ @get @operationId("Blob_Download") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -868,226 +726,168 @@ interface BlobService { ): { @statusCode statusCode: 200; @body body: bytes; + // TODO: x-ms-meta headers // TODO: x-ms-or headers - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("Returns the date and time the blob was created.") - @encode("date-time-rfc1123") - @clientName("CreationTime") - @header `x-ms-creation-time`: utcDateTime; - @doc("Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication.") + ...LastModifiedResponseHeader; + ...CreationTimeResponseHeader; + /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ @clientName("ObjectReplicationPolicyId") @header `x-ms-or-policy-id`: string; - @doc("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`: string; - @doc("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`: string; - @doc("This header returns the value that was specified for the Content-Encoding request header") - @header `Content-Encoding`: string; - @doc("This header is returned if it was previously specified for the blob.") - @header `Cache-Control`: string; - @doc("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`: string; - @doc("This header returns the value that was specified for the Content-Language request header.") - @header `Content-Language`: string; - @doc("The current sequence number for a page blob. This header is not returned for block blobs or append blobs") - @clientName("BlobSequenceNumber") - @header `x-ms-blob-sequence-number`: int64; - @doc("The type of the blob.") + ...ContentRangeResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + /** The type of the blob. */ @clientName("BlobType") @header `x-ms-blob-type`: BlobType; - @doc("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.") + /** 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. */ @clientName("CopyCompletionTime") @encode("date-time-rfc1123") @header `x-ms-copy-completion-time`: utcDateTime; - @doc("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") + /** 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 */ @clientName("CopyStatusDescription") @header `x-ms-copy-status-description`: string; - @doc("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.") - @clientName("CopyId") - @header `x-ms-copy-id`: string; - @doc("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") + ...CopyIdResponseHeader; + /** 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 */ @clientName("CopyProgress") @header `x-ms-copy-progress`: string; - @doc("State of the copy operation identified by x-ms-copy-id.") - @clientName("CopyStatus") - @header `x-ms-copy-status`: CopyStatus; - @doc("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.") + ...CopyStatusResponseHeader; + /** 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. */ @clientName("CopySource") @header `x-ms-copy-source`: string; - @doc("When a blob is leased, specifies whether the lease is of infinite or fixed duration.") + /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ @clientName("LeaseDuration") @header `x-ms-lease-duration`: LeaseDuration; - @doc("Lease state of the blob.") + /** Lease state of the blob. */ @clientName("LeaseState") @header `x-ms-lease-state`: LeaseState; - @doc("The lease status of the blob.") + /** The lease status of the blob. */ @clientName("LeaseStatus") @header `x-ms-lease-status`: LeaseStatus; - @doc("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.") - @clientName("Version") - @header `x-ms-version`: string; - @doc("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.") - @clientName("VersionId") - @header `x-ms-version-id`: string; - @doc("The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header.") + ...VersionResponseHeader; + ...VersionIdResponseHeader; + /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ @clientName("IsCurrentVersion") @header `x-ms-is-current-version`: boolean; - @doc("Indicates that the service supports requests for partial blob content.") + /** Indicates that the service supports requests for partial blob content. */ @header `Accept-Ranges`: string; - @doc("The number of committed blocks present in the blob. This header is returned only for append blobs.") + /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ @clientName("BlobCommittedBlockCount") @header `x-ms-blob-committed-block-count`: int32; - @doc("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).") - @clientName("IsServerEncrypted") - @header `x-ms-server-encrypted`: boolean; - @doc("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.") - @clientName("EncryptionKeySha256") - @header `x-ms-encryption-key-sha256`: string; - @doc("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") - @clientName("EncryptionScope") - @header `x-ms-encryption-scope`: string; - @doc("The number of tags associated with the blob") + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + /** The number of tags associated with the blob */ @clientName("TagCount") @header `x-ms-tag-count`: int64; - @doc("If this blob has been sealed") + /** If this blob has been sealed */ @clientName("IsSealed") @header `x-ms-blob-sealed`: boolean; - @doc("UTC date/time value generated by the service that indicates the time at which the blob was last read or written to") + /** UTC date/time value generated by the service that indicates the time at which the blob was last read or written to */ @clientName("LastAccessed") @encode("date-time-rfc1123") @header `x-ms-last-access-time`: utcDateTime; - @doc("UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire.") + /** UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. */ @clientName("ImmutabilityPolicyExpiresOn") @encode("date-time-rfc1123") @header `x-ms-immutability-policy-until-date`: utcDateTime; - @doc("Indicates immutability policy mode.") + /** Indicates immutability policy mode. */ @clientName("ImmutabilityPolicyMode") @header `x-ms-immutability-policy-mode`: BlobImmutabilityPolicyMode; - @doc("Indicates if a legal hold is present on the blob.") + /** Indicates if a legal hold is present on the blob. */ @clientName("LegalHold") @header `x-ms-legal-hold`: boolean; - @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") - @header `Content-Type`: string; - @doc("The number of bytes present in the response body.") - @header `Content-Length`: int64; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; + ...ContentTypeResponseHeader; + ...ContentLengthResponseHeader; + ...ETagResponseHeader; } | { @statusCode statusCode: 206; @body body: bytes; + // TODO: x-ms-meta headers // TODO: x-ms-or headers - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("Returns the date and time the blob was created.") - @encode("date-time-rfc1123") - @clientName("CreationTime") - @header `x-ms-creation-time`: utcDateTime; - @doc("Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication.") + ...LastModifiedResponseHeader; + ...CreationTimeResponseHeader; + /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ @clientName("ObjectReplicationPolicyId") @header `x-ms-or-policy-id`: string; - @doc("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`: string; - @doc("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`: string; - @doc("This header returns the value that was specified for the Content-Encoding request header") - @header `Content-Encoding`: string; - @doc("This header is returned if it was previously specified for the blob.") - @header `Cache-Control`: string; - @doc("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`: string; - @doc("This header returns the value that was specified for the Content-Language request header.") - @header `Content-Language`: string; - @doc("The current sequence number for a page blob. This header is not returned for block blobs or append blobs") - @clientName("BlobSequenceNumber") - @header `x-ms-blob-sequence-number`: int64; - @doc("The type of the blob.") + ...ContentRangeResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + /** The type of the blob. */ @clientName("BlobType") @header `x-ms-blob-type`: BlobType; - @doc("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.") + /** 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. */ @clientName("CopyCompletionTime") @encode("date-time-rfc1123") @header `x-ms-copy-completion-time`: utcDateTime; - @doc("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") + /** 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 */ @clientName("CopyStatusDescription") @header `x-ms-copy-status-description`: string; - @doc("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.") - @clientName("CopyId") - @header `x-ms-copy-id`: string; - @doc("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") + ...CopyIdResponseHeader; + /** 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 */ @clientName("CopyProgress") @header `x-ms-copy-progress`: string; - @doc("State of the copy operation identified by x-ms-copy-id.") - @clientName("CopyStatus") - @header `x-ms-copy-status`: CopyStatus; - @doc("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.") + ...CopyStatusResponseHeader; + /** 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. */ @clientName("CopySource") @header `x-ms-copy-source`: string; - @doc("When a blob is leased, specifies whether the lease is of infinite or fixed duration.") + /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ @clientName("LeaseDuration") @header `x-ms-lease-duration`: LeaseDuration; - @doc("Lease state of the blob.") + /** Lease state of the blob. */ @clientName("LeaseState") @header `x-ms-lease-state`: LeaseState; - @doc("The lease status of the blob.") + /** The lease status of the blob. */ @clientName("LeaseStatus") @header `x-ms-lease-status`: LeaseStatus; - @doc("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.") - @clientName("Version") - @header `x-ms-version`: string; - @doc("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.") - @clientName("VersionId") - @header `x-ms-version-id`: string; - @doc("The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header.") + ...VersionResponseHeader; + ...VersionIdResponseHeader; + /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ @clientName("IsCurrentVersion") @header `x-ms-is-current-version`: boolean; - @doc("Indicates that the service supports requests for partial blob content.") + /** Indicates that the service supports requests for partial blob content. */ @header `Accept-Ranges`: string; - @doc("The number of committed blocks present in the blob. This header is returned only for append blobs.") + /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ @clientName("BlobCommittedBlockCount") @header `x-ms-blob-committed-block-count`: int32; - @doc("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).") - @clientName("IsServerEncrypted") - @header `x-ms-server-encrypted`: boolean; - @doc("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.") - @clientName("EncryptionKeySha256") - @header `x-ms-encryption-key-sha256`: string; - @doc("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") - @clientName("EncryptionScope") - @header `x-ms-encryption-scope`: string; - @doc("The number of tags associated with the blob") + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + /** The number of tags associated with the blob */ @clientName("TagCount") @header `x-ms-tag-count`: int64; - @doc("If this blob has been sealed") + /** If this blob has been sealed */ @clientName("IsSealed") @header `x-ms-blob-sealed`: boolean; - @doc("UTC date/time value generated by the service that indicates the time at which the blob was last read or written to") + /** UTC date/time value generated by the service that indicates the time at which the blob was last read or written to */ @clientName("LastAccessed") @encode("date-time-rfc1123") @header `x-ms-last-access-time`: utcDateTime; - @doc("UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire.") + /** UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. */ @clientName("ImmutabilityPolicyExpiresOn") @encode("date-time-rfc1123") @header `x-ms-immutability-policy-until-date`: utcDateTime; - @doc("Indicates immutability policy mode.") + /** Indicates immutability policy mode. */ @clientName("ImmutabilityPolicyMode") @header `x-ms-immutability-policy-mode`: BlobImmutabilityPolicyMode; - @doc("Indicates if a legal hold is present on the blob.") + /** Indicates if a legal hold is present on the blob. */ @clientName("LegalHold") @header `x-ms-legal-hold`: boolean; - @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") - @header `Content-Type`: string; - @doc("The number of bytes present in the response body.") - @header `Content-Length`: int64; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; + ...ContentTypeResponseHeader; + ...ContentLengthResponseHeader; + ...ETagResponseHeader; } | StorageError; - @doc("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.") + /** 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. */ @head @operationId("Blob_GetProperties") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -1113,148 +913,113 @@ interface BlobService { // TODO: x-ms-meta headers // TODO: x-ms-or headers - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("Returns the date and time the blob was created.") - @encode("date-time-rfc1123") - @clientName("CreationTime") - @header `x-ms-creation-time`: utcDateTime; - @doc("Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication.") + ...LastModifiedResponseHeader; + ...CreationTimeResponseHeader; + /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ @clientName("ObjectReplicationPolicyId") @header `x-ms-or-policy-id`: string; - @doc("The type of the blob.") + /** The type of the blob. */ @clientName("BlobType") @header `x-ms-blob-type`: BlobType; - @doc("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.") + /** 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. */ @clientName("CopyCompletionTime") @encode("date-time-rfc1123") @header `x-ms-copy-completion-time`: utcDateTime; - @doc("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") + /** 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 */ @clientName("CopyStatusDescription") @header `x-ms-copy-status-description`: string; - @doc("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.") - @clientName("CopyId") - @header `x-ms-copy-id`: string; - @doc("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") + ...CopyIdResponseHeader; + /** 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 */ @clientName("CopyProgress") @header `x-ms-copy-progress`: string; - @doc("State of the copy operation identified by x-ms-copy-id.") - @clientName("CopyStatus") - @header `x-ms-copy-status`: CopyStatus; - @doc("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.") + ...CopyStatusResponseHeader; + /** 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. */ @clientName("CopySource") @header `x-ms-copy-source`: string; - @doc("Included if the blob is incremental copy blob.") + /** Included if the blob is incremental copy blob. */ @clientName("IsIncrementalCopy") @header `x-ms-incremental-copy`: boolean; - @doc("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.") + /** 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. */ @clientName("DestinationSnapshot") @header `x-ms-copy-destination-snapshot`: string; - @doc("When a blob is leased, specifies whether the lease is of infinite or fixed duration.") + /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ @clientName("LeaseDuration") @header `x-ms-lease-duration`: LeaseDuration; - @doc("Lease state of the container.") + /** Lease state of the container. */ @clientName("LeaseState") @header `x-ms-lease-state`: LeaseState; - @doc("The lease status of the container.") + /** The lease status of the container. */ @clientName("LeaseStatus") @header `x-ms-lease-status`: LeaseStatus; - @doc("The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID") - @header `Content-Type`: string; - @doc("The number of bytes present in the response body.") - @header `Content-Length`: int64; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("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`: string; - @doc("This header returns the value that was specified for the Content-Encoding request header") - @header `Content-Encoding`: string; - @doc("This header is returned if it was previously specified for the blob.") - @header `Cache-Control`: string; - @doc("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`: string; - @doc("This header returns the value that was specified for the Content-Language request header.") - @header `Content-Language`: string; - @doc("The current sequence number for a page blob. This header is not returned for block blobs or append blobs") - @clientName("BlobSequenceNumber") - @header `x-ms-blob-sequence-number`: int64; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @clientName("ClientRequestId") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @clientName("RequestId") - @header `x-ms-request-id`: string; - @doc("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.") - @clientName("Version") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; - @doc("Indicates that the service supports requests for partial blob content.") + ...ContentTypeResponseHeader; + ...ContentLengthResponseHeader; + ...ETagResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + /** Indicates that the service supports requests for partial blob content. */ @header `Accept-Ranges`: string; - @doc("The number of committed blocks present in the blob. This header is returned only for append blobs.") + /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ @clientName("BlobCommittedBlockCount") @header `x-ms-blob-committed-block-count`: int32; - @doc("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).") - @clientName("IsServerEncrypted") - @header `x-ms-server-encrypted`: boolean; - @doc("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.") - @clientName("EncryptionKeySha256") - @header `x-ms-encryption-key-sha256`: string; - @doc("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") - @clientName("EncryptionScope") - @header `x-ms-encryption-scope`: string; - @doc("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.") + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + /** 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. */ @clientName("AccessTier") @header `x-ms-access-tier`: AccessTier; - @doc("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.") + /** 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. */ @clientName("AccessTierInferred") @header `x-ms-access-tier-inferred`: boolean; - @doc("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.") + /** 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. */ @clientName("ArchiveStatus") @header `x-ms-archive-status`: ArchiveStatus; - @doc("The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set.") + /** The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set. */ @encode("date-time-rfc1123") @clientName("AccessTierChangeTime") @header `x-ms-access-tier-change-time`: utcDateTime; - @doc("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.") - @clientName("VersionId") - @header `x-ms-version-id`: string; - @doc("The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header.") + ...VersionIdResponseHeader; + /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ @clientName("IsCurrentVersion") @header `x-ms-is-current-version`: boolean; - @doc("The number of tags associated with the blob") + /** The number of tags associated with the blob */ @clientName("TagCount") @header `x-ms-tag-count`: int64; - @doc("The time this blob will expire.") + /** The time this blob will expire. */ @clientName("ExpiresOn") @encode("date-time-rfc1123") @header `x-ms-expiry-time`: utcDateTime; - @doc("If this blob has been sealed") + /** If this blob has been sealed */ @clientName("IsSealed") @header `x-ms-blob-sealed`: boolean; - @doc("If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.") + /** If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard. */ @clientName("RehydratePriority") @header `x-ms-rehydrate-priority`: RehydratePriority; - @doc("UTC date/time value generated by the service that indicates the time at which the blob was last read or written to") + /** UTC date/time value generated by the service that indicates the time at which the blob was last read or written to */ @clientName("LastAccessed") @encode("date-time-rfc1123") @header `x-ms-last-access-time`: utcDateTime; - @doc("UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire.") + /** UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. */ @clientName("ImmutabilityPolicyExpiresOn") @encode("date-time-rfc1123") @header `x-ms-immutability-policy-until-date`: utcDateTime; - @doc("Indicates immutability policy mode.") + /** Indicates immutability policy mode. */ @clientName("ImmutabilityPolicyMode") @header `x-ms-immutability-policy-mode`: BlobImmutabilityPolicyMode; - @doc("Indicates if a legal hold is present on the blob.") + /** Indicates if a legal hold is present on the blob. */ @clientName("LegalHold") @header `x-ms-legal-hold`: boolean; } | StorageError; @delete - @doc("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).") + /** 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). */ @operationId("Blob_Delete") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @@ -1276,24 +1041,16 @@ interface BlobService { ...BlobDeleteTypeParameter; ): { @statusCode statusCode: 202; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @clientName("ClientRequestId") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @clientName("RequestId") - @header `x-ms-request-id`: string; - @doc("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.") - @clientName("Version") - @header `x-ms-version`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; } | StorageError; } @route("/{containerName}/{blob}?PageBlob") interface PageBlobService { - @doc("The Create operation creates a new page blob.") + /** The Create operation creates a new page blob. */ @put @operationId("PageBlob_Create") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -1305,7 +1062,7 @@ interface PageBlobService { ...TimeoutParameter; ...ContentLengthHeader; ...PremiumPageBlobAccessTierOptional; - ...BlobContentTypeParamter; + ...BlobContentTypeParameter; ...BlobContentEncodingParameter; ...BlobContentLanguageParameter; ...BlobContentMD5Parameter; @@ -1331,36 +1088,747 @@ interface PageBlobService { ): { @statusCode statusCode: 201; - @doc("The ETag contains a value that you can use to perform operations conditionally.") - @header ETag: string; - @doc("The date/time that the container was last modified.") - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; - @doc("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`: string; - @doc("If a client request id header is sent in the request, this header will be present in the response with the same value.") - @clientName("ClientRequestId") - @header `x-ms-client-request-id`?: string; - @doc("This header uniquely identifies the request that was made and can be used for troubleshooting the request.") - @clientName("RequestId") - @header `x-ms-request-id`: string; - @doc("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.") - @clientName("Version") - @header `x-ms-version`: string; - @doc("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.") - @clientName("VersionId") - @header `x-ms-version-id`: string; - @doc("UTC date/time value generated by the service that indicates the time at which the response was initiated") - @encode("date-time-rfc1123") - @header Date: utcDateTime; - @doc("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`: boolean; - @doc("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.") - @clientName("EncryptionKeySha256") - @header `x-ms-encryption-key-sha256`: string; - @doc("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") - @clientName("EncryptionScope") - @header `x-ms-encryption-scope`: string; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMD5ResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?AppendBlob") +interface AppendBlobService { + @put + /** The Create operation creates a new append blob. */ + @operationId("AppendBlob_Create") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + createAppendBlob( + // TODO: Metadata + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentLengthHeader; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMD5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptional; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + ): { + @statusCode statusCode: 201; + + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMD5ResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?BlockBlob") +interface BlockBlobService { + /** 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. */ + @put + @operationId("BlockBlob_Upload") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + uploadBlockBlob( + // TODO: Metadata + + ...ContainerNameParameter; + ...BlobNameParameter; + + // TODO: body + /** The bytes to upload to the block blob. */ + @body body: bytes; + + ...TimeoutParameter; + ...ContentMD5Parameter; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMD5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptional; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...AccessTierOptionalParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + ...ContentCrc64Parameter; + ): { + @statusCode statusCode: 201; + + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMD5ResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?BlockBlob&fromUrl") +interface BlockBlobFromUrlService{ + @put + /** 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. */ + @operationId("BlockBlob_PutBlobFromUrl") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + putBlockBlobFromUrl( + // TODO: Metadata + + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentMD5Parameter; + ...ContentLengthHeader; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMD5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptional; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...AccessTierOptionalParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...SourceIfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...SourceContentMD5Parameter; + ...BlobTagsHeaderParameter; + ...CopySourceParameter; + ...CopySourceBlobPropertiesParameter; + ...CopySourceAuthorizationParameter; + ...CopySourceTagsParameter; + ): { + @statusCode statusCode: 201; + + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMD5ResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=undelete") +interface BlobUndeleteService { + @post + /** "Undelete a blob that was previously soft deleted" */ + @operationId("Blob_Undelete") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + undeleteBlob( + ...ContainerNameParameter; + ...BlobNameParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=expiry") +interface BlobExpirationService { + @post + /** "Set the expiration time of a blob" */ + @operationId("Blob_SetExpiry") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + setBlobExpiry( + ...ContainerNameParameter; + ...BlobNameParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...BlobExpiryOptionsParameter; + ...BlobExpiryTimeParameter; + ): { + @statusCode statusCode: 200; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=properties&SetHTTPHeaders") +interface BlobSetHttpHeadersService { + /** The Set HTTP Headers operation sets system properties on the blob. */ + @put + @operationId("Blob_SetHTTPHeaders") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + setHttpHeaders( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...BlobCacheControlParameter; + ...BlobContentTypeParameter; + ...BlobContentMD5Parameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...LeaseIdOptional; + ...BlobContentDispositionParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=immutabilityPolicies") +interface BlobSetImmutabilityPolicyService { + /** "Set the immutability policy of a blob" */ + @put + @operationId("Blob_SetImmutabilityPolicy") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + setImmutabilityPolicy( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...IfUnmodifiedSince; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ): { + @statusCode statusCode: 200; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...ImmutabilityPolicyExpiryResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + } | StorageError; + + /** The Delete Immutability Policy operation deletes the immutability policy on the blob. */ + @delete + @operationId("Blob_DeleteImmutabilityPolicy") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + deleteImmutabilityPolicy( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=legalhold") +interface BlobLegalHoldService { + /** The Set Legal Hold operation sets a legal hold on the blob. */ + @put + @operationId("Blob_SetLegalHold") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + setLegalHold( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...LegalHoldRequiredParameter; + ): { + @statusCode statusCode: 200; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...LegalHoldResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=metadata") +interface BlobSetMetadataService { + /** The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs. */ + @put + @operationId("Blob_SetMetadata") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + setMetadata( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + // TODO: Metadata ...MetadataParameter; + ...LeaseIdOptional; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ): { + @statusCode statusCode: 200; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=lease&acquire") +interface BlobLeaseAcquireService { + /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ + @put + @operationId("Blob_AcquireLease") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + acquireLease( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...LeaseDurationParameter; + ...ProposedLeaseIdOptional; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ): { + @statusCode statusCode: 201; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...LeaseIdResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=lease&release") +interface BlobLeaseReleaseService { + /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ + @put + @operationId("Blob_ReleaseLease") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + releaseLease( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...LeaseIdRequiredParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ): { + @statusCode statusCode: 200; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=lease&renew") +interface BlobLeaseRenewService { + /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ + @put + @operationId("Blob_RenewLease") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + renewLease( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...LeaseIdRequiredParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ): { + @statusCode statusCode: 200; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...LeaseIdResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=lease&change") +interface BlobLeaseChangeService { + /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ + @put + @operationId("Blob_ChangeLease") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + changeLease( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...LeaseIdRequiredParameter; + ...ProposedLeaseIdOptional; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ): { + @statusCode statusCode: 200; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...LeaseIdResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=lease&break") +interface BlobLeaseBreakService { + /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ + @put + @operationId("Blob_BreakLease") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + breakLease( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...LeaseBreakPeriodParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ): { + @statusCode statusCode: 202; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...LeaseTimeResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=snapshot") +interface BlobSnapshotService { + /** The Create Snapshot operation creates a read-only snapshot of a blob */ + @put + @operationId("Blob_CreateSnapshot") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + createSnapshot( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + // TODO: ...MetadataParameter; + ...LeaseIdOptional; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 201; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...SnapshotResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=copy") +interface BlobCopyService { + /** The Start Copy From URL operation copies a blob or an internet resource to a new blob. */ + @put + @operationId("Blob_StartCopyFromURL") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + startCopyFromUrl( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + // TODO: ...MetadataParameter; + ...AccessTierOptionalParameter; + ...RehydratePriorityParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...SourceIfTagsParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...CopySourceParameter; + ...LeaseIdOptional; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...BlobTagsHeaderParameter; + ...SealBlobParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + ): { + @statusCode statusCode: 202; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...CopyIdResponseHeader; + ...CopyStatusResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=copy&sync") +interface BlobCopySyncService { + /** 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. */ + @put + @operationId("Blob_AbortCopyFromURL") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + copyFromUrl( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + // TODO: ...MetadataParameter; + ...AccessTierOptionalParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...CopySourceParameter; + ...LeaseIdOptional; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...SourceContentMD5Parameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + ...CopySourceAuthorizationParameter; + ...EncryptionScopeParameter; + ...CopySourceTagsParameter; + ): { + @statusCode statusCode: 202; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...CopyIdResponseHeader; + ...CopyStatusResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=copy©id") +interface BlobCopyAbortService { + /** The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination blob with zero length and full metadata. */ + @put + @operationId("Blob_AbortCopyFromURL") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + abortCopyFromUrl( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...CopyIdParameter; + ...LeaseIdOptional; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 204; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=tier") +interface BlobTierService { + /** 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. */ + @put + @operationId("Blob_SetTier") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + setTier( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...AccessTierRequiredParameter; + ...RehydratePriorityParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...LeaseIdOptional; + ...IfTagsParameter; + + ): { + @statusCode statusCode: 200; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + } | { + @statusCode statusCode: 202; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?restype=account&comp=properties") +interface BlobAccountPropertiesService { + /** Returns the sku name and account kind */ + @get + @operationId("Blob_GetAccountInfo") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + getAccountInfo( + ...ContainerNameParameter; + ...BlobNameParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...AccountKindResponseHeader; + ...SkuNameResponseHeader; } | StorageError; } From cd8cc7307b38c2222b7b9f0d15944de8739ec33c Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Thu, 21 Mar 2024 21:01:49 -0400 Subject: [PATCH 016/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/models.tsp | 115 +++++++ .../storage/Microsoft.BlobStorage/routes.tsp | 304 ++++++++++++++++++ 2 files changed, 419 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 77cb0eb6baea..dab327ff6f0f 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -21,6 +21,121 @@ model StorageError { /// Parameters +/** The range required put page from URL parameter. */ +model RangeRequiredPutPageFromUrlParameter { + /** 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 + @clientName("range") + `x-ms-range`: string; +} + +/** The source range required put page from URL parameter. */ +model SourceRangeRequiredPutPageFromUrlParameter { + /** 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 + @clientName("sourceRange") + `x-ms-source-range`: string; +} + +/** The if seuqnce number equal to parameter. */ +model IfSequenceNumberEqualToParameter { + /** Specify this header value to operate only on a blob if it has the specified sequence number. */ + @header + @clientName("ifSequenceNumberEqualTo") + `x-ms-if-sequence-number-eq`?: int64; +} + +/** THe if sequence number less than parameter. */ +model IfSequenceNumberLessThanParameter { + /** Specify this header value to operate only on a blob if it has a sequence number less than the specified. */ + @header + @clientName("ifSequenceNumberLessThan") + `x-ms-if-sequence-number-lt`?: int64; +} + +/** The if sequence number less than or equal to parameter. */ +model 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 + @clientName("ifSequenceNumberLessThanOrEqualTo") + `x-ms-if-sequence-number-le`?: int64; +} + +/** The blob content-length response header. */ +model BlobContentLengthResponseHeader { + /** The size of the blob in bytes. */ + @header + @clientName("blobContentLength") + `x-ms-blob-content-length`: int64; +} + +/** The block list type parameter. */ +model BlockListTypeParameter { + /** Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together. */ + @query + @clientName("listType") + blocklisttype: BlockListType; +} + +/** The block list types. */ +enum BlockListType { + /** The list of committed blocks. */ + committed, + /** The list of uncommitted blocks. */ + uncommitted, + /** Both lists together. */ + all +} + +/** The blob blocks body parameter. */ +model BlobBlocksParameter { + /** Blob Blocks. */ + @body blocks: BlockLookupList; +} + +/** The Block lookup list. */ +model BlockLookupList { + // TODO: XML + /** The committed blocks */ + Committed: string[]; + /** The uncommitted blocks */ + Uncommitted: string[]; + /** The latest blocks */ + Latest: string[]; +} + +/** The source content CRC64 parameter. */ +model SourceContentCrc64Parameter { + /** Specify the crc64 calculated for the range of bytes that must be read from the copy source. */ + @header + @clientName("sourceContentCrc64") + `x-ms-source-content-crc64`?: string; +} + +/** The source range parameter. */ +model SourceRangeParameter { + /** Bytes of source data in the specified range. */ + @header + @clientName("sourceRange") + `x-ms-source-range`: string; +} + +/** The source URL parameter. */ +model SourceUrlParameter { + /** Specify a URL to the copy source. */ + @header + @clientName("sourceUrl") + `x-ms-source-url`: string; +} + +/** The Block ID parameter. */ +model 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 is hierarchical namespace enabled response header. */ model IsHierarchicalNamespaceEnabledResponseHeader { /** Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 3fee7fcf5c8d..6bfe0caef91e 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -1832,3 +1832,307 @@ interface BlobAccountPropertiesService { ...SkuNameResponseHeader; } | StorageError; } + +@route("/{containerName}/{blob}?comp=block") +interface BlobBlockStageService { + /** The Stage Block operation creates a new block to be committed as part of a blob */ + @put + @operationId("BlockBlob_StageBlock") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + stageBlock( + /** The data to upload. */ + @body body: bytes; + + ...ContainerNameParameter; + ...BlobNameParameter; + ...BlockIdParameter; + ...ContentLengthHeader; + ...ContentMD5Parameter; + ...TimeoutParameter; + ...ContentCrc64Parameter; + ...LeaseIdOptional; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 201; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=block&fromURL") +interface BlobBlockStageFromUrlService { + /** 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. */ + @put + @operationId("BlockBlob_StageBlockFromURL") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + stageBlockFromUrl( + ...ContainerNameParameter; + ...BlobNameParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...BlockIdParameter; + ...ContentLengthHeader; + ...SourceUrlParameter; + ...SourceRangeParameter; + ...SourceContentMD5Parameter; + ...SourceContentCrc64Parameter; + ...TimeoutParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...LeaseIdOptional; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...CopySourceAuthorizationParameter; + ): { + @statusCode statusCode: 201; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=blocklist") +interface BlobBlockListService { + /** 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. */ + @put + @operationId("BlockBlob_CommitBlockList") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + commitBlockList( + // TODO: XML with the body + ...BlobBlocksParameter; + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...BlobCacheControlParameter; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMD5Parameter; + ...ContentMD5Parameter; + ...ContentCrc64Parameter; + // TODO: ...MetadataParameter; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...AccessTierOptionalParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + ): { + @statusCode statusCode: 201; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; + + /** The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob. */ + @get + @operationId("BlockBlob_GetBlockList") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + getBlockList( + ...ContainerNameParameter; + ...BlobNameParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...SnapshotParameter; + ...BlockListTypeParameter; + ...LeaseIdOptional; + ...IfTagsParameter; + ): { + @statusCode statusCode: 200; + @body body: BlockLookupList; // TODO: XML + + ...LastModifiedResponseHeader; + ...ETagResponseHeader; + ...ContentTypeResponseHeader; + ...BlobContentLengthResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=page&update") +interface PageBlobUpdateService { + /** The Upload Pages operation writes a range of pages to a page blob */ + @put + @operationId("PageBlob_UploadPages") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + uploadPages( + /** The data to upload. */ + @body body: bytes; + + ...ContainerNameParameter; + ...BlobNameParameter; + ...ContentLengthHeader; + ...ContentMD5Parameter; + ...ContentCrc64Parameter; + ...TimeoutParameter; + ...RangeParameter; + ...LeaseIdOptional; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfSequenceNumberLessThanOrEqualToParameter; + ...IfSequenceNumberLessThanParameter; + ...IfSequenceNumberEqualToParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 201; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=page&clear") +interface PageBlobClearService { + /** The Clear Pages operation clears a range of pages from a page blob */ + @put + @operationId("PageBlob_ClearPages") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + clearPages( + ...ContainerNameParameter; + ...BlobNameParameter; + ...ContentLengthHeader; + ...TimeoutParameter; + ...RangeParameter; + ...LeaseIdOptional; + ...IfSequenceNumberLessThanOrEqualToParameter; + ...IfSequenceNumberLessThanParameter; + ...IfSequenceNumberEqualToParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 201; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=page&update&fromUrl") +interface BlobPageUpdateFromUrlService { + /** The Upload Pages operation writes a range of pages to a page blob where the contents are read from a URL. */ + @put + @operationId("PageBlob_UploadPagesFromURL") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + uploadPagesFromUrl( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentLengthHeader; + ...SourceUrlParameter; + ...SourceRangeRequiredPutPageFromUrlParameter; + ...SourceContentMD5Parameter; + ...SourceContentCrc64Parameter; + ...RangeRequiredPutPageFromUrlParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...LeaseIdOptional; + ...IfSequenceNumberLessThanOrEqualToParameter; + ...IfSequenceNumberLessThanParameter; + ...IfSequenceNumberEqualToParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...CopySourceAuthorizationParameter; + ): { + @statusCode statusCode: 202; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; +} From 9e4aea5a159238ef90ac8da7beac722888c80e39 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Fri, 22 Mar 2024 00:06:22 -0400 Subject: [PATCH 017/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/main.tsp | 16 +- .../storage/Microsoft.BlobStorage/models.tsp | 977 +++++++++++------- .../storage/Microsoft.BlobStorage/routes.tsp | 324 ++---- 3 files changed, 685 insertions(+), 632 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index 79899fbc3788..da3b72d07b41 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -23,30 +23,30 @@ using Azure.Core; "{endpoint}", "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") + /** The host name of the blob storage account, e.g. accountName.blob.core.windows.net */ endpoint: url, } ) namespace Azure.Storage.Blob; -@doc("The Azure.Storage.Blob service versions.") +/** The Azure.Storage.Blob service versions. */ enum Versions { @useDependency(Azure.Core.Versions.v1_0_Preview_1) - @doc("The 2020-10-02-preview version of the Azure.Storage.Blob service.") + /** The 2020-10-02-preview version of the Azure.Storage.Blob service. */ `2020-10-02-preview`, - @doc("The 2020-12-06-preview version of the Azure.Storage.Blob service.") + /** The 2020-12-06-preview version of the Azure.Storage.Blob service. */ @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2020-12-06-preview`, - @doc("The 2021-02-12-preview version of the Azure.Storage.Blob service.") + /** The 2021-02-12-preview version of the Azure.Storage.Blob service. */ @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-02-12-preview`, - @doc("The 2021-04-10-preview version of the Azure.Storage.Blob service.") + /** The 2021-04-10-preview version of the Azure.Storage.Blob service. */ @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-04-10-preview`, - @doc("The 2021-08-06-preview version of the Azure.Storage.Blob service.") + /** The 2021-08-06-preview version of the Azure.Storage.Blob service. */ @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-08-06-preview`, - @doc("The 2021-12-02-preview version of the Azure.Storage.Blob service.") + /** The 2021-12-02-preview version of the Azure.Storage.Blob service. */ @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-12-02-preview`, } diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index dab327ff6f0f..9167b2f52855 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -13,14 +13,229 @@ using Azure.ClientGenerator.Core; namespace Microsoft.BlobStorage; @error -@doc("The error response.") +/** The error response. */ model StorageError { - @doc("The error message.") + /** The error message. */ Message: string; } /// Parameters +/** The is immutable storage with versioning enable response header. */ +model IsImmutableStorageWithVersioningEnabledResponseHeader { + /** Indicates whether version level worm is enabled on a container */ + @clientName("IsImmutableStorageWithVersioningEnabled") + @header `x-ms-immutable-storage-with-versioning-enabled`: boolean; + +} + +/** The deny encryption scope override response header. */ +model DenyEncryptionScopeOverrideResponseHeader { + /** 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("DenyEncryptionScopeOverride") + @header `x-ms-deny-encryption-scope-override`: boolean; +} + +/** The default encryption scope response header. */ +model DefaultEncryptionScopeResponseHeader { + /** The default encryption scope for the container. */ + @clientName("DefaultEncryptionScope") + @header `x-ms-default-encryption-scope`: string; +} + +/** The has legal hold response header. */ +model HasLegalHoldResponseHeader { + /** Indicates if a blob has a legal hold. */ + @clientName("HasLegalHold") + @header `x-ms-legal-hold`: boolean; +} + +/** The has immutability policy response header. */ +model HasImmutabilityPolicyResponseHeader { + /** Indicates if a blob has an active immutability policy. */ + @clientName("HasImmutabilityPolicy") + @header `x-ms-has-immutability-policy`: boolean; +} + +/** The public access response header. */ +model PublicAccessResponseHeader { + /** The public access setting for the container. */ + @clientName("PublicAccess") + @header `x-ms-blob-public-access`: PublicAccessType; +} + +/** The rehydrate priority response header. */ +model RehydratePriorityResponseHeader { + /** If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard. */ + @clientName("RehydratePriority") + @header `x-ms-rehydrate-priority`: RehydratePriority; +} + +/** The expires on response header. */ +model ExpiresOnResponseHeader { + /** UTC date/time value generated by the service that indicates the time at which the blob will expire. */ + @clientName("ExpiresOn") + @encode("date-time-rfc1123") + @header `x-ms-expiry-time`: utcDateTime; +} + +/** The access tier change time response header. */ +model AccessTierChangeTimeResponseHeader { + /** The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set. */ + @encode("date-time-rfc1123") + @clientName("AccessTierChangeTime") + @header `x-ms-access-tier-change-time`: utcDateTime; +} + +/** The archive status response header. */ +model ArchiveStatusResponseHeader { + /** 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. */ + @clientName("ArchiveStatus") + @header `x-ms-archive-status`: ArchiveStatus; +} + +/** The access tier inferred response header. */ +model AccessTierInferredResponseHeader { + /** 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. */ + @clientName("AccessTierInferred") + @header `x-ms-access-tier-inferred`: boolean; +} + +/** The access tier response header. */ +model AccessTierResponseHeader { + /** 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. */ + @clientName("AccessTier") + @header `x-ms-access-tier`: AccessTier; +} + +/** The destination snapshot response header. */ +model DestinationSnapshotResponseHeader { + /** 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. */ + @clientName("DestinationSnapshot") + @header `x-ms-copy-destination-snapshot`: string; +} + +/** The is incremental copy response header. */ +model IsIncrementalCopyResponseHeader { + /** Included if the blob is incremental copy blob. */ + @clientName("IsIncrementalCopy") + @header `x-ms-incremental-copy`: boolean; +} + +/** The immutability policy expires on response header. */ +model ImmutabilityPolicyExpiresOnResponseHeader { + /** UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. */ + @clientName("ImmutabilityPolicyExpiresOn") + @encode("date-time-rfc1123") + @header `x-ms-immutability-policy-until-date`: utcDateTime; +} + +/** The last accessed response header. */ +model LastAccessedResponseHeader { + /** UTC date/time value generated by the service that indicates the time at which the blob was last read or written to */ + @clientName("LastAccessed") + @encode("date-time-rfc1123") + @header `x-ms-last-access-time`: utcDateTime; +} + +/** The is sealed response header. */ +model IsSealedResponseHeader { + /** If this blob has been sealed */ + @clientName("IsSealed") + @header `x-ms-blob-sealed`: boolean; +} + +/** The tag count response header. */ +model TagCountResponseHeader { + /** The number of tags associated with the blob */ + @clientName("TagCount") + @header `x-ms-tag-count`: int64; +} + +/** The blob committed block count response header. */ +model BlobCommittedBlockCountResponseHeader { + /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ + @clientName("BlobCommittedBlockCount") + @header `x-ms-blob-committed-block-count`: int32; +} + +/** The accept ranges response header. */ +model AcceptRangesResponseHeader { + /** Indicates that the service supports requests for partial blob content. */ + @header `Accept-Ranges`: string; +} + +/** The is current version response header. */ +model IsCurrentVersionResponseHeader { + /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ + @clientName("IsCurrentVersion") + @header `x-ms-is-current-version`: boolean; +} + +/** The lease status response header. */ +model LeaseStatusResponseHeader { + /** The lease status of the blob. */ + @clientName("LeaseStatus") + @header `x-ms-lease-status`: LeaseStatus; +} + +/** The lease state response header. */ +model LeaseStateResponseHeader { + /** Lease state of the blob. */ + @clientName("LeaseState") + @header `x-ms-lease-state`: LeaseState; +} + +/** The lease duration response header. */ +model LeaseDurationResponseHeader { + /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ + @clientName("LeaseDuration") + @header `x-ms-lease-duration`: LeaseDuration; +} + +/** The copy source response header. */ +model 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. */ + @clientName("CopySource") + @header `x-ms-copy-source`: string; +} + +/** The copy progress response header. */ +model 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 */ + @clientName("CopyProgress") + @header `x-ms-copy-progress`: string; +} + +/** The copy status description response header. */ +model 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 */ + @clientName("CopyStatusDescription") + @header `x-ms-copy-status-description`: string; +} + +/** The copy completion time response header. */ +model 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. */ + @clientName("CopyCompletionTime") + @encode("date-time-rfc1123") + @header `x-ms-copy-completion-time`: utcDateTime; +} + +/** The blob type response header. */ +model BlobTypeResponseHeader { + /** The type of the blob. */ + @clientName("BlobType") + @header `x-ms-blob-type`: BlobType; +} + +/** The object replication policy response header. */ +model ObjectReplicationPolicyIdResponseHeader { + /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ + @clientName("ObjectReplicationPolicyId") + @header `x-ms-or-policy-id`: string; +} + /** The range required put page from URL parameter. */ model RangeRequiredPutPageFromUrlParameter { /** 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. */ @@ -517,17 +732,17 @@ model SourceIfMatchParameter { `x-ms-source-if-match`?: string; } -@doc("The source if none match parameter.") +/** The source if none match parameter. */ model SourceIfNoneMatchParameter { - @doc("Specify this header value to operate only on a blob if it has been modified since the specified date/time.") + /** Specify this header value to operate only on a blob if it has been modified since the specified date/time. */ @header @clientName("sourceIfNoneMatch") `x-ms-source-if-none-match`?: string; } -@doc("The source if modified since parameter.") +/** The source if modified since parameter. */ model SourceIfModifiedSinceParameter { - @doc("Specify this header value to operate only on a blob if it has been modified since the specified date/time.") + /** Specify this header value to operate only on a blob if it has been modified since the specified date/time. */ @header @clientName("sourceIfModifiedSince") @encode("date-time-rfc1123") @@ -541,162 +756,162 @@ model ContentCrc64Parameter { @header `x-ms-content-crc64`?: string; } -@doc("The access tier optional parameter.") +/** The access tier optional parameter. */ model AccessTierOptionalParameter { - @doc("Optional. The tier to be set on the blob.") + /** Optional. The tier to be set on the blob. */ @clientName("tier") @header `x-ms-access-tier`?: AccessTier; } -@doc("The content MD5 parameter.") +/** The content MD5 parameter. */ model ContentMD5Parameter { - @doc("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.") + /** 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 @clientName("transactionalContentMD5") `Content-MD5`?: string; } -@doc("The legal hold optional parameter.") +/** The legal hold optional parameter. */ model LegalHoldOptionalParameter { - @doc("Specified if a legal hold should be set on the blob.") + /** Specified if a legal hold should be set on the blob. */ @clientName("legalHold") @header `x-ms-legal-hold`?: boolean; } -@doc("The immutability policy mode parameter.") +/** The immutability policy mode parameter. */ model ImmutabilityPolicyModeParameter { - @doc("Specifies the immutability policy mode to set on the blob.") + /** Specifies the immutability policy mode to set on the blob. */ @header @clientName("immutabilityPolicyMode") `x-ms-immutability-policy-mode`?: BlobImmutabilityPolicyMode; } -@doc("The immutability policy expiration parameter.") +/** The immutability policy expiration parameter. */ model ImmutabilityPolicyExpiryParameter { - @doc("Specifies the date time when the blobs immutability policy is set to expire.") + /** Specifies the date time when the blobs immutability policy is set to expire. */ @header @clientName("immutabilityPolicyExpiry") @encode("date-time-rfc1123") `x-ms-immutability-policy-until-date`?: string; } -@doc("The blobs tags header parameter.") +/** The blobs tags header parameter. */ model BlobTagsHeaderParameter { - @doc("Optional. Used to set blob tags in various blob operations.") + /** Optional. Used to set blob tags in various blob operations. */ @clientName("BlobTagsString") @header `x-ms-tags`?: string; } -@doc("The blob sequence number parameter.") +/** The blob sequence number parameter. */ model BlobSequenceNumberParameter { - @doc("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.") + /** 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 @clientName("blobSequenceNumber") `x-ms-blob-sequence-number`?: int64; } -@doc("The blob content length parameter.") +/** The blob content length parameter. */ model BlobContentLengthRequiredParameter { - @doc("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.") + /** 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 @clientName("blobContentLength") `x-ms-blob-content-length`: int64; } -@doc("The encryption scope parameter.") +/** The encryption scope parameter. */ model EncryptionScopeParameter { - @doc("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.") + /** 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. */ @clientName("encryptionScope") @header `x-ms-encryption-scope`?: string; } -@doc("The blob content disposition parameter.") +/** The blob content disposition parameter. */ model BlobContentDispositionParameter { - @doc("Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.") + /** Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request. */ @header @clientName("blobContentDisposition") `x-ms-blob-content-disposition`?: string; } -@doc("The blob cache control parameter.") +/** The blob cache control parameter. */ model BlobCacheControlParameter { - @doc("Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.") + /** Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request. */ @header @clientName("blobCacheControl") `x-ms-blob-cache-control`?: string; } -@doc("The blob content MD5 parameter.") +/** The blob content MD5 parameter. */ model BlobContentMD5Parameter { - @doc("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.") + /** 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("blobContentMD5") @header `x-ms-blob-content-md5`?: string; } -@doc("The blob content type parameter.") +/** The blob content type parameter. */ model BlobContentLanguageParameter { - @doc("Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.") + /** Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request. */ @header @clientName("blobContentLanguage") `x-ms-blob-content-language`?: string; } -@doc("The blob content type parameter.") +/** The blob content type parameter. */ model BlobContentEncodingParameter { - @doc("Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.") + /** Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request. */ @clientName("blobContentEncoding") @header `x-ms-blob-content-encoding`?: string; } -@doc("The blob content type parameter.") +/** The blob content type parameter. */ model BlobContentTypeParameter { - @doc("Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.") + /** Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request. */ @header @clientName("blobContentType") `x-ms-blob-content-type`?: string; } -@doc("The optional premium page blob access tier parameter.") +/** The optional premium page blob access tier parameter. */ model PremiumPageBlobAccessTierOptional { - @doc("Optional. Indicates the tier to be set on the page blob.") + /** Optional. Indicates the tier to be set on the page blob. */ @clientName("tier") @header `x-ms-access-tier`?: PremiumPageBlobAccessTier; } -@doc("The premium page blob access tier types.") +/** The premium page blob access tier types. */ enum PremiumPageBlobAccessTier { - @doc("The premium page blob access tier is P4.") + /** The premium page blob access tier is P4. */ P4, - @doc("The premium page blob access tier is P6.") + /** The premium page blob access tier is P6. */ P6, - @doc("The premium page blob access tier is P10.") + /** The premium page blob access tier is P10. */ P10, - @doc("The premium page blob access tier is P15.") + /** The premium page blob access tier is P15. */ P15, - @doc("The premium page blob access tier is P20.") + /** The premium page blob access tier is P20. */ P20, - @doc("The premium page blob access tier is P30.") + /** The premium page blob access tier is P30. */ P30, - @doc("The premium page blob access tier is P40.") + /** The premium page blob access tier is P40. */ P40, - @doc("The premium page blob access tier is P50.") + /** The premium page blob access tier is P50. */ P50, - @doc("The premium page blob access tier is P60.") + /** The premium page blob access tier is P60. */ P60, - @doc("The premium page blob access tier is P70.") + /** The premium page blob access tier is P70. */ P70, - @doc("The premium page blob access tier is P80.") + /** The premium page blob access tier is P80. */ P80 } -@doc("The blob name parameter.") +/** The blob name parameter. */ model BlobNameParameter { - @doc("The name of the blob.") + /** The name of the blob. */ @minLength(1) @maxLength(1024) @pattern("^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$") @@ -704,994 +919,994 @@ model BlobNameParameter { blobName: string; } -@doc("The blob delete type parameter.") +/** The blob delete type parameter. */ model BlobDeleteTypeParameter { - @doc("Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled.") + /** Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled. */ @query @clientName("blobDeleteType") deletetype?: DeleteSnapshotsOptionType; } -@doc("The type of blob deletions.") +/** The type of blob deletions. */ enum BlobDeleteType { - @doc("Permanently delete the blob.") + /** Permanently delete the blob. */ Permanent, } -@doc("The delete snapshot parameter.") +/** The delete snapshot parameter. */ model DeleteSnapshotsParameter { - @doc("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 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 */ @clientName("deleteSnapshots") @header `x-ms-delete-snapshots`?: DeleteSnapshotsOptionType; } -@doc("The delete snapshots option type.") +/** The delete snapshots option type. */ enum DeleteSnapshotsOptionType { - @doc("The delete snapshots include option is not specified.") + /** The delete snapshots include option is not specified. */ none, - @doc("The delete snapshots include option is include.") + /** The delete snapshots include option is include. */ include, } -@doc("The encryption algorithm parameter.") +/** The encryption algorithm parameter. */ model EncryptionAlgorithmParameter { - @doc("Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.") + /** Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256. */ @clientName("encryptionAlgorithm") @header `x-ms-encryption-algorithm`?: string; } -@doc("The encryption key SHA256 hash parameter.") +/** The encryption key SHA256 hash parameter. */ model EncryptionKeySha256Parameter { - @doc("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.") + /** 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. */ @clientName("encryptionKeySha256") @header `x-ms-encryption-key-sha256`?: string; } -@doc("The encryption key parameter.") +/** The encryption key parameter. */ model EncryptionKeyParameter { - @doc("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.") + /** 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. */ @clientName("encryptionKey") @header `x-ms-encryption-key`?: string; } -@doc("The If-Tags parameters.") +/** The If-Tags parameters. */ model IfTagsParameter { - @doc("Specify a SQL where clause on blob tags to operate only on blobs with a matching value.") + /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ @clientName("ifTags") @header `x-ms-if-tags`?: string; } -@doc("The If-Match parameter.") +/** The If-Match parameter. */ model IfMatchParameter { - @doc("A condition that must be met in order for the request to be processed.") + /** A condition that must be met in order for the request to be processed. */ @header @clientName("ifMatch") `If-Match`?: string; } -@doc("The If-None-Match parameter.") +/** The If-None-Match parameter. */ model IfNoneMatchParameter { - @doc("A condition that must be met in order for the request to be processed.") + /** A condition that must be met in order for the request to be processed. */ @header @clientName("ifNoneMatch") `If-None-Match`?: string; } -@doc("The get range content CRC64 parameter.") +/** The get range content CRC64 parameter. */ model GetRangeContentCRC64 { - @doc("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.") + /** 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`?: boolean; } -@doc("The get range content MD5 parameter.") +/** The get range content MD5 parameter. */ model GetRangeContentMD5 { - @doc("Optional. When this header is set to true and specified together with the Range header, the service returns the MD5 hash for the range, as long as the range is less than or equal to 4 MB in size.") + /** Optional. When this header is set to true and specified together with the Range header, 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`?: boolean; } -@doc("The range parameter.") +/** The range parameter. */ model RangeParameter { - @doc("Return only the bytes of the blob in the specified range.") + /** Return only the bytes of the blob in the specified range. */ @header @clientName("range") `x-ms-range`: string; } -@doc("The version ID parameter.") +/** The version ID parameter. */ model VersionIdParameter { - @doc("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.") + /** 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. */ @header @clientName("versionId") versionid: string; } -@doc("The snapshot parameter.") +/** The snapshot parameter. */ model 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; } -@doc("An enumeration of blobs") +/** An enumeration of blobs */ model ListBlobsHierarchySegmentResponse { - @doc("The service endpoint.") + /** The service endpoint. */ ServiceEndpoint: string; // TODO: XML Attribute - @doc("The container name.") + /** The container name. */ ContainerName: string; // TODO: XML Attribute - @doc("The delimiter of the blobs.") + /** The delimiter of the blobs. */ Delimiter?: string; - @doc("The prefix of the blobs.") + /** The prefix of the blobs. */ Prefix?: string; - @doc("The marker of the blobs.") + /** The marker of the blobs. */ Marker?: string; - @doc("The max results of the blobs.") + /** The max results of the blobs. */ MaxResults?: int32; - @doc("The blob segment.") + /** The blob segment. */ Segment: BlobItem[]; // TODO: XML Serialization - @doc("The next marker of the blobs.") + /** The next marker of the blobs. */ NextMarker?: string; } -@doc("The delimiter parameter.") +/** The delimiter parameter. */ model DelimiterParameter { - @doc("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.") + /** 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; } -@doc("The list blob includes parameter.") +/** The list blob includes parameter. */ model ListBlobsInclude { - @doc("Include this parameter to specify one or more datasets to include in the response.") + /** Include this parameter to specify one or more datasets to include in the response. */ @query({ format: "csv" }) include?: ListBlobsIncludes[]; } -@doc("The list blob includes parameter values.") +/** The list blob includes parameter values. */ enum ListBlobsIncludes { - @doc("The include copies.") + /** The include copies. */ copies, - @doc("The include deleted blobs.") + /** The include deleted blobs. */ deleted, - @doc("The include metadata.") + /** The include metadata. */ metadata, - @doc("The include snapshots.") + /** The include snapshots. */ snapshots, - @doc("The include uncommitted blobs.") + /** The include uncommitted blobs. */ uncommittedblobs, - @doc("The include versions.") + /** The include versions. */ versions, - @doc("The include tags.") + /** The include tags. */ tags, - @doc("The include immutable policy.") + /** The include immutable policy. */ immutabilitypolicy, - @doc("The include legal hold.") + /** The include legal hold. */ legalhold, - @doc("The include deleted with versions.") + /** The include deleted with versions. */ deletedwithversions } -@doc("The lease duration parameter.") +/** The lease duration parameter. */ model LeaseDurationParameter { - @doc("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.") + /** 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. */ @clientName("duration") @header `x-ms-lease-duration`: int32; } -@doc("The source lease ID header parameter.") +/** The source lease ID header parameter. */ model SourceLeaseId { - @doc("A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.") + /** A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ @clientName("sourceLeaseId") @header `x-ms-source-lease-id`?: string; } -@doc("The source container name header parameter.") +/** The source container name header parameter. */ model SourceContainerName { - @doc("Required. Specifies the name of the container to rename.") + /** Required. Specifies the name of the container to rename. */ @clientName("SourceContainerName") @header `x-ms-source-container-name`: string; } -@doc("The deleted container name header.") +/** The deleted container name header. */ model DeletedContainerName { - @doc("Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore.") + /** Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore. */ @clientName("DeletedContainerName") @header `x-ms-deleted-container-name`?: string; } -@doc("The deleted container version header.") +/** The deleted container version header. */ model DeletedContainerVersion { - @doc("Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore.") + /** Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore. */ @clientName("DeletedContainerVersion") @header `x-ms-deleted-container-version`?: string; } -@doc("The container ACL parameter.") +/** The container ACL parameter. */ model ContainerAcl { - @doc("The access control list for the container.") + /** The access control list for the container. */ @body acl: SignedIdentifiers; } -@doc("The container name header") +/** The container name header */ model ContainerNameParameter { - @doc("The name of the container.") + /** The name of the container. */ @header @path containerName: string; } -@doc("The If-Unmodified-Since header.") +/** The If-Unmodified-Since header. */ model IfUnmodifiedSince { - @doc("A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.") + /** A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time. */ @header @encode("date-time-rfc1123") @clientName("ifUnmodifiedSince") `If-Unmodified-Since`?: utcDateTime; } -@doc("The If-Modified-Since header.") +/** The If-Modified-Since header. */ model IfModifiedSince { - @doc("A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.") + /** A date-time value. A request is made under the condition that the resource has been modified since the specified date-time. */ @header @encode("date-time-rfc1123") @clientName("ifModifiedSince") `If-Modified-Since`?: utcDateTime; } -@doc("The lease ID parameter.") +/** The lease ID parameter. */ model LeaseIdOptional { - @doc("If specified, the operation only succeeds if the resource's lease is active and matches this ID.") + /** If specified, the operation only succeeds if the resource's lease is active and matches this ID. */ @header `x-ms-lease-id`?: string; } -@doc("The deny encryption scope override parameter.") +/** The deny encryption scope override parameter. */ model DenyEncryptionScopeOverride { - @doc("Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container.") + /** Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container. */ @header `x-ms-deny-encryption-scope-override`?: boolean; } -@doc("The default encryption scope parameter.") +/** The default encryption scope parameter. */ model DefaultEncryptionScope { - @doc("Optional. Version 2019-07-07 and later. Specifies the default encryption scope to set on the container and use for all future writes.") + /** 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`?: string; } -@doc("The blob public access parameter.") +/** The blob public access parameter. */ model BlobPublicAccess { - @doc("Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'.") + /** Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'. */ @clientName("access") @header `x-ms-blob-public-access`?: PublicAccessType; } -@doc("The metadata parameter.") +/** The metadata parameter. */ model MetadataParameter is Record { - @doc("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.") + /** 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. */ @header `x-ms-meta`?: string; // TODO: Figure out how to better represent this } -@doc("The filter blobs include parameter.") +/** The filter blobs include parameter. */ model FilterBlobsInclude { - @doc("Include this parameter to specify one or more datasets to include in the response.") + /** Include this parameter to specify one or more datasets to include in the response. */ @query({ format: "csv" }) include?: FilterBlobsIncludes[]; } -@doc("The filter blobs where parameter.") +/** The filter blobs where parameter. */ model FilterBlobsWhere { - @doc("Filters the results to return only to return only blobs whose tags match the specified expression.") + /** Filters the results to return only to return only blobs whose tags match the specified expression. */ @query where?: string; } -@doc("The Content-Length header.") +/** The Content-Length header. */ model ContentLengthHeader { - @doc("The length of the request.") + /** The length of the request. */ @header `Content-Length`: int64; } -@doc("The Content-Type header for multi-part requests.") +/** The Content-Type header for multi-part requests. */ model MultipartContentType { - @doc("Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_") + /** Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_ */ @clientName("multipartContentType") @header `Content-Type`: string; } -@doc("The max results parameter.") +/** The max results parameter. */ model MaxResultsParameter { - @doc("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.") + /** 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 maxresults?: int32; } -@doc("The marker parameter.") +/** The marker parameter. */ model MarkerParameter { - @doc("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.") + /** 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. */ @query marker?: string; } -@doc("The prefix parameter.") +/** The prefix parameter. */ model PrefixParameter { - @doc("Filters the results to return only containers whose name begins with the specified prefix.") + /** Filters the results to return only containers whose name begins with the specified prefix. */ @query prefix?: string; } -@doc("The client request ID parameter.") +/** The client request ID parameter. */ model ClientRequestIdParameter { - @doc("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.") + /** 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. */ @clientName("requestId") @header `x-ms-client-request-id`?: string; } -@doc("The timeout parameter.") +/** The timeout parameter. */ model TimeoutParameter { @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") @query timeout?: int32; } -@doc("The API version parameter.") +/** The API version parameter. */ model ApiVersionParameter { - @doc("Specifies the version of the operation to use for this request.") + /** Specifies the version of the operation to use for this request. */ @header("x-ms-version") version: string; } -@doc("The lease break period header.") +/** The lease break period header. */ model LeaseBreakPeriod { - @doc("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.") + /** 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 @clientName("breakPeriod") `x-ms-lease-break-period`?: int32; } -@doc("The required lease ID header.") +/** The required lease ID header. */ model ProposedLeaseIdRequired { - @doc("Required. The proposed lease ID for the container.") + /** Required. The proposed lease ID for the container. */ @header `x-ms-proposed-lease-id`: string; } -@doc("The optional lease ID header.") +/** The optional lease ID header. */ model ProposedLeaseIdOptional { - @doc("Optional. The proposed lease ID for the container.") + /** Optional. The proposed lease ID for the container. */ @header `x-ms-proposed-lease-id`?: string; } -@doc("The lease ID required header.") +/** The lease ID required header. */ model LeaseIdRequired { - @doc("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. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ @clientName("leaseId") @header `x-ms-lease-id`: string; } /// Models -@doc("Represents an array of signed identifiers") +/** Represents an array of signed identifiers */ model SignedIdentifiers is Array; -@doc("The signed identifier.") +/** The signed identifier. */ model SignedIdentifier { - @doc("The unique ID for the signed identifier.") + /** The unique ID for the signed identifier. */ Id: string; - @doc("The access policy for the signed identifier.") + /** The access policy for the signed identifier. */ AccessPolicy: AccessPolicy; } -@doc("The result of a Filter Blobs API call") +/** The result of a Filter Blobs API call */ model FilterBlobSegment { - @doc("The service endpoint.") + /** The service endpoint. */ ServiceEndpoint: string; // TODO: XML Attribute - @doc("The filter for the blobs.") + /** The filter for the blobs. */ Where: string; - @doc("The blob segment.") + /** The blob segment. */ Blobs: BlobItem[]; // TODO: XML Serialization - @doc("The next marker of the blobs.") + /** The next marker of the blobs. */ NextMarker?: string; } -@doc("The filter blobs includes.") +/** The filter blobs includes. */ enum FilterBlobsIncludes { - @doc("The filter includes no versions.") + /** The filter includes no versions. */ none, - @doc("The filter includes n versions.") + /** The filter includes n versions. */ versions } -@doc("The account kind.") +/** The account kind. */ enum AccountKind { - @doc("The storage account is a general-purpose account.") + /** The storage account is a general-purpose account. */ Storage, - @doc("The storage account is a blob storage account.") + /** The storage account is a blob storage account. */ BlobStorage, - @doc("The storage account is a storage V2 account.") + /** The storage account is a storage V2 account. */ StorageV2, - @doc("The storage account is a file storage account.") + /** The storage account is a file storage account. */ FileStorage, - @doc("The storage account is a block blob storage account.") + /** The storage account is a block blob storage account. */ BlockBlobStorage } -@doc("The SKU types") +/** The SKU types */ enum SkuName { - @doc("The standard LRS SKU.") + /** The standard LRS SKU. */ Standard_LRS, - @doc("The standard GRS SKU.") + /** The standard GRS SKU. */ Standard_GRS, - @doc("The standard RAGRS SKU.") + /** The standard RAGRS SKU. */ Standard_RAGRS, - @doc("The standard ZRS SKU.") + /** The standard ZRS SKU. */ Standard_ZRS, - @doc("The premium LRS SKU.") + /** The premium LRS SKU. */ Premium_LRS } model ListContainersSegmentResponse { - @doc("The service endpoint.") + /** The service endpoint. */ ServiceEndpoint: string; // TODO: XML Attribute - @doc("The prefix of the containers.") + /** The prefix of the containers. */ Prefix?: string; - @doc("The marker of the containers.") + /** The marker of the containers. */ Marker?: string; - @doc("The max results of the containers.") + /** The max results of the containers. */ MaxResults?: int32; - @doc("The container segment.") + /** The container segment. */ Segment: ContainerItem[]; // TODO: XML Serialization - @doc("The next marker of the containers.") + /** The next marker of the containers. */ NextMarker?: string; } -@doc("An Azure Storage container.") +/** An Azure Storage container. */ model ContainerItem { - @doc("The name of the container.") + /** The name of the container. */ Name: string; - @doc("The properties of the container.") + /** The properties of the container. */ Properties: ContainerProperties; - @doc("The metadata of the container.") + /** The metadata of the container. */ Metadata?: ContainerMetadata; } -@doc("The properties of a container.") +/** The properties of a container. */ model ContainerProperties { - @doc("The date-time the container was created in RFC1123 format.") + /** The date-time the container was created in RFC1123 format. */ @encode("date-time-rfc1123") `Creation-Time`?: utcDateTime; - @doc("The date-time the container was last modified in RFC1123 format.") + /** The date-time the container was last modified in RFC1123 format. */ @encode("date-time-rfc1123") `Last-Modified`: utcDateTime; - @doc("The ETag of the container.") + /** The ETag of the container. */ ETag: string; - @doc("The lease status of the container.") + /** The lease status of the container. */ LeaseStatus?: LeaseStatus; - @doc("The lease state of the container.") + /** The lease state of the container. */ LeaseState?: LeaseState; - @doc("The lease duration of the container.") + /** The lease duration of the container. */ LeaseDuration?: LeaseDuration; - @doc("The public access type of the container.") + /** The public access type of the container. */ PublicAccess?: PublicAccessType; } -@doc("The metadata of a container.") +/** The metadata of a container. */ model ContainerMetadata is Record { // @xml.attribute(true) Encrypted: string; } -@doc("Stats for the storage service.") +/** Stats for the storage service. */ model StorageServiceStats { - @doc("The geo replication stats.") + /** The geo replication stats. */ GeoReplication: GeoReplication; } -@doc("The geo replication status.") +/** The geo replication status. */ model GeoReplication { Status: GeoReplicationStatus; LastSyncTime: string; } -@doc("The geo replication status.") +/** The geo replication status. */ enum GeoReplicationStatus { - @doc("The geo replication is live.") + /** The geo replication is live. */ live, - @doc("The geo replication is bootstrap.") + /** The geo replication is bootstrap. */ bootstrap, - @doc("The geo replication is unavailable.") + /** The geo replication is unavailable. */ unavailable } -@doc("Key information") +/** Key information */ model KeyInfo { - @doc("The date-time the key is active.") + /** The date-time the key is active. */ Start: string; - @doc("The date-time the key expires.") + /** The date-time the key expires. */ Expiry: string; } -@doc("A user delegation key.") +/** A user delegation key. */ model UserDelegationKey { - @doc("The Azure Active Directory object ID in GUID format.") + /** The Azure Active Directory object ID in GUID format. */ SignedOid: uuid; - @doc("The Azure Active Directory tenant ID in GUID format.") + /** The Azure Active Directory tenant ID in GUID format. */ SignedTid: uuid; - @doc("The date-time the key is active.") + /** The date-time the key is active. */ SignedStart: string; - @doc("The date-time the key expires.") + /** The date-time the key expires. */ SignedExpiry: string; - @doc("Abbreviation of the Azure Storage service that accepts the key.") + /** Abbreviation of the Azure Storage service that accepts the key. */ SignedService: string; - @doc("The service version that created the key.") + /** The service version that created the key. */ SignedVersion: string; - @doc("The key as a base64 string.") + /** The key as a base64 string. */ Value: string; } -@doc("The public access types.") +/** The public access types. */ enum PublicAccessType { - @doc("Blob access.") + /** Blob access. */ blob, - @doc("Container access.") + /** Container access. */ container, } -@doc("The copy status.") +/** The copy status. */ enum CopyStatus { - @doc("The copy operation is pending.") + /** The copy operation is pending. */ pending, - @doc("The copy operation succeeded.") + /** The copy operation succeeded. */ success, - @doc("The copy operation failed.") + /** The copy operation failed. */ failed, - @doc("The copy operation is aborted.") + /** The copy operation is aborted. */ aborted, } -@doc("The lease duration.") +/** The lease duration. */ enum LeaseDuration { - @doc("The lease is of infinite duration.") + /** The lease is of infinite duration. */ infinite, - @doc("The lease is of fixed duration.") + /** The lease is of fixed duration. */ fixed, } -@doc("The lease state.") +/** The lease state. */ enum LeaseState { - @doc("The lease is available.") + /** The lease is available. */ available, - @doc("The lease is currently leased.") + /** The lease is currently leased. */ leased, - @doc("The lease is expired.") + /** The lease is expired. */ expired, - @doc("The lease is breaking.") + /** The lease is breaking. */ breaking, - @doc("The lease is broken.") + /** The lease is broken. */ broken, } -@doc("The lease status.") +/** The lease status. */ enum LeaseStatus { - @doc("The lease is unlocked.") + /** The lease is unlocked. */ unlocked, - @doc("The lease is locked.") + /** The lease is locked. */ locked, } -@doc("Represents an access policy.") +/** Represents an access policy. */ model AccessPolicy { - @doc("The date-time the policy is active.") + /** The date-time the policy is active. */ Start: utcDateTime; - @doc("The date-time the policy expires.") + /** The date-time the policy expires. */ Expiry: utcDateTime; - @doc("The permissions for acl the policy.") + /** The permissions for acl the policy. */ Permission: string; } -@doc("The access tiers.") +/** The access tiers. */ enum AccessTier { - @doc("The hot P4 tier.") + /** The hot P4 tier. */ P4, - @doc("The hot P6 tier.") + /** The hot P6 tier. */ P6, - @doc("The hot P10 tier.") + /** The hot P10 tier. */ P10, - @doc("The hot P15 tier.") + /** The hot P15 tier. */ P15, - @doc("The hot P20 tier.") + /** The hot P20 tier. */ P20, - @doc("The hot P30 tier.") + /** The hot P30 tier. */ P30, - @doc("The hot P40 tier.") + /** The hot P40 tier. */ P40, - @doc("The hot P50 tier.") + /** The hot P50 tier. */ P50, - @doc("The hot P60 tier.") + /** The hot P60 tier. */ P60, - @doc("The hot P70 tier.") + /** The hot P70 tier. */ P70, - @doc("The hot P80 tier.") + /** The hot P80 tier. */ P80, - @doc("The hot access tier.") + /** The hot access tier. */ Hot, - @doc("The cool access tier.") + /** The cool access tier. */ Cool, - @doc("The archive access tier.") + /** The archive access tier. */ Archive, } -@doc("The archive status.") +/** The archive status. */ enum ArchiveStatus { - @doc("The archive status is rehydrating pending to hot.") + /** The archive status is rehydrating pending to hot. */ `rehydrate-pending-to-hot`, - @doc("The archive status is rehydrating pending to cool.") + /** The archive status is rehydrating pending to cool. */ `rehydrate-pending-to-cool`, - @doc("The archive status is rehydrating pending to archive.") + /** The archive status is rehydrating pending to archive. */ `rehydrate-pending-to-archive`, - @doc("The archive status is rehydrating pending to expired.") + /** The archive status is rehydrating pending to expired. */ `rehydrate-pending-to-expired`, } -@doc("An Azure Storage Blob") +/** An Azure Storage Blob */ model BlobItem { // TODO: Add XML attribute of Encoded - @doc("The name of the blob.") + /** The name of the blob. */ Name: string; - @doc("Whether the blob is deleted.") + /** Whether the blob is deleted. */ Deleted: boolean; - @doc("The snapshot of the blob.") + /** The snapshot of the blob. */ Snapshot: string; - @doc("The version id of the blob.") + /** The version id of the blob. */ VersionId?: string; - @doc("Whether the blob is the current version.") + /** Whether the blob is the current version. */ IsCurrentVersion?: boolean; - @doc("The properties of the blob.") + /** The properties of the blob. */ Properties: BlobProperties; - @doc("The metadata of the blob.") + /** The metadata of the blob. */ Metadata?: BlobMetadata; - @doc("The tags of the blob.") + /** The tags of the blob. */ Tags?: BlobTag[]; - @doc("The object replication metadata of the blob.") + /** The object replication metadata of the blob. */ ObjectReplicationMetadata?: ObjectReplicationMetadata; - @doc("Whether the blog has versions only.") + /** Whether the blog has versions only. */ HasVersionsOnly?: boolean; } -@doc("The properties of a blob.") +/** The properties of a blob. */ model BlobProperties { - @doc("The date-time the blob was created in RFC1123 format.") + /** The date-time the blob was created in RFC1123 format. */ @encode("date-time-rfc1123") `Creation-Time`?: utcDateTime; - @doc("The date-time the blob was last modified in RFC1123 format.") + /** The date-time the blob was last modified in RFC1123 format. */ @encode("date-time-rfc1123") `Last-Modified`: utcDateTime; - @doc("The blog ETag.") + /** The blog ETag. */ ETag: string; - @doc("The content length of the blob.") + /** The content length of the blob. */ `Content-Length`?: int64; - @doc("The content type of the blob.") + /** The content type of the blob. */ `Content-Type`?: string; - @doc("The content encoding of the blob.") + /** The content encoding of the blob. */ `Content-Encoding`?: string; - @doc("The content language of the blob.") + /** The content language of the blob. */ `Content-Language`?: string; - @doc("The content MD5 of the blob.") + /** The content MD5 of the blob. */ `Content-MD5`?: string; - @doc("The content disposition of the blob.") + /** The content disposition of the blob. */ `Content-Disposition`?: string; - @doc("The cache control of the blob.") + /** The cache control of the blob. */ `Cache-Control`?: string; - @doc("The sequence number of the blob.") + /** The sequence number of the blob. */ `x-ms-blob-sequence-number`?: int64; - @doc("The blob type.") + /** The blob type. */ BlobType?: BlobType; - @doc("The lease status of the blob.") + /** The lease status of the blob. */ LeaseStatus?: LeaseStatus; - @doc("The lease state of the blob.") + /** The lease state of the blob. */ LeaseState?: LeaseState; - @doc("The lease duration of the blob.") + /** The lease duration of the blob. */ LeaseDuration?: LeaseDuration; - @doc("The copy ID of the blob.") + /** The copy ID of the blob. */ CopyId?: string; - @doc("The copy status of the blob.") + /** The copy status of the blob. */ CopyStatus?: CopyStatus; - @doc("The copy source of the blob.") + /** The copy source of the blob. */ CopySource?: string; - @doc("The copy progress of the blob.") + /** The copy progress of the blob. */ CopyProgress?: string; - @doc("The copy completion time of the blob.") + /** The copy completion time of the blob. */ @encode("date-time-rfc1123") CopyCompletionTime?: utcDateTime; - @doc("The copy status description of the blob.") + /** The copy status description of the blob. */ CopyStatusDescription?: string; - @doc("Whether the blog is encrypted on the server.") + /** Whether the blog is encrypted on the server. */ ServerEncrypted?: boolean; - @doc("Whether the blog is incremental copy.") + /** Whether the blog is incremental copy. */ IncrementalCopy?: boolean; - @doc("The name of the desination snapshot.") + /** The name of the desination snapshot. */ DestinationSnapshot?: string; - @doc("The time the blob was deleted.") + /** The time the blob was deleted. */ DeletedTime?: utcDateTime; - @doc("The remaining retention days of the blob.") + /** The remaining retention days of the blob. */ RemainingRetentionDays?: int32; - @doc("The access tier of the blob.") + /** The access tier of the blob. */ AccessTier?: AccessTier; - @doc("Whether the access tier is inferred.") + /** Whether the access tier is inferred. */ AccessTierInferred?: boolean; - @doc("The archive status of the blob.") + /** The archive status of the blob. */ ArchiveStatus?: ArchiveStatus; - @doc("The encryption scope of the blob.") + /** The encryption scope of the blob. */ EncryptionScope?: string; - @doc("The access tier change time of the blob.") + /** The access tier change time of the blob. */ @encode("date-time-rfc1123") AccessTierChangeTime?: utcDateTime; - @doc("The number of tags for the blob.") + /** The number of tags for the blob. */ TagCount?: int32; @clientName("ExpiresOn") - @doc("The expire time of the blob.") + /** The expire time of the blob. */ @encode("date-time-rfc1123") `Expiry-Time`?: utcDateTime; @clientName("IsSealed") - @doc("Whether the blob is sealed.") + /** Whether the blob is sealed. */ Sealed?: boolean; - @doc("The rehydrate priority of the blob.") + /** The rehydrate priority of the blob. */ RehydratePriority?: RehydratePriority; - @doc("The last access time of the blob.") + /** The last access time of the blob. */ @encode("date-time-rfc1123") LastAccessTime?: utcDateTime; @clientName("ImmutabilityPolicyExpiresOn") - @doc("The immutability policy until time of the blob.") + /** The immutability policy until time of the blob. */ @encode("date-time-rfc1123") ImmutabilityPolicyUntilDate?: utcDateTime; - @doc("The immutability policy mode of the blob.") + /** The immutability policy mode of the blob. */ ImmutabilityPolicyMode?: BlobImmutabilityPolicyMode; - @doc("Whether the blob is under legal hold.") + /** Whether the blob is under legal hold. */ LegalHold?: boolean; } -@doc("The immutability policy mode.") +/** The immutability policy mode. */ enum BlobImmutabilityPolicyMode { - @doc("The immutability policy is mutable.") + /** The immutability policy is mutable. */ Mutable, - @doc("The immutability policy is locked.") + /** The immutability policy is locked. */ Locked, - @doc("The immutability policy is unlocked.") + /** The immutability policy is unlocked. */ Unlocked } -@doc("The blob type.") +/** The blob type. */ enum BlobType { - @doc("The blob is a block blob.") + /** The blob is a block blob. */ BlockBlob, - @doc("The blob is a page blob.") + /** The blob is a page blob. */ PageBlob, - @doc("The blob is an append blob.") + /** The blob is an append blob. */ AppendBlob } -@doc("The rehydrate priority.") +/** The rehydrate priority. */ enum RehydratePriority { - @doc("The rehydrate priority is high.") + /** The rehydrate priority is high. */ High, - @doc("The rehydrate priority is standard.") + /** The rehydrate priority is standard. */ Standard } -@doc("The blob metadata.") +/** The blob metadata. */ model BlobMetadata is Record { // @xml.attribute(true) Encrypted: string; } -@doc("The blob tags.") +/** The blob tags. */ model BlobTag { - @doc("The key of the tag.") + /** The key of the tag. */ Key: string; - @doc("The value of the tag.") + /** The value of the tag. */ Value: string; } -@doc("The object replication metadata.") +/** The object replication metadata. */ model ObjectReplicationMetadata is Record; /// Service Properties -@doc("The service properties.") +/** The service properties. */ model StorageServiceProperties { - @doc("The logging properties.") + /** The logging properties. */ Logging?: Logging; - @doc("The hour metrics properties.") + /** The hour metrics properties. */ HourMetrics?: Metrics; - @doc("The minute metrics properties.") + /** The minute metrics properties. */ MinuteMetrics?: Metrics; - @doc("The CORS properties.") + /** The CORS properties. */ Cors?: CorsRule[]; - @doc("The default service version.") + /** The default service version. */ DefaultServiceVersion?: string; - @doc("The delete retention policy.") + /** The delete retention policy. */ DeleteRetentionPolicy?: RetentionPolicy; - @doc("The static website properties.") + /** The static website properties. */ StaticWebsite?: StaticWebsite; } -@doc("The static website properties.") +/** The static website properties. */ model StaticWebsite { - @doc("The index document.") + /** The index document. */ IndexDocument?: string; - @doc("The error document.") + /** The error document. */ ErrorDocument?: string; } -@doc("The CORS rule.") +/** The CORS rule. */ model CorsRule { - @doc("The allowed origins.") + /** The allowed origins. */ AllowedOrigins: string; - @doc("The allowed methods.") + /** The allowed methods. */ AllowedMethods: string; - @doc("The allowed headers.") + /** The allowed headers. */ AllowedHeaders: string; - @doc("The exposed headers.") + /** The exposed headers. */ ExposedHeaders: string; - @doc("The maximum age in seconds.") + /** The maximum age in seconds. */ MaxAgeInSeconds: int32; } -@doc("The metrics properties.") +/** The metrics properties. */ model Metrics { - @doc("The version of the metrics properties.") + /** The version of the metrics properties. */ Version?: string; - @doc("Whether it is enabled.") + /** Whether it is enabled. */ Enabled: boolean; - @doc("Whether to include API in the metrics.") + /** Whether to include API in the metrics. */ IncludeAPIs?: boolean; - @doc("The retention policy of the metrics.") + /** The retention policy of the metrics. */ RetentionPolicy?: RetentionPolicy; - @doc("The service properties of the metrics.") + /** The service properties of the metrics. */ ServiceProperties?: MetricsServiceProperties; } -@doc("The metrics service properties.") +/** The metrics service properties. */ model MetricsServiceProperties { - @doc("The hour metrics properties.") + /** The hour metrics properties. */ HourMetrics: MetricsProperties; - @doc("The minute metrics properties.") + /** The minute metrics properties. */ MinuteMetrics: MetricsProperties; } -@doc("The metrics properties.") +/** The metrics properties. */ model MetricsProperties { - @doc("Whether to include API in the metrics.") + /** Whether to include API in the metrics. */ Enabled: boolean; - @doc("The version of the metrics properties.") + /** The version of the metrics properties. */ Version: string; - @doc("The retention policy of the metrics.") + /** The retention policy of the metrics. */ RetentionPolicy: RetentionPolicy; } -@doc("The logging properties.") +/** The logging properties. */ model Logging { - @doc("The version of the logging properties.") + /** The version of the logging properties. */ Version: string; - @doc("Whether delete operation is logged.") + /** Whether delete operation is logged. */ Delete: boolean; - @doc("Whether read operation is logged.") + /** Whether read operation is logged. */ Read: boolean; - @doc("Whether write operation is logged.") + /** Whether write operation is logged. */ Write: boolean; - @doc("The retention policy of the logs.") + /** The retention policy of the logs. */ RetentionPolicy: RetentionPolicy; } -@doc("The retention policy.") +/** The retention policy. */ model RetentionPolicy { - @doc("Whether to enable the retention policy.") + /** Whether to enable the retention policy. */ Enabled: boolean; - @doc("The number of days to retain the logs.") + /** The number of days to retain the logs. */ Days: int32; - @doc("Whether to allow permanent delete.") + /** Whether to allow permanent delete. */ AllowPermanentDelete: boolean; } // List Blobs -@doc("An enumeration of blobs.") +/** An enumeration of blobs. */ model ListBlobsFlatSegmentResponse { - @doc("The service endpoint.") + /** The service endpoint. */ ServiceEndpoint: string; // TODO: XML Attribute - @doc("The container name.") + /** The container name. */ ContainerName: string; // TODO: XML Attribute - @doc("The prefix of the blobs.") + /** The prefix of the blobs. */ Prefix?: string; - @doc("The marker of the blobs.") + /** The marker of the blobs. */ Marker?: string; - @doc("The max results of the blobs.") + /** The max results of the blobs. */ MaxResults?: int32; - @doc("The blob segment.") + /** The blob segment. */ Segment: BlobItem[]; // TODO: XML Serialization - @doc("The next marker of the blobs.") + /** The next marker of the blobs. */ NextMarker?: string; } diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 6bfe0caef91e..08633cfbab02 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -17,9 +17,7 @@ using Azure.ClientGenerator.Core; @route("/?restype=service&comp=properties") interface BlobServiceProperties { - /** - Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. - */ + /** Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. */ @put @operationId("Service_SetProperties") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -243,32 +241,15 @@ interface BlobServiceContainer { ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; - /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ - @clientName("LeaseDuration") - @header `x-ms-lease-duration`: LeaseDuration; - /** Lease state of the container. */ - @clientName("LeaseState") - @header `x-ms-lease-state`: LeaseState; - /** The lease status of the container. */ - @clientName("LeaseStatus") - @header `x-ms-lease-status`: LeaseStatus; - /** The public access setting for the container. */ - @header `x-ms-blob-public-access`: PublicAccessType; - /** Indicates whether the container has an immutability policy set on it. */ - @clientName("HasImmutabilityPolicy") - @header `x-ms-has-immutability-policy`: boolean; - /** Indicates whether the container has a legal hold. */ - @clientName("HasLegalHold") - @header `x-ms-has-legal-hold`: boolean; - /** The default encryption scope for the container. */ - @clientName("DefaultEncryptionScope") - @header `x-ms-default-encryption-scope`: string; - /** Indicates whether the container's default encryption scope can be overriden. */ - @clientName("DenyEncryptionScopeOverride") - @header `x-ms-deny-encryption-scope-override`: boolean; - /** Indicates whether version level worm is enabled on a container */ - @clientName("IsImmutableStorageWithVersioningEnabled") - @header `x-ms-immutable-storage-with-versioning-enabled`: boolean; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...PublicAccessResponseHeader; + ...HasImmutabilityPolicyResponseHeader; + ...HasLegalHoldResponseHeader; + ...DefaultEncryptionScopeResponseHeader; + ...DenyEncryptionScopeOverrideResponseHeader; + ...IsImmutableStorageWithVersioningEnabledResponseHeader; } | StorageError; /** operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection */ @@ -337,8 +318,7 @@ interface BlobServiceContainerAccessPolicy { @statusCode statusCode: 200; @body body: SignedIdentifiers; // TODO: XML - /** Indicated whether data in the container may be accessed publicly and the level of access */ - @header `x-ms-blob-public-access`: PublicAccessType; + ...PublicAccessResponseHeader; ...ETagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; @@ -493,8 +473,7 @@ interface ContainerLeaseService { ): { @statusCode statusCode: 201; - /** The lease ID specified in the request or a generated one if not specified. */ - @header `x-ms-lease-id`: string; + ...LeaseIdResponseHeader; ...ETagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; @@ -548,8 +527,7 @@ interface ContainerRenewLeaseService { ...IfUnmodifiedSince; ): { @statusCode statusCode: 200; - /** The lease ID specified in the request or a generated one if not specified. */ - @header `x-ms-lease-id`: string; + ...LeaseIdResponseHeader; ...ETagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; @@ -576,12 +554,10 @@ interface ConatinerBreakLeaseService { ...LeaseBreakPeriod; ): { @statusCode statusCode: 202; - /** The lease time remaining on the container. */ - @header `x-ms-lease-time`: int32; + ...LeaseTimeResponseHeader; ...ETagResponseHeader; ...LastModifiedResponseHeader; - /** The lease ID specified in the request or a generated one if not specified. */ - @header `x-ms-lease-id`: string; + ...LeaseIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -605,12 +581,10 @@ interface ContainerChangeLeaseService { ...IfUnmodifiedSince; ): { @statusCode statusCode: 200; - /** The lease ID specified in the request or a generated one if not specified. */ - @header `x-ms-lease-id`: string; + ...LeaseIdResponseHeader; ...ETagResponseHeader; ...LastModifiedResponseHeader; - /** The lease time remaining on the container. */ - @header `x-ms-lease-time`: int64; + ...LeaseTimeResponseHeader; ...ClientRequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; @@ -687,12 +661,8 @@ interface ContainerAccountInfoService { ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; - /** Identifies the sku name of the account. */ - @clientName("SkuName") - @header `x-ms-sku-name`: SkuName; - /** Identifies the account kind. */ - @clientName("AccountKind") - @header `x-ms-account-kind`: AccountKind; + ...SkuNameResponseHeader; + ...AccountKindResponseHeader; } | StorageError; } @@ -731,9 +701,7 @@ interface BlobService { // TODO: x-ms-or headers ...LastModifiedResponseHeader; ...CreationTimeResponseHeader; - /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ - @clientName("ObjectReplicationPolicyId") - @header `x-ms-or-policy-id`: string; + ...ObjectReplicationPolicyIdResponseHeader; ...ContentRangeResponseHeader; ...ContentMD5ResponseHeader; ...ContentEncodingResponseParameter; @@ -741,66 +709,30 @@ interface BlobService { ...ContentDispositionResponseHeader; ...ContentLanguageResponseHeader; ...BlobSequenceNumberResponseHeader; - /** The type of the blob. */ - @clientName("BlobType") - @header `x-ms-blob-type`: BlobType; - /** 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. */ - @clientName("CopyCompletionTime") - @encode("date-time-rfc1123") - @header `x-ms-copy-completion-time`: utcDateTime; - /** 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 */ - @clientName("CopyStatusDescription") - @header `x-ms-copy-status-description`: string; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; ...CopyIdResponseHeader; - /** 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 */ - @clientName("CopyProgress") - @header `x-ms-copy-progress`: string; + ...CopyProgressResponseHeader; ...CopyStatusResponseHeader; - /** 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. */ - @clientName("CopySource") - @header `x-ms-copy-source`: string; - /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ - @clientName("LeaseDuration") - @header `x-ms-lease-duration`: LeaseDuration; - /** Lease state of the blob. */ - @clientName("LeaseState") - @header `x-ms-lease-state`: LeaseState; - /** The lease status of the blob. */ - @clientName("LeaseStatus") - @header `x-ms-lease-status`: LeaseStatus; + ...CopySourceResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; ...VersionResponseHeader; ...VersionIdResponseHeader; - /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ - @clientName("IsCurrentVersion") - @header `x-ms-is-current-version`: boolean; - /** Indicates that the service supports requests for partial blob content. */ - @header `Accept-Ranges`: string; - /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ - @clientName("BlobCommittedBlockCount") - @header `x-ms-blob-committed-block-count`: int32; + ...IsCurrentVersionResponseHeader; + ...AcceptRangesResponseHeader; + ...BlobCommittedBlockCountResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; - /** The number of tags associated with the blob */ - @clientName("TagCount") - @header `x-ms-tag-count`: int64; - /** If this blob has been sealed */ - @clientName("IsSealed") - @header `x-ms-blob-sealed`: boolean; - /** UTC date/time value generated by the service that indicates the time at which the blob was last read or written to */ - @clientName("LastAccessed") - @encode("date-time-rfc1123") - @header `x-ms-last-access-time`: utcDateTime; - /** UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. */ - @clientName("ImmutabilityPolicyExpiresOn") - @encode("date-time-rfc1123") - @header `x-ms-immutability-policy-until-date`: utcDateTime; - /** Indicates immutability policy mode. */ - @clientName("ImmutabilityPolicyMode") - @header `x-ms-immutability-policy-mode`: BlobImmutabilityPolicyMode; - /** Indicates if a legal hold is present on the blob. */ - @clientName("LegalHold") - @header `x-ms-legal-hold`: boolean; + ...TagCountResponseHeader; + ...IsSealedResponseHeader; + ...LastAccessedResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + ...LegalHoldResponseHeader; ...ContentTypeResponseHeader; ...ContentLengthResponseHeader; ...ETagResponseHeader; @@ -812,9 +744,7 @@ interface BlobService { // TODO: x-ms-or headers ...LastModifiedResponseHeader; ...CreationTimeResponseHeader; - /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ - @clientName("ObjectReplicationPolicyId") - @header `x-ms-or-policy-id`: string; + ...ObjectReplicationPolicyIdResponseHeader; ...ContentRangeResponseHeader; ...ContentMD5ResponseHeader; ...ContentEncodingResponseParameter; @@ -822,66 +752,30 @@ interface BlobService { ...ContentDispositionResponseHeader; ...ContentLanguageResponseHeader; ...BlobSequenceNumberResponseHeader; - /** The type of the blob. */ - @clientName("BlobType") - @header `x-ms-blob-type`: BlobType; - /** 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. */ - @clientName("CopyCompletionTime") - @encode("date-time-rfc1123") - @header `x-ms-copy-completion-time`: utcDateTime; - /** 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 */ - @clientName("CopyStatusDescription") - @header `x-ms-copy-status-description`: string; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; ...CopyIdResponseHeader; - /** 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 */ - @clientName("CopyProgress") - @header `x-ms-copy-progress`: string; + ...CopyProgressResponseHeader; ...CopyStatusResponseHeader; - /** 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. */ - @clientName("CopySource") - @header `x-ms-copy-source`: string; - /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ - @clientName("LeaseDuration") - @header `x-ms-lease-duration`: LeaseDuration; - /** Lease state of the blob. */ - @clientName("LeaseState") - @header `x-ms-lease-state`: LeaseState; - /** The lease status of the blob. */ - @clientName("LeaseStatus") - @header `x-ms-lease-status`: LeaseStatus; + ...CopySourceResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; ...VersionResponseHeader; ...VersionIdResponseHeader; - /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ - @clientName("IsCurrentVersion") - @header `x-ms-is-current-version`: boolean; - /** Indicates that the service supports requests for partial blob content. */ - @header `Accept-Ranges`: string; - /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ - @clientName("BlobCommittedBlockCount") - @header `x-ms-blob-committed-block-count`: int32; + ...IsCurrentVersionResponseHeader; + ...AcceptRangesResponseHeader; + ...BlobCommittedBlockCountResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; - /** The number of tags associated with the blob */ - @clientName("TagCount") - @header `x-ms-tag-count`: int64; - /** If this blob has been sealed */ - @clientName("IsSealed") - @header `x-ms-blob-sealed`: boolean; - /** UTC date/time value generated by the service that indicates the time at which the blob was last read or written to */ - @clientName("LastAccessed") - @encode("date-time-rfc1123") - @header `x-ms-last-access-time`: utcDateTime; - /** UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. */ - @clientName("ImmutabilityPolicyExpiresOn") - @encode("date-time-rfc1123") - @header `x-ms-immutability-policy-until-date`: utcDateTime; - /** Indicates immutability policy mode. */ - @clientName("ImmutabilityPolicyMode") - @header `x-ms-immutability-policy-mode`: BlobImmutabilityPolicyMode; - /** Indicates if a legal hold is present on the blob. */ - @clientName("LegalHold") - @header `x-ms-legal-hold`: boolean; + ...TagCountResponseHeader; + ...IsSealedResponseHeader; + ...LastAccessedResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + ...LegalHoldResponseHeader; ...ContentTypeResponseHeader; ...ContentLengthResponseHeader; ...ETagResponseHeader; @@ -915,42 +809,19 @@ interface BlobService { ...LastModifiedResponseHeader; ...CreationTimeResponseHeader; - /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ - @clientName("ObjectReplicationPolicyId") - @header `x-ms-or-policy-id`: string; - /** The type of the blob. */ - @clientName("BlobType") - @header `x-ms-blob-type`: BlobType; - /** 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. */ - @clientName("CopyCompletionTime") - @encode("date-time-rfc1123") - @header `x-ms-copy-completion-time`: utcDateTime; - /** 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 */ - @clientName("CopyStatusDescription") - @header `x-ms-copy-status-description`: string; + ...ObjectReplicationPolicyIdResponseHeader; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; ...CopyIdResponseHeader; - /** 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 */ - @clientName("CopyProgress") - @header `x-ms-copy-progress`: string; + ...CopyProgressResponseHeader; ...CopyStatusResponseHeader; - /** 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. */ - @clientName("CopySource") - @header `x-ms-copy-source`: string; - /** Included if the blob is incremental copy blob. */ - @clientName("IsIncrementalCopy") - @header `x-ms-incremental-copy`: 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. */ - @clientName("DestinationSnapshot") - @header `x-ms-copy-destination-snapshot`: string; - /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ - @clientName("LeaseDuration") - @header `x-ms-lease-duration`: LeaseDuration; - /** Lease state of the container. */ - @clientName("LeaseState") - @header `x-ms-lease-state`: LeaseState; - /** The lease status of the container. */ - @clientName("LeaseStatus") - @header `x-ms-lease-status`: LeaseStatus; + ...CopySourceResponseHeader; + ...IsIncrementalCopyResponseHeader; + ...DestinationSnapshotResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; ...ContentTypeResponseHeader; ...ContentLengthResponseHeader; ...ETagResponseHeader; @@ -964,58 +835,25 @@ interface BlobService { ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; - /** Indicates that the service supports requests for partial blob content. */ - @header `Accept-Ranges`: string; - /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ - @clientName("BlobCommittedBlockCount") - @header `x-ms-blob-committed-block-count`: int32; + ...AcceptRangesResponseHeader; + ...BlobCommittedBlockCountResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; - /** 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. */ - @clientName("AccessTier") - @header `x-ms-access-tier`: AccessTier; - /** 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. */ - @clientName("AccessTierInferred") - @header `x-ms-access-tier-inferred`: 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. */ - @clientName("ArchiveStatus") - @header `x-ms-archive-status`: ArchiveStatus; - /** The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set. */ - @encode("date-time-rfc1123") - @clientName("AccessTierChangeTime") - @header `x-ms-access-tier-change-time`: utcDateTime; + ...AccessTierResponseHeader; + ...AccessTierInferredResponseHeader; + ...ArchiveStatusResponseHeader; + ...AccessTierChangeTimeResponseHeader; ...VersionIdResponseHeader; - /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ - @clientName("IsCurrentVersion") - @header `x-ms-is-current-version`: boolean; - /** The number of tags associated with the blob */ - @clientName("TagCount") - @header `x-ms-tag-count`: int64; - /** The time this blob will expire. */ - @clientName("ExpiresOn") - @encode("date-time-rfc1123") - @header `x-ms-expiry-time`: utcDateTime; - /** If this blob has been sealed */ - @clientName("IsSealed") - @header `x-ms-blob-sealed`: boolean; - /** If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard. */ - @clientName("RehydratePriority") - @header `x-ms-rehydrate-priority`: RehydratePriority; - /** UTC date/time value generated by the service that indicates the time at which the blob was last read or written to */ - @clientName("LastAccessed") - @encode("date-time-rfc1123") - @header `x-ms-last-access-time`: utcDateTime; - /** UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. */ - @clientName("ImmutabilityPolicyExpiresOn") - @encode("date-time-rfc1123") - @header `x-ms-immutability-policy-until-date`: utcDateTime; - /** Indicates immutability policy mode. */ - @clientName("ImmutabilityPolicyMode") - @header `x-ms-immutability-policy-mode`: BlobImmutabilityPolicyMode; - /** Indicates if a legal hold is present on the blob. */ - @clientName("LegalHold") - @header `x-ms-legal-hold`: boolean; + ...IsCurrentVersionResponseHeader; + ...TagCountResponseHeader; + ...ExpiresOnResponseHeader; + ...IsSealedResponseHeader; + ...RehydratePriorityResponseHeader; + ...LastAccessedResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + ...LegalHoldResponseHeader; } | StorageError; @delete From 064a4bb48dab32d161430cfaa034cd50abe875a3 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Fri, 22 Mar 2024 00:17:12 -0400 Subject: [PATCH 018/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/models.tsp | 42 +++++++++++ .../storage/Microsoft.BlobStorage/routes.tsp | 75 +++++++++++++++++++ 2 files changed, 117 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 9167b2f52855..0b038796709b 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -21,6 +21,48 @@ model StorageError { /// Parameters +/** The previous snapshot parameter. */ +model PrevSnapshotParameter { + /** 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; +} + +/** The previous snapshot URL parameter. */ +model PrevSnapshotUrlParameter { + /** 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 + @clientName("prevSnapshotUrl") + `x-ms-previous-snapshot-url`: string; +} + +/** Represnets a page list. */ +model PageList { + /** The page ranges. */ + PageRange: PageRange[]; + + /** The clear ranges. */ + ClearRange: ClearRange[]; +} + +/** The page range. */ +model PageRange { + /** The start of the byte range. */ + Start: int64; + + /** The end of the byte range. */ + End: int64; +} + +/** The clear range. */ +model ClearRange { + /** The start of the byte range. */ + Start: int64; + + /** The end of the byte range. */ + End: int64; +} + /** The is immutable storage with versioning enable response header. */ model IsImmutableStorageWithVersioningEnabledResponseHeader { /** Indicates whether version level worm is enabled on a container */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 08633cfbab02..e70dbe3b25f6 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -1974,3 +1974,78 @@ interface BlobPageUpdateFromUrlService { ...EncryptionScopeResponseHeader; } | StorageError; } + +@route("/{containerName}/{blob}?comp=pagelist") +interface PageBlobListService { + /** The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob. */ + @get + @operationId("PageBlob_GetPageRanges") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + getPageRanges( + ...ContainerNameParameter; + ...BlobNameParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...SnapshotParameter; + ...RangeParameter; + ...LeaseIdOptional; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ): { + @statusCode statusCode: 200; + @body body: PageList; // TODO: XML + + ...LastModifiedResponseHeader; + ...ETagResponseHeader; + ...BlobContentLengthResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=pagelist&diff") +interface PageBlobDiffService { + /** The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob or snapshot of a page blob. */ + @get + @operationId("PageBlob_GetPageRangesDiff") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + getPageRangesDiff( + ...ContainerNameParameter; + ...BlobNameParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...SnapshotParameter; + ...TimeoutParameter; + ...PrevSnapshotParameter; + ...PrevSnapshotUrlParameter; + ...RangeParameter; + ...LeaseIdOptional; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ): { + @statusCode statusCode: 200; + @body body: PageList; // TODO: XML + + ...LastModifiedResponseHeader; + ...ETagResponseHeader; + ...BlobContentLengthResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} From 22e92709bcb38ef8ab7311ca09e3e6a8c7e065ad Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Fri, 22 Mar 2024 11:31:22 -0400 Subject: [PATCH 019/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/models.tsp | 55 +++++ .../storage/Microsoft.BlobStorage/routes.tsp | 232 ++++++++++++++++++ 2 files changed, 287 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 0b038796709b..36a23d103a27 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -21,6 +21,61 @@ model StorageError { /// Parameters +/** The blob append offset response header. */ +model BlobAppendOffsetResponseHeader { + /** This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes. */ + @header + @clientName("BlobAppendOffset") + `x-ms-blob-append-offset`: int64; +} + +/** The blob condition append position parameter. */ +model 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 + @clientName("appendPosition") + `x-ms-blob-condition-appendpos`: int64; +} + +/** The blob condition max size parameter. */ +model 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 + @clientName("maxSize") + `x-ms-blob-condition-maxsize`: int64; +} + +/** The sequence number action parameter. */ +model 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 */ + @clientName("sequenceNumberAction") + @header `x-ms-sequence-number-action`: SequenceNumberActionType; +} + +/** The sequence number actions. */ +enum SequenceNumberActionType { + /** Increment the sequence number. */ + increment, + /** Set the maximum for the sequence number. */ + max, + /** Update the sequence number. */ + update +} + +/** The sequence number parameter. */ +model 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. */ + @clientName("blobSequenceNumber") + @header `x-ms-blob-sequence-number`: int64; +} + +/** The blob content length required parameter. */ +model 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. */ + @clientName("blobContentLength") + @header `x-ms-blob-content-length`: int64; +} + /** The previous snapshot parameter. */ model PrevSnapshotParameter { /** 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. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index e70dbe3b25f6..4ee6fe620113 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -2049,3 +2049,235 @@ interface PageBlobDiffService { ...DateResponseHeader; } | StorageError; } + +@route("/{containerName}/{blob}?comp=properties&Resize") +interface PageBlobResizeService { + /** The Resize operation increases the size of the page blob to the specified size. */ + @put + @operationId("PageBlob_Resize") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + resize( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LeaseIdOptional; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...BlobContentLengthRequiredParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=properties&UpdateSequenceNumber") +interface PageBlobUpdateSequenceNumberService { + /** 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. */ + @put + @operationId("PageBlob_UpdateSequenceNumber") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + updateSequenceNumber( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LeaseIdOptional; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...SequenceNumberActionParameter; + ...SequenceNumberParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=incrementalcopy") +interface PageBlobIncrementalCopyService { + /** 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. */ + @put + @operationId("PageBlob_CopyIncremental") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + incrementalCopy( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...LeaseIdOptional; + ...CopySourceParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 202; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...CopyIdResponseHeader; + ...CopyStatusResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=appendblock") +interface AppendBlobAppendBlockService { + /** The Append Block operation commits a new block of data to the end of an append blob. */ + @put + @operationId("AppendBlob_AppendBlock") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + appendBlock( + /** The data to upload. */ + @body body: bytes; + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentLengthHeader; + ...ContentMD5Parameter; + ...ContentCrc64Parameter; + ...LeaseIdOptional; + ...BlobConditionMaxSizeParameter; + ...BlobConditionAppendPosParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 201; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...BlobAppendOffsetResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=appendblock&fromUrl") +interface AppendBlockAppendBlockFromUrlService { + /** 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. */ + @put + @operationId("AppendBlob_AppendBlockFromURL") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + appendBlockFromUrl( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentLengthHeader; + ...SourceUrlParameter; + ...SourceRangeParameter; + ...SourceContentMD5Parameter; + ...SourceContentCrc64Parameter; + ...LeaseIdOptional; + ...BlobConditionMaxSizeParameter; + ...BlobConditionAppendPosParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...CopySourceAuthorizationParameter; + ): { + @statusCode statusCode: 201; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...BlobAppendOffsetResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=seal") +interface AppendBlobSealService { + /** The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version 2019-12-12 version or later.*/ + @put + @operationId("AppendBlob_Seal") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + seal( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LeaseIdOptional; + ...BlobConditionAppendPosParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200; + ...ETagResponseHeader; + ...LastModifiedResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...IsSealedResponseHeader; + } | StorageError; +} From c42b7aabb464ccf5ae0f99ddc9262c705f06d0c6 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Fri, 22 Mar 2024 12:55:02 -0400 Subject: [PATCH 020/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/models.tsp | 134 +++++++++++++++++ .../Microsoft.BlobStorage/package-lock.json | 138 +++++++++--------- .../Microsoft.BlobStorage/package.json | 12 +- .../storage/Microsoft.BlobStorage/routes.tsp | 116 +++++++++++++++ 4 files changed, 325 insertions(+), 75 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 36a23d103a27..f2ac716cee35 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -21,6 +21,140 @@ model StorageError { /// Parameters +/** The blob tags body parameter. */ +model BlobTagsBodyParameter { + /** The blob tags. */ + @body + Tags: BlobTags; +} + +/** Represents blob tags. */ +model BlobTags { + // TODO: XML + /** Represents the blob tags. */ + BlobTagSet: BlobTag[]; +} + +/** The blob content MD5 response header. */ +model 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 */ + @clientName("BlobContentMD5") + @header `x-ms-blob-content-md5`: string; +} + +/** The query request body parameter. */ +model QueryRequestParameter { + /** The query request */ + @body + queryRequest: QueryRequest; +} + +/** Groups the set of query request settings. */ +model QueryRequest { + // TODO: XML + /** Required. The type of the provided query expression. */ + QueryType: QueryType; + + /** The query expression in SQL. The maximum size of the query expression is 256KiB. */ + Expression: string; + + /** The input serialization settings. */ + InputSerialization?: QuerySerialization; + + /** The output serialization settings. */ + OutputSerialization?: QuerySerialization; +} + +/** The query serialization settings. */ +model QuerySerialization { + /** The query format. */ + Format: QueryFormat; + + /** The query format type. */ + QueryType: QueryFormatType; +} + +/** The query format settings. */ +model QueryFormat { + /** The query type. */ + Type: QueryFormatType; + + /** The delimited text configuration. */ + DelimitedTextConfiguration?: DelimitedTextConfiguration; + + /** The JSON text configuration. */ + JsonTextConfiguration?: JsonTextConfiguration; + + /** The Apache Arrow configuration. */ + ArrowConfiguration?: ArrowConfiguration; + + /** The Parquet configuration. */ + ParquetConfiguration?: ParquetConfiguration; +} + +/** Represents the delimited text configuration. */ +model DelimitedTextConfiguration { + /** The string used to separate columns. */ + ColumnSeparator?: string; + + /** The string used to quote a specific field. */ + FieldQuote?: string; + + /** The string used to separate records. */ + RecordSeparator?: string; + + /** The string used to escape a quote character in a field. */ + EscapeChar?: string; + + /** Represents whether the data has headers. */ + HeadersPresent?: boolean; +} + +/** Represents the JSON text configuration. */ +model JsonTextConfiguration { + /** The string used to separate records. */ + RecordSeparator?: string; +} + +/** Represents the Apache Arrow configuration. */ +model ArrowConfiguration { + /** The Apache Arrow schema */ + Schema: ArrowField[]; +} + +/** Represents an Apache Arrow field. */ +model ArrowField { + /** The arrow field type. */ + Type: string; + /** The arrow field name. */ + Name?: string; + /** The arrow field precision. */ + Precision?: int32; + /** The arrow field scale. */ + Scale?: int32; +} + +/** Represents the Parquet configuration. */ +model ParquetConfiguration is Record; + +/** The query format type. */ +enum QueryFormatType { + /** The query format type is delimited. */ + delimited, + /** The query format type is JSON. */ + json, + /** The query format type is Apache Arrow. */ + arrow, + /** The query format type is Parquet. */ + parquet +} + +/** The query types. */ +enum QueryType { + /** The query type is SQL. */ + SQL, +} + /** The blob append offset response header. */ model BlobAppendOffsetResponseHeader { /** This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes. */ diff --git a/specification/storage/Microsoft.BlobStorage/package-lock.json b/specification/storage/Microsoft.BlobStorage/package-lock.json index e04a2a9254a4..56eae8c9c09b 100644 --- a/specification/storage/Microsoft.BlobStorage/package-lock.json +++ b/specification/storage/Microsoft.BlobStorage/package-lock.json @@ -8,61 +8,61 @@ "name": "Microsoft.BlobStorage", "version": "0.1.0", "dependencies": { - "@azure-tools/typespec-autorest": "^0.39.2", - "@azure-tools/typespec-azure-core": "^0.39.1", - "@azure-tools/typespec-client-generator-core": "^0.39.1", + "@azure-tools/typespec-autorest": "^0.40.0", + "@azure-tools/typespec-azure-core": "^0.40.0", + "@azure-tools/typespec-client-generator-core": "^0.40.0", "@typespec/compiler": "latest", - "@typespec/openapi": "^0.53.0", - "@typespec/openapi3": "^0.53.2", - "@typespec/rest": "^0.53.0" + "@typespec/openapi": "^0.54.0", + "@typespec/openapi3": "^0.54.0", + "@typespec/rest": "^0.54.0" } }, "node_modules/@azure-tools/typespec-autorest": { - "version": "0.39.2", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.39.2.tgz", - "integrity": "sha512-sdYbYKv6uIktMqX573buyMoLiJMTCwk17DN/CeX0NPtmSx1SXLPh9stQFg2H/IMgVS8VmTlVeCYoSKR7krjsGg==", + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.40.0.tgz", + "integrity": "sha512-aMgJk0pudvg11zs/2dlUWPEsdK920NvTqGkbYhy+4UeJ1hEzMM3btOyujE/irhDlcZeEgDlaXQc+xiK/Vik71A==", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.39.1", - "@azure-tools/typespec-client-generator-core": "~0.39.0", - "@typespec/compiler": "~0.53.1", - "@typespec/http": "~0.53.0", - "@typespec/openapi": "~0.53.0", - "@typespec/rest": "~0.53.0", - "@typespec/versioning": "~0.53.0" + "@azure-tools/typespec-azure-core": "~0.40.0", + "@azure-tools/typespec-client-generator-core": "~0.40.0", + "@typespec/compiler": "~0.54.0", + "@typespec/http": "~0.54.0", + "@typespec/openapi": "~0.54.0", + "@typespec/rest": "~0.54.0", + "@typespec/versioning": "~0.54.0" } }, "node_modules/@azure-tools/typespec-azure-core": { - "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.39.1.tgz", - "integrity": "sha512-b1cN1HXTcEiKIRpk2EatFK/C4NReDaW2h4N3V4C5dxGeeLAnTa1jsQ6lwobH6Zo39CdrjazNXiSbcEq1UZ7kPw==", + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.40.0.tgz", + "integrity": "sha512-l5U47zXKYQKFbipRQLpjG4EwvPJg0SogdFEe5a3rRr7mUy8sWPkciHpngLZVOd2cKZQD5m7nqwfWL798I9TJnQ==", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.53.1", - "@typespec/http": "~0.53.0", - "@typespec/rest": "~0.53.0" + "@typespec/compiler": "~0.54.0", + "@typespec/http": "~0.54.0", + "@typespec/rest": "~0.54.0" } }, "node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.39.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.39.1.tgz", - "integrity": "sha512-EV3N6IN1i/hXGqYKNfXx6+2QAyZnG4IpC9RUk6fqwSQDWX7HtMcfdXqlOaK3Rz2H6BUAc9OnH+Trq/uJCl/RgA==", + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.40.0.tgz", + "integrity": "sha512-Nm/OfDtSWBr1lylISbXR37B9QKWlZHK1j4T8L439Y1v3VcvJsC/0F5PLemY0odHpOYZNwu2uevJjAeM5W56wlw==", "dependencies": { - "change-case": "~5.3.0", + "change-case": "~5.4.2", "pluralize": "^8.0.0" }, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.53.1", - "@typespec/http": "~0.53.0", - "@typespec/rest": "~0.53.0", - "@typespec/versioning": "~0.53.0" + "@typespec/compiler": "~0.54.0", + "@typespec/http": "~0.54.0", + "@typespec/rest": "~0.54.0", + "@typespec/versioning": "~0.54.0" } }, "node_modules/@babel/code-frame": { @@ -142,21 +142,21 @@ } }, "node_modules/@typespec/compiler": { - "version": "0.53.1", - "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.53.1.tgz", - "integrity": "sha512-qneMDvZsLaL8+3PXzwXMAqgE4YtkUPPBg4oXrbreYa5NTccuvgVaO4cfya/SzG4WePUnmDTbbrP5aWd+VzYwYA==", + "version": "0.54.0", + "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.54.0.tgz", + "integrity": "sha512-lxMqlvUq5m1KZUjg+IoM/gEwY+yeSjjnpUsz6wmzjK4cO9cIY4wPJdrZwe8jUc2UFOoqKXN3AK8N1UWxA+w9Dg==", "dependencies": { "@babel/code-frame": "~7.23.5", "ajv": "~8.12.0", - "change-case": "~5.3.0", + "change-case": "~5.4.2", "globby": "~14.0.0", "mustache": "~4.2.0", "picocolors": "~1.0.0", - "prettier": "~3.1.1", + "prettier": "~3.2.5", "prompts": "~2.4.2", - "semver": "^7.5.4", - "vscode-languageserver": "~9.0.0", - "vscode-languageserver-textdocument": "~1.0.8", + "semver": "^7.6.0", + "vscode-languageserver": "~9.0.1", + "vscode-languageserver-textdocument": "~1.0.11", "yaml": "~2.3.4", "yargs": "~17.7.2" }, @@ -169,33 +169,33 @@ } }, "node_modules/@typespec/http": { - "version": "0.53.0", - "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.53.0.tgz", - "integrity": "sha512-Hdwbxr6KgzmJdULbbcwWaSSrWlduuMuEVUVdlytxyo9K+aoUCcPl0thR5Ez2VRh02/IJl3xG4n5wXgOwWb3amA==", + "version": "0.54.0", + "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.54.0.tgz", + "integrity": "sha512-/hZd9pkjJh3ogOekyKzZnpVV2kXzxtWDiTt3Gekc6iHTGk/CE1JpRFts8xwXoI5d3FqYotfb4w5ztVw62WjOcA==", "peer": true, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.53.0" + "@typespec/compiler": "~0.54.0" } }, "node_modules/@typespec/openapi": { - "version": "0.53.0", - "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.53.0.tgz", - "integrity": "sha512-FRHb6Wi4Yf1HGm3EnhhXZ0Bw+EIPam6ptxRy7NDRxyMnzHsOphGcv8mDIZk6MPSy8xPasbFNwaRC1TXpxVhQBw==", + "version": "0.54.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.54.0.tgz", + "integrity": "sha512-QJkwq3whcqKb29ScMD5IQzqvDmPQyLAubRl82Zj6kVMCqabRwegOX9aN+K0083nci65zt9rflZbv9bKY5GRy/A==", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.53.0", - "@typespec/http": "~0.53.0" + "@typespec/compiler": "~0.54.0", + "@typespec/http": "~0.54.0" } }, "node_modules/@typespec/openapi3": { - "version": "0.53.2", - "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.53.2.tgz", - "integrity": "sha512-8uwU3iJbt+WN3WlT9VzC7DN8rzB727zr8BMwZ81XN1/sX8dOJB49F5UiK0L+ychvx15RZ96CvYPCFmmnsOeyCQ==", + "version": "0.54.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.54.0.tgz", + "integrity": "sha512-ryqa6iNWA3Vb2TcyTUD0NrRecGVY5MGaEuAdBJnnEEPcE6CSQY0j0dFZXzRLBUd4LiR332B4Y7Brkq6MjRdrNg==", "dependencies": { "yaml": "~2.3.4" }, @@ -203,34 +203,34 @@ "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.53.1", - "@typespec/http": "~0.53.0", - "@typespec/openapi": "~0.53.0", - "@typespec/versioning": "~0.53.0" + "@typespec/compiler": "~0.54.0", + "@typespec/http": "~0.54.0", + "@typespec/openapi": "~0.54.0", + "@typespec/versioning": "~0.54.0" } }, "node_modules/@typespec/rest": { - "version": "0.53.0", - "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.53.0.tgz", - "integrity": "sha512-aA75Ol2pRvUjtRqQvFHmFG52pkeif3m+tboLAT00AekTxOPZ3rqQmlE12ne4QF8KjgHA6denqH4f/XyDoRJOJQ==", + "version": "0.54.0", + "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.54.0.tgz", + "integrity": "sha512-F1hq/Per9epPJQ8Ey84mAtrgrZeLu6fDMIxNao1XlTfDEFZuYgFuCSyg0pyIi0Xg7KUBMvrvSv83WoF3mN2szw==", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.53.0", - "@typespec/http": "~0.53.0" + "@typespec/compiler": "~0.54.0", + "@typespec/http": "~0.54.0" } }, "node_modules/@typespec/versioning": { - "version": "0.53.0", - "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.53.0.tgz", - "integrity": "sha512-nrrLXCWPDrrClAfpCMzQ3YPTbKQmjPC3LSeMjq+wPiMq+1PW95ulOGD4QiCBop+4wKhMCJHnqqSzVauT1LjdvQ==", + "version": "0.54.0", + "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.54.0.tgz", + "integrity": "sha512-IlGpveOJ0WBTbn3w8nfzgSNhJWNd0+H+bo1Ljrjpeb9SFQmS8bX2fDf0vqsHVl50XgvKIZxgOpEXN5TmuzNnRw==", "peer": true, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.53.0" + "@typespec/compiler": "~0.54.0" } }, "node_modules/ajv": { @@ -292,9 +292,9 @@ } }, "node_modules/change-case": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.3.0.tgz", - "integrity": "sha512-Eykca0fGS/xYlx2fG5NqnGSnsWauhSGiSXYhB1kO6E909GUfo8S54u4UZNS7lMJmgZumZ2SUpWaoLgAcfQRICg==" + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.3.tgz", + "integrity": "sha512-4cdyvorTy/lViZlVzw2O8/hHCLUuHqp4KpSSP3DlauhFCf3LdnfF+p5s0EAhjKsU7bqrMzu7iQArYfoPiHO2nw==" }, "node_modules/cliui": { "version": "8.0.1", @@ -564,9 +564,9 @@ } }, "node_modules/prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "bin": { "prettier": "bin/prettier.cjs" }, diff --git a/specification/storage/Microsoft.BlobStorage/package.json b/specification/storage/Microsoft.BlobStorage/package.json index 9a31bdfe0195..5dc63ab1bcf9 100644 --- a/specification/storage/Microsoft.BlobStorage/package.json +++ b/specification/storage/Microsoft.BlobStorage/package.json @@ -3,13 +3,13 @@ "version": "0.1.0", "type": "module", "dependencies": { - "@azure-tools/typespec-autorest": "^0.39.2", - "@azure-tools/typespec-azure-core": "^0.39.1", - "@azure-tools/typespec-client-generator-core": "^0.39.1", + "@azure-tools/typespec-autorest": "^0.40.0", + "@azure-tools/typespec-azure-core": "^0.40.0", + "@azure-tools/typespec-client-generator-core": "^0.40.0", "@typespec/compiler": "latest", - "@typespec/openapi": "^0.53.0", - "@typespec/openapi3": "^0.53.2", - "@typespec/rest": "^0.53.0" + "@typespec/openapi": "^0.54.0", + "@typespec/openapi3": "^0.54.0", + "@typespec/rest": "^0.54.0" }, "private": true } diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 4ee6fe620113..20000ee4d4a8 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -2281,3 +2281,119 @@ interface AppendBlobSealService { ...IsSealedResponseHeader; } | StorageError; } + +@route("/{containerName}/{blob}?comp=query") +interface BlobQueryService { + /** The Query operation enables users to select/project on blob data by providing simple query expressions. */ + @post + @operationId("Blob_Query") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + query( + ...QueryRequestParameter; + ...ContainerNameParameter; + ...BlobNameParameter; + ...SnapshotParameter; + ...TimeoutParameter; + ...LeaseIdOptional; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...IfModifiedSince; + ...IfUnmodifiedSince; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ): { + @statusCode statusCode: 200 | 206; + @body body: bytes; + // TODO: MetadataResponseHeader; + + ...LastModifiedResponseHeader; + ...ContentLengthResponseHeader; + ...ContentTypeResponseHeader; + ...ContentRangeResponseHeader; + ...ETagResponseHeader; + ...ContentMD5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopySourceResponseHeader; + ...CopyStatusResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...AcceptRangesResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...BlobContentMD5ResponseHeader; + } | StorageError; +} + +@route("/{containerName}/{blob}?comp=tags") +interface BlobTagsService { + + /** The Get Blob Tags operation enables users to get tags on a blob. */ + @get + @operationId("Blob_GetTags") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + getTags( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...SnapshotParameter; + ...VersionIdParameter; + ...LeaseIdOptional; + ...IfTagsParameter; + ): { + @statusCode statusCode: 200; + @body body: BlobTags; // TODO: XML + + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; + + /** The Set Tags operation enables users to set tags on a blob. */ + @put + @operationId("Blob_SetTags") + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + setTags( + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ApiVersionParameter; + ...ClientRequestIdParameter; + ...VersionIdParameter; + ...LeaseIdOptional; + ...ContentMD5Parameter; + ...ContentCrc64Parameter; + ...IfTagsParameter; + ...BlobTagsBodyParameter; + ): { + @statusCode statusCode: 204; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; +} From daee53781e26613c4a5e33b366f0716d57dbfcdc Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Mon, 25 Mar 2024 16:50:55 -0400 Subject: [PATCH 021/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/main.tsp | 1 + .../storage/Microsoft.BlobStorage/models.tsp | 3351 +++++++++-------- .../Microsoft.BlobStorage/package-lock.json | 13 +- .../Microsoft.BlobStorage/package.json | 4 +- .../storage/Microsoft.BlobStorage/routes.tsp | 453 ++- .../stable/0000-00-00/openapi.json | 114 + 6 files changed, 2076 insertions(+), 1860 deletions(-) create mode 100644 specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index da3b72d07b41..dba69c7faf55 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -1,6 +1,7 @@ import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; +import "./routes.tsp"; using TypeSpec.Http; using TypeSpec.Rest; diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index f2ac716cee35..359ec2b2ee2a 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -1,5 +1,6 @@ import "@typespec/rest"; import "@typespec/http"; +import "@typespec/xml"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-client-generator-core"; @@ -16,2128 +17,2216 @@ namespace Microsoft.BlobStorage; /** The error response. */ model StorageError { /** The error message. */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API" Message: string; } -/// Parameters - -/** The blob tags body parameter. */ -model BlobTagsBodyParameter { - /** The blob tags. */ - @body - Tags: BlobTags; -} +/// Models -/** Represents blob tags. */ -model BlobTags { - // TODO: XML - /** Represents the blob tags. */ - BlobTagSet: BlobTag[]; +/** 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[]; } -/** The blob content MD5 response header. */ -model 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 */ - @clientName("BlobContentMD5") - @header `x-ms-blob-content-md5`: string; -} +/** Represents an array of signed identifiers */ +model SignedIdentifiers is Array; -/** The query request body parameter. */ -model QueryRequestParameter { - /** The query request */ - @body - queryRequest: QueryRequest; +/** The signed identifier. */ +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; } -/** Groups the set of query request settings. */ -model QueryRequest { - // TODO: XML - /** Required. The type of the provided query expression. */ - QueryType: QueryType; +/** The result of a Filter Blobs API call */ +model FilterBlobSegment { + /** The service endpoint. */ + @Xml.attribute + @Xml.name("ServiceEndpoint") serviceEndpoint: string; - /** The query expression in SQL. The maximum size of the query expression is 256KiB. */ - Expression: string; + /** The filter for the blobs. */ + @Xml.name("Where") where: string; - /** The input serialization settings. */ - InputSerialization?: QuerySerialization; + /** The blob segment. */ + @Xml.name("Blobs") blobs: FilterBlobItem[]; - /** The output serialization settings. */ - OutputSerialization?: QuerySerialization; + /** The next marker of the blobs. */ + @Xml.name("NextMarker") nextMarker?: string; } -/** The query serialization settings. */ -model QuerySerialization { - /** The query format. */ - Format: QueryFormat; - - /** The query format type. */ - QueryType: QueryFormatType; -} +/** The filter blob item. */ +@Xml.name("Blob") +model FilterBlobItem { + /** The name of the blob. */ + @Xml.name("Name") name: string; -/** The query format settings. */ -model QueryFormat { - /** The query type. */ - Type: QueryFormatType; + /** The properties of the blob. */ + @Xml.name("ContainerName") containerName: string; - /** The delimited text configuration. */ - DelimitedTextConfiguration?: DelimitedTextConfiguration; + /** The metadata of the blob. */ + @Xml.name("Tags") tags?: BlobTags; - /** The JSON text configuration. */ - JsonTextConfiguration?: JsonTextConfiguration; + /** The version ID of the blob. */ + @Xml.name("VersionId") versionId?: string; - /** The Apache Arrow configuration. */ - ArrowConfiguration?: ArrowConfiguration; + /** Whether it is the current version of the blob */ + @Xml.name("IsCurrentVersion") isCurrentVersion?: boolean; +} - /** The Parquet configuration. */ - ParquetConfiguration?: ParquetConfiguration; +/** The filter blobs includes. */ +enum FilterBlobsIncludes { + /** The filter includes no versions. */ + none, + /** The filter includes n versions. */ + versions } -/** Represents the delimited text configuration. */ -model DelimitedTextConfiguration { - /** The string used to separate columns. */ - ColumnSeparator?: string; +/** The account kind. */ +enum AccountKind { + /** The storage account is a general-purpose account. */ + Storage, + /** The storage account is a blob storage account. */ + BlobStorage, + /** The storage account is a storage V2 account. */ + StorageV2, + /** The storage account is a file storage account. */ + FileStorage, + /** The storage account is a block blob storage account. */ + BlockBlobStorage +} - /** The string used to quote a specific field. */ - FieldQuote?: string; +/** The SKU types */ +enum SkuName { + /** The standard LRS SKU. */ + Standard_LRS, + /** The standard GRS SKU. */ + Standard_GRS, + /** The standard RAGRS SKU. */ + Standard_RAGRS, + /** The standard ZRS SKU. */ + Standard_ZRS, + /** The premium LRS SKU. */ + Premium_LRS +} - /** The string used to separate records. */ - RecordSeparator?: string; +/** The list container segement response */ +@Xml.name("EnumerationResults") +model ListContainersSegmentResponse { + /** The service endpoint. */ + @Xml.attribute + @Xml.name("ServiceEndpoint") serviceEndpoint: string; - /** The string used to escape a quote character in a field. */ - EscapeChar?: string; + /** The prefix of the containers. */ + @Xml.name("Prefix") prefix?: string; - /** Represents whether the data has headers. */ - HeadersPresent?: boolean; -} + /** The marker of the containers. */ + @Xml.name("Marker") marker?: string; -/** Represents the JSON text configuration. */ -model JsonTextConfiguration { - /** The string used to separate records. */ - RecordSeparator?: string; -} + /** The max results of the containers. */ + @Xml.name("MaxResults") maxxResults?: int32; -/** Represents the Apache Arrow configuration. */ -model ArrowConfiguration { - /** The Apache Arrow schema */ - Schema: ArrowField[]; -} + /** The container segment. */ + @Xml.name("ContainerItems") containerItems: ContainerItem[]; -/** Represents an Apache Arrow field. */ -model ArrowField { - /** The arrow field type. */ - Type: string; - /** The arrow field name. */ - Name?: string; - /** The arrow field precision. */ - Precision?: int32; - /** The arrow field scale. */ - Scale?: int32; + /** The next marker of the containers. */ + @Xml.name("NextMarker") nextMarker?: string; } -/** Represents the Parquet configuration. */ -model ParquetConfiguration is Record; +/** An Azure Storage container. */ +@Xml.name("Container") +model ContainerItem { + /** The name of the container. */ + @Xml.name("Name") name: string; -/** The query format type. */ -enum QueryFormatType { - /** The query format type is delimited. */ - delimited, - /** The query format type is JSON. */ - json, - /** The query format type is Apache Arrow. */ - arrow, - /** The query format type is Parquet. */ - parquet -} + /** Whether the container is deleted. */ + @Xml.name("Deleted") delete?: boolean; -/** The query types. */ -enum QueryType { - /** The query type is SQL. */ - SQL, -} + /** The version of the container. */ + @Xml.name("Version") version?: string; -/** The blob append offset response header. */ -model BlobAppendOffsetResponseHeader { - /** This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes. */ - @header - @clientName("BlobAppendOffset") - `x-ms-blob-append-offset`: int64; -} + /** The properties of the container. */ + @Xml.name("Properties") properties: ContainerProperties; -/** The blob condition append position parameter. */ -model 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 - @clientName("appendPosition") - `x-ms-blob-condition-appendpos`: int64; + /** The metadata of the container. */ + @Xml.name("Metadata") metadata?: ContainerMetadata; } -/** The blob condition max size parameter. */ -model 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 - @clientName("maxSize") - `x-ms-blob-condition-maxsize`: int64; -} +/** The properties of a container. */ +model ContainerProperties { + /** The date-time the container was created in RFC1123 format. */ + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @Xml.name("Creation-Time") creationTime?: utcDateTime; -/** The sequence number action parameter. */ -model 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 */ - @clientName("sequenceNumberAction") - @header `x-ms-sequence-number-action`: SequenceNumberActionType; -} + /** The date-time the container was last modified in RFC1123 format. */ + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @Xml.name("Last-Modified") lastModified: utcDateTime; -/** The sequence number actions. */ -enum SequenceNumberActionType { - /** Increment the sequence number. */ - increment, - /** Set the maximum for the sequence number. */ - max, - /** Update the sequence number. */ - update -} + /** The ETag of the container. */ + @Xml.name("ETag") eTag: string; -/** The sequence number parameter. */ -model 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. */ - @clientName("blobSequenceNumber") - @header `x-ms-blob-sequence-number`: int64; -} + /** The lease status of the container. */ + @Xml.name("LeaseStatus") leaseStatus?: LeaseStatus; -/** The blob content length required parameter. */ -model 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. */ - @clientName("blobContentLength") - @header `x-ms-blob-content-length`: int64; -} + /** The lease state of the container. */ + @Xml.name("LeaseState") leaseState?: LeaseState; -/** The previous snapshot parameter. */ -model PrevSnapshotParameter { - /** 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; -} + /** The lease duration of the container. */ + @Xml.name("LeaseDuration") leaseDuration?: LeaseDuration; -/** The previous snapshot URL parameter. */ -model PrevSnapshotUrlParameter { - /** 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 - @clientName("prevSnapshotUrl") - `x-ms-previous-snapshot-url`: string; -} + /** The public access type of the container. */ + @Xml.name("PublicAccess") publicAccess?: PublicAccessType; -/** Represnets a page list. */ -model PageList { - /** The page ranges. */ - PageRange: PageRange[]; + /** Whether it has an immutability policy. */ + @Xml.name("HasImmutabilityPolicy") hasImmutabilityPolicy?: boolean; - /** The clear ranges. */ - ClearRange: ClearRange[]; -} + /** The default encryption scope of the container. */ + @Xml.name("DefaultEncryptionScope") defaultEncryptionScope?: string; -/** The page range. */ -model PageRange { - /** The start of the byte range. */ - Start: int64; + /** Whether to prevent encryption scope override. */ + @clientName("PreventEncryptionScopeOverride") + @Xml.name("DenyEncryptionScopeOverride") denyEncryptionScopeOverride?: boolean; - /** The end of the byte range. */ - End: int64; -} + /** The has legal hold status of the container. */ + @Xml.name("HasLegalHold") hasLegalHold?: boolean; -/** The clear range. */ -model ClearRange { - /** The start of the byte range. */ - Start: int64; + /** The deleted time of the container. */ + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @Xml.name("DeletedTime") deletedTime?: utcDateTime; - /** The end of the byte range. */ - End: int64; -} + /** The remaining retention days of the container. */ + @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; -/** The is immutable storage with versioning enable response header. */ -model IsImmutableStorageWithVersioningEnabledResponseHeader { - /** Indicates whether version level worm is enabled on a container */ + /** Whether immutable storage with versioning is enabled. */ @clientName("IsImmutableStorageWithVersioningEnabled") - @header `x-ms-immutable-storage-with-versioning-enabled`: boolean; - + @Xml.name("ImmutableStorageWithVersioningEnabled") immutableStorageWithVersioningEnabled?: boolean; } -/** The deny encryption scope override response header. */ -model DenyEncryptionScopeOverrideResponseHeader { - /** 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("DenyEncryptionScopeOverride") - @header `x-ms-deny-encryption-scope-override`: boolean; +/** The metadata of a container. */ +@Xml.name("Metadata") +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" +model ContainerMetadata is Record { + /** Whether the metadata is encrypted. */ + @Xml.attribute + @Xml.name("Encrypted") encrypted: string; } -/** The default encryption scope response header. */ -model DefaultEncryptionScopeResponseHeader { - /** The default encryption scope for the container. */ - @clientName("DefaultEncryptionScope") - @header `x-ms-default-encryption-scope`: string; +/** Stats for the storage service. */ +model StorageServiceStats { + /** The geo replication stats. */ + @Xml.name("GeoReplication") geoReplication: GeoReplication; } -/** The has legal hold response header. */ -model HasLegalHoldResponseHeader { - /** Indicates if a blob has a legal hold. */ - @clientName("HasLegalHold") - @header `x-ms-legal-hold`: boolean; +/** The geo replication status. */ +model GeoReplication { + /** The georeplication status. */ + @Xml.name("Status") status: GeoReplicationStatus; + /** The last sync time. */ + @Xml.name("LastSyncTime") lastSyncTime: string; } -/** The has immutability policy response header. */ -model HasImmutabilityPolicyResponseHeader { - /** Indicates if a blob has an active immutability policy. */ - @clientName("HasImmutabilityPolicy") - @header `x-ms-has-immutability-policy`: boolean; +/** The geo replication status. */ +enum GeoReplicationStatus { + /** The geo replication is live. */ + live, + /** The geo replication is bootstrap. */ + bootstrap, + /** The geo replication is unavailable. */ + unavailable } -/** The public access response header. */ -model PublicAccessResponseHeader { - /** The public access setting for the container. */ - @clientName("PublicAccess") - @header `x-ms-blob-public-access`: PublicAccessType; +/** 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; } -/** The rehydrate priority response header. */ -model RehydratePriorityResponseHeader { - /** If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard. */ - @clientName("RehydratePriority") - @header `x-ms-rehydrate-priority`: RehydratePriority; -} +/** A user delegation key. */ +model UserDelegationKey { + /** The Azure Active Directory object ID in GUID format. */ + @Xml.name("SignedOid") signedOid: uuid; -/** The expires on response header. */ -model ExpiresOnResponseHeader { - /** UTC date/time value generated by the service that indicates the time at which the blob will expire. */ - @clientName("ExpiresOn") - @encode("date-time-rfc1123") - @header `x-ms-expiry-time`: utcDateTime; -} + /** The Azure Active Directory tenant ID in GUID format. */ + @Xml.name("SignedTid") signedTid: uuid; -/** The access tier change time response header. */ -model AccessTierChangeTimeResponseHeader { - /** The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set. */ - @encode("date-time-rfc1123") - @clientName("AccessTierChangeTime") - @header `x-ms-access-tier-change-time`: utcDateTime; -} + /** The date-time the key is active. */ + @Xml.name("SignedStart") signedStart: string; -/** The archive status response header. */ -model ArchiveStatusResponseHeader { - /** 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. */ - @clientName("ArchiveStatus") - @header `x-ms-archive-status`: ArchiveStatus; -} + /** The date-time the key expires. */ + @Xml.name("SignedExpiry") signedExpiry: string; -/** The access tier inferred response header. */ -model AccessTierInferredResponseHeader { - /** 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. */ - @clientName("AccessTierInferred") - @header `x-ms-access-tier-inferred`: boolean; -} + /** Abbreviation of the Azure Storage service that accepts the key. */ + @Xml.name("SignedService") signedService: string; -/** The access tier response header. */ -model AccessTierResponseHeader { - /** 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. */ - @clientName("AccessTier") - @header `x-ms-access-tier`: AccessTier; + /** The service version that created the key. */ + @Xml.name("SignedVersion") signedVersion: string; + + /** The key as a base64 string. */ + @Xml.name("Value") value: string; } -/** The destination snapshot response header. */ -model DestinationSnapshotResponseHeader { - /** 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. */ - @clientName("DestinationSnapshot") - @header `x-ms-copy-destination-snapshot`: string; +/** The public access types. */ +enum PublicAccessType { + /** Blob access. */ + blob, + /** Container access. */ + container, } -/** The is incremental copy response header. */ -model IsIncrementalCopyResponseHeader { - /** Included if the blob is incremental copy blob. */ - @clientName("IsIncrementalCopy") - @header `x-ms-incremental-copy`: boolean; +/** The copy status. */ +enum CopyStatus { + /** The copy operation is pending. */ + pending, + /** The copy operation succeeded. */ + success, + /** The copy operation failed. */ + failed, + /** The copy operation is aborted. */ + aborted, } -/** The immutability policy expires on response header. */ -model ImmutabilityPolicyExpiresOnResponseHeader { - /** UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. */ - @clientName("ImmutabilityPolicyExpiresOn") - @encode("date-time-rfc1123") - @header `x-ms-immutability-policy-until-date`: utcDateTime; +/** The lease duration. */ +enum LeaseDuration { + /** The lease is of infinite duration. */ + infinite, + /** The lease is of fixed duration. */ + fixed, } -/** The last accessed response header. */ -model LastAccessedResponseHeader { - /** UTC date/time value generated by the service that indicates the time at which the blob was last read or written to */ - @clientName("LastAccessed") - @encode("date-time-rfc1123") - @header `x-ms-last-access-time`: utcDateTime; +/** The lease state. */ +enum LeaseState { + /** The lease is available. */ + available, + /** The lease is currently leased. */ + leased, + /** The lease is expired. */ + expired, + /** The lease is breaking. */ + breaking, + /** The lease is broken. */ + broken, } -/** The is sealed response header. */ -model IsSealedResponseHeader { - /** If this blob has been sealed */ - @clientName("IsSealed") - @header `x-ms-blob-sealed`: boolean; +/** The lease status. */ +enum LeaseStatus { + /** The lease is unlocked. */ + unlocked, + /** The lease is locked. */ + locked, } -/** The tag count response header. */ -model TagCountResponseHeader { - /** The number of tags associated with the blob */ - @clientName("TagCount") - @header `x-ms-tag-count`: int64; +/** 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 blob committed block count response header. */ -model BlobCommittedBlockCountResponseHeader { - /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ - @clientName("BlobCommittedBlockCount") - @header `x-ms-blob-committed-block-count`: int32; +/** The access tiers. */ +enum AccessTier { + /** The hot P4 tier. */ + P4, + /** The hot P6 tier. */ + P6, + /** The hot P10 tier. */ + P10, + /** The hot P15 tier. */ + P15, + /** The hot P20 tier. */ + P20, + /** The hot P30 tier. */ + P30, + /** The hot P40 tier. */ + P40, + /** The hot P50 tier. */ + P50, + /** The hot P60 tier. */ + P60, + /** The hot P70 tier. */ + P70, + /** The hot P80 tier. */ + P80, + /** The hot access tier. */ + Hot, + /** The cool access tier. */ + Cool, + /** The archive access tier. */ + Archive, } -/** The accept ranges response header. */ -model AcceptRangesResponseHeader { - /** Indicates that the service supports requests for partial blob content. */ - @header `Accept-Ranges`: string; +/** The archive status. */ +enum ArchiveStatus { + /** The archive status is rehydrating pending to hot. */ + `rehydrate-pending-to-hot`, + /** The archive status is rehydrating pending to cool. */ + `rehydrate-pending-to-cool`, + /** The archive status is rehydrating pending to archive. */ + `rehydrate-pending-to-archive`, + /** The archive status is rehydrating pending to expired. */ + `rehydrate-pending-to-expired`, } -/** The is current version response header. */ -model IsCurrentVersionResponseHeader { - /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ - @clientName("IsCurrentVersion") - @header `x-ms-is-current-version`: boolean; +/** 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?: BlobTag[]; + + /** The object replication metadata of the blob. */ + @Xml.name("ObjectReplicationMetadata") objectReplicationMetadata?: ObjectReplicationMetadata; + + /** Whether the blog has versions only. */ + @Xml.name("HasVersionsOnly") hasVersionsOnly?: boolean; } -/** The lease status response header. */ -model LeaseStatusResponseHeader { +/** The properties of a blob. */ +@Xml.name("Properties") +model BlobPropertiesInternal { + /** The date-time the blob was created in RFC1123 format. */ + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @Xml.name("Creation-Time") creationTime?: utcDateTime; + + /** The date-time the blob was last modified in RFC1123 format. */ + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @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?: string; + + /** 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. */ - @clientName("LeaseStatus") - @header `x-ms-lease-status`: LeaseStatus; -} + @Xml.name("LeaseStatus") leaseStatus?: LeaseStatus; -/** The lease state response header. */ -model LeaseStateResponseHeader { - /** Lease state of the blob. */ - @clientName("LeaseState") - @header `x-ms-lease-state`: LeaseState; -} + /** The lease state of the blob. */ + @Xml.name("LeaseState") leaseState?: LeaseState; -/** The lease duration response header. */ -model LeaseDurationResponseHeader { - /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ - @clientName("LeaseDuration") - @header `x-ms-lease-duration`: LeaseDuration; -} + /** The lease duration of the blob. */ + @Xml.name("LeaseDuration") leaseDuration?: LeaseDuration; -/** The copy source response header. */ -model 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. */ - @clientName("CopySource") - @header `x-ms-copy-source`: string; -} + /** The copy ID of the blob. */ + @Xml.name("CopyId") copyId?: string; -/** The copy progress response header. */ -model 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 */ - @clientName("CopyProgress") - @header `x-ms-copy-progress`: string; -} + /** The copy status of the blob. */ + @Xml.name("CopyStatus") copyStatus?: CopyStatus; -/** The copy status description response header. */ -model 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 */ - @clientName("CopyStatusDescription") - @header `x-ms-copy-status-description`: string; -} + /** The copy source of the blob. */ + @Xml.name("CopySource") copySource?: string; -/** The copy completion time response header. */ -model 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. */ - @clientName("CopyCompletionTime") + /** The copy progress of the blob. */ + @Xml.name("CopyProgress") copyProgress?: string; + + /** The copy completion time of the blob. */ @encode("date-time-rfc1123") - @header `x-ms-copy-completion-time`: utcDateTime; -} + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @Xml.name("CopyCompletionTime") copyCompletionTime?: utcDateTime; -/** The blob type response header. */ -model BlobTypeResponseHeader { - /** The type of the blob. */ - @clientName("BlobType") - @header `x-ms-blob-type`: BlobType; -} + /** The copy status description of the blob. */ + @Xml.name("CopyStatusDescription") copyStatusDescription?: string; -/** The object replication policy response header. */ -model ObjectReplicationPolicyIdResponseHeader { - /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ - @clientName("ObjectReplicationPolicyId") - @header `x-ms-or-policy-id`: string; -} + /** Whether the blog is encrypted on the server. */ + @Xml.name("ServerEncrypted") serverEncrypted?: boolean; -/** The range required put page from URL parameter. */ -model RangeRequiredPutPageFromUrlParameter { - /** 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 - @clientName("range") - `x-ms-range`: string; -} + /** Whether the blog is incremental copy. */ + @Xml.name("IncrementalCopy") incrementalCopy?: boolean; -/** The source range required put page from URL parameter. */ -model SourceRangeRequiredPutPageFromUrlParameter { - /** 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 - @clientName("sourceRange") - `x-ms-source-range`: string; -} + /** The name of the desination snapshot. */ + @Xml.name("DestinationSnapshot") destinationSnapshot?: string; -/** The if seuqnce number equal to parameter. */ -model IfSequenceNumberEqualToParameter { - /** Specify this header value to operate only on a blob if it has the specified sequence number. */ - @header - @clientName("ifSequenceNumberEqualTo") - `x-ms-if-sequence-number-eq`?: int64; -} + /** The time the blob was deleted. */ + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @Xml.name("DeletedTime") deletedTime?: utcDateTime; -/** THe if sequence number less than parameter. */ -model IfSequenceNumberLessThanParameter { - /** Specify this header value to operate only on a blob if it has a sequence number less than the specified. */ - @header - @clientName("ifSequenceNumberLessThan") - `x-ms-if-sequence-number-lt`?: int64; -} + /** The remaining retention days of the blob. */ + @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; -/** The if sequence number less than or equal to parameter. */ -model 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 - @clientName("ifSequenceNumberLessThanOrEqualTo") - `x-ms-if-sequence-number-le`?: int64; -} + /** The access tier of the blob. */ + @Xml.name("AccessTier") accessTier?: AccessTier; -/** The blob content-length response header. */ -model BlobContentLengthResponseHeader { - /** The size of the blob in bytes. */ - @header - @clientName("blobContentLength") - `x-ms-blob-content-length`: int64; -} + /** Whether the access tier is inferred. */ + @Xml.name("AccessTierInferred") accessTierInferred?: boolean; -/** The block list type parameter. */ -model BlockListTypeParameter { - /** Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together. */ - @query - @clientName("listType") - blocklisttype: BlockListType; -} + /** The archive status of the blob. */ + @Xml.name("ArchiveStatus") archiveStatus?: ArchiveStatus; -/** The block list types. */ -enum BlockListType { - /** The list of committed blocks. */ - committed, - /** The list of uncommitted blocks. */ - uncommitted, - /** Both lists together. */ - all -} + /** The encryption scope of the blob. */ + @Xml.name("EncryptionScope") encryptionScope?: string; -/** The blob blocks body parameter. */ -model BlobBlocksParameter { - /** Blob Blocks. */ - @body blocks: BlockLookupList; -} + /** The access tier change time of the blob. */ + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @Xml.name("AccessTierChangeTime") accessTierChangeTime?: utcDateTime; -/** The Block lookup list. */ -model BlockLookupList { - // TODO: XML - /** The committed blocks */ - Committed: string[]; - /** The uncommitted blocks */ - Uncommitted: string[]; - /** The latest blocks */ - Latest: string[]; -} + /** The number of tags for the blob. */ + @Xml.name("TagCount") tagCount?: int32; -/** The source content CRC64 parameter. */ -model SourceContentCrc64Parameter { - /** Specify the crc64 calculated for the range of bytes that must be read from the copy source. */ - @header - @clientName("sourceContentCrc64") - `x-ms-source-content-crc64`?: string; -} + @clientName("ExpiresOn") + /** The expire time of the blob. */ + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @Xml.name("Expiry-Time") expiryTime?: utcDateTime; -/** The source range parameter. */ -model SourceRangeParameter { - /** Bytes of source data in the specified range. */ - @header - @clientName("sourceRange") - `x-ms-source-range`: string; -} + @clientName("IsSealed") + /** Whether the blob is sealed. */ + @Xml.name("Sealed") sealed?: boolean; -/** The source URL parameter. */ -model SourceUrlParameter { - /** Specify a URL to the copy source. */ - @header - @clientName("sourceUrl") - `x-ms-source-url`: string; -} + /** The rehydrate priority of the blob. */ + @Xml.name("RehydratePriority") rehydratePriority?: RehydratePriority; -/** The Block ID parameter. */ -model 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 last access time of the blob. */ + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @Xml.name("LastAccessTime") lastAccessTime?: utcDateTime; -/** The is hierarchical namespace enabled response header. */ -model IsHierarchicalNamespaceEnabledResponseHeader { - /** Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled. */ - @header - @clientName("IsHierarchicalNamespaceEnabled") - `x-ms-is-hns-enabled`: boolean; -} + /** The immutability policy until time of the blob. */ + @clientName("ImmutabilityPolicyExpiresOn") + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @Xml.name("ImmutabilityPolicyUntilDate") immutabilityPolicyUntilDate?: utcDateTime; -/** The account kind response header. */ -model AccountKindResponseHeader { - /** Identifies the account kind */ - @header - @clientName("AccountKind") - `x-ms-account-kind`: AccountKind; -} + /** The immutability policy mode of the blob. */ + @Xml.name("ImmutabilityPolicyMode") immutabilityPolicyMode?: BlobImmutabilityPolicyMode; -/** The SKU name response header. */ -model SkuNameResponseHeader { - /** Identifies the sku name of the account */ - @header - @clientName("SkuName") - `x-ms-sku-name`: SkuName; + /** Whether the blob is under legal hold. */ + @Xml.name("LegalHold") legalHold?: boolean; } -/** The access tier required parameter. */ -model AccessTierRequiredParameter { - /** Indicates the tier to be set on the blob. */ - @header - @clientName("AccessTier") - `x-ms-access-tier`: AccessTier; +/** The immutability policy mode. */ +enum BlobImmutabilityPolicyMode { + /** The immutability policy is mutable. */ + Mutable, + /** The immutability policy is locked. */ + Locked, + /** The immutability policy is unlocked. */ + Unlocked } -/** The copy ID parameter. */ -model CopyIdParameter { - /** The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation. */ - @header - @clientName("CopyId") - `x-ms-copy-id`: string; +/** The blob type. */ +enum BlobType { + /** The blob is a block blob. */ + BlockBlob, + /** The blob is a page blob. */ + PageBlob, + /** The blob is an append blob. */ + AppendBlob } -/** The content CRC 64 response header. */ -model ContentCrc64ResponseHeader { - /** This response header is returned so that the client can check for the integrity of the copied content. */ - @header - @clientName("ContentCrc64") - `x-ms-content-crc64`: string; +/** The rehydrate priority. */ +@Xml.name("RehydratePriority") +enum RehydratePriority { + /** The rehydrate priority is high. */ + High, + /** The rehydrate priority is standard. */ + Standard } -/** The copy status response header. */ -model CopyStatusResponseHeader { - /** State of the copy operation identified by x-ms-copy-id. */ - @header - @clientName("CopyStatus") - `x-ms-copy-status`: CopyStatus; +/** The blob metadata. */ +#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 copy ID response header. */ -model 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 - @clientName("CopyId") - `x-ms-copy-id`: string; +/** The blob tags. */ +model BlobTag { + /** The key of the tag. */ + @Xml.name("Key") key: string; + /** The value of the tag. */ + @Xml.name("Value") value: string; } -/** The seal blob parameter. */ -model SealBlobParameter { - /** Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer. */ - @header - @clientName("SealBlob") - `x-ms-seal-blob`?: boolean; -} +/** The object replication metadata. */ +model ObjectReplicationMetadata is Record; -/** The source if unmodified since parameter. */ -model SourceIfUnmodifiedSinceParameter { - /** Specify this header value to operate only on a blob if it has not been modified since the specified date/time. */ - @header - @clientName("sourceIfUnmodifiedSince") - @encode("date-time-rfc1123") - `x-ms-source-if-unmodified-since`?: utcDateTime; +/// 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 rehydrate priority parameter. */ -model RehydratePriorityParameter { - /** Optional: Indicates the priority with which to rehydrate an archived blob. */ - @clientName("rehydratePriority") - @header - `x-ms-rehydrate-priority`?: RehydratePriority; +/** The static website properties. */ +model StaticWebsite { + /** The index document. */ + @Xml.name("IndexDocument") indexDocument?: string; + /** The error document. */ + @Xml.name("ErrorDocument") errorDocument?: string; } -/** The snapshot response header. */ -model SnapshotResponseHeader { - /** Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot. */ - @header - @clientName("Snapshot") - `x-ms-snapshot`: string; +/** The CORS rule. */ +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") maxAgeInSeconds: int32; } -/** The lease time response header. */ -model LeaseTimeResponseHeader { - /** Approximate time remaining in the lease period, in seconds. */ - @header - @clientName("LeaseTime") - `x-ms-lease-time`: 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; + /** The service properties of the metrics. */ + @Xml.name("ServiceProperties") serviceProperties?: MetricsServiceProperties; } -/** The lease break period parameter. */ -model 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. */ - @clientName("breakPeriod") - @header `x-ms-lease-break-period`?: int32; +/** The metrics service properties. */ +model MetricsServiceProperties { + /** The hour metrics properties. */ + @Xml.name("HourMetrics") hourMetrics: MetricsProperties; + /** The minute metrics properties. */ + @Xml.name("MinuteMetrics") minuteMetrics: MetricsProperties; } -/** The lease ID required parameter. */ -model 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. */ - @clientName("leaseId") - @header `x-ms-lease-id`: string; +/** The metrics properties. */ +model MetricsProperties { + /** Whether to include API in the metrics. */ + @Xml.name("Enabled") enabled: boolean; + /** The version of the metrics properties. */ + @Xml.name("Version") version: string; + /** The retention policy of the metrics. */ + @Xml.name("RetentionPolicy") retentionPolicy: RetentionPolicy; } -/** The lease ID response header. */ -model LeaseIdResponseHeader { - /** Uniquely identifies a blobs' lease */ - @header - @clientName("LeaseId") - `x-ms-lease-id`: string; +/** The logging properties. */ +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 encryption scope response header. */ -model 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 */ - @clientName("EncryptionScope") - @header `x-ms-encryption-scope`: string; +/** 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") days: int32; + /** Whether to allow permanent delete. */ + @Xml.name("AllowPermanentDelete") allowPermanentDelete: boolean; } -/** The encryption key SHA256 response header. */ -model 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. */ - @clientName("EncryptionKeySha256") - @header `x-ms-encryption-key-sha256`: string; -} +// List Blobs -/** The is server encrypted response header. */ -model 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. */ - @header - @clientName("isServerEncrypted") - `x-ms-request-server-encrypted`?: boolean; -} +/** 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; -// TODO: Collapose Legal Hold? -/** The legal hold response header. */ -model LegalHoldResponseHeader { - /** Specifies the legal hold status to set on the blob. */ - @clientName("legalHold") - @header `x-ms-legal-hold`: boolean; -} + /** The prefix of the blobs. */ + @Xml.name("Prefix") rrefix?: string; -/** The legal hold required parameter. */ -model LegalHoldRequiredParameter { - /** Required. Specifies the legal hold status to set on the blob. */ - @clientName("legalHold") - @header `x-ms-legal-hold`: boolean; -} + /** The marker of the blobs. */ + @Xml.name("Marker") marker?: string; -/** The immutability policy mode response header. */ -model ImmutabilityPolicyModeResponseHeader { - /** Indicates the immutability policy mode of the blob. */ - @clientName("ImmutabilityPolicyMode") - @header `x-ms-immutability-policy-mode`: BlobImmutabilityPolicyMode; -} + /** The max results of the blobs. */ + @Xml.name("MaxResults") maxResults?: int32; -/** The immutability policy expiration response header. */ -model ImmutabilityPolicyExpiryResponseHeader { - /** Indicates the time the immutability policy will expire. */ - @encode("date-time-rfc1123") - @clientName("ImmutabilityPolicyExpiry") - @header `x-ms-immutability-policy-until-date`: utcDateTime; -} + /** The blob segment. */ + @Xml.name("Segment") segment: BlobFlatListSegment; -/** The blob sequence number response header. */ -model BlobSequenceNumberResponseHeader { - /** The current sequence number for a page blob. This header is not returned for block blobs or append blobs. */ - @clientName("BlobSequenceNumber") - @header `x-ms-blob-sequence-number`: int64; + /** The next marker of the blobs. */ + @Xml.name("NextMarker") nextMarker?: string; } -/** The blob expiration time parameter. */ -model BlobExpiryTimeParameter { - /** The time to set the blob to expiry. */ - @clientName("ExpiresOn") - @header `x-ms-expiry-time`: string; +/** The blob flat list segment. */ +@Xml.name("Blobs") +model BlobFlatListSegment { + /** The blob items. */ + @Xml.name("BlobItems") blobItems: BlobItemInternal[]; } -/** The blob expiration options parameter. */ -model BlobExpiryOptionsParameter { - /** Required. Indicates mode of the expiry time */ - @clientName("ExpiryOptions") - @header `x-ms-expiry-option`: BlobExpiryOptions; -} +/** Represents a page list. */ +model PageList { + /** The page ranges. */ + @Xml.name("PageRange") pageRange: PageRange[]; -/** The blob expiration options. */ -enum BlobExpiryOptions { - /** Never expire. */ - NeverExpire, - /** Relative to creation time. */ - RelativeToCreation, - /** Relative to now. */ - RelativeToNow, - /** Absolute time. */ - Absolute -} + /** The clear ranges. */ + @Xml.name("ClearRange") clearRange: ClearRange[]; -/** The Content-Language response header. */ -model ContentLanguageResponseHeader { - /** This header returns the value that was specified for the Content-Language request header. */ - @header `Content-Language`: string; + /** The next marker. */ + @Xml.name("NextMarker") nextMarker?: string; } -/** The Content-Disposition response header. */ -model 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`: string; -} +/** The page range. */ +@Xml.name("PageRange") +model PageRange { + /** The start of the byte range. */ + @Xml.name("Start") start: int64; -/** The Cache-Control response header. */ -model CacheControlResponseHeader { - /** This header is returned if it was previously specified for the blob. */ - @header `Cache-Control`: string; + /** The end of the byte range. */ + @Xml.name("End") end: int64; } -/** The Content-Encoding response header. */ -model ContentEncodingResponseParameter { - /** This header returns the value that was specified for the Content-Encoding request header */ - @header `Content-Encoding`: string; -} +/** The clear range. */ +model ClearRange { + /** The start of the byte range. */ + @Xml.name("Start") start: int64; -/** The Content-Range response header. */ -model 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`: string; + /** The end of the byte range. */ + @Xml.name("End") end: int64; } -/** The Content-MD5 response header. */ -model 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`: string; +/** The blob tags body parameter. */ +model BlobTagsBodyParameter { + /** The blob tags. */ + @body + tags: BlobTags; } -/** The Content-Type response header. */ -model ContentTypeResponseHeader { - /** The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID */ - @header `Content-Type`: string; +/** Represents blob tags. */ +@Xml.name("Tags") +model BlobTags { + /** Represents the blob tags. */ + @Xml.name("TagSet") blobTagSet: BlobTag[]; } -/** The Content-Length response header. */ -model ContentLengthResponseHeader { - /** The number of bytes present in the response body. */ - @header `Content-Length`: int64; +/** The query request, note only SQL supported */ +enum QueryRequestTypeSqlOnly { + /** The SQL request query type. */ + SQL } -/** The version ID response header. */ -model 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. */ - @clientName("VersionId") - @header `x-ms-version-id`: string; -} +/** Groups the set of query request settings. */ +@Xml.name("QueryRequest") +model QueryRequest { + /** Required. The type of the provided query expression. */ + @Xml.name("QueryType") queryType: QueryRequestTypeSqlOnly; -/** The version response header. */ -model VersionResponseHeader { - /** 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. */ - @clientName("Version") - @header `x-ms-version`: string; -} + /** The query expression in SQL. The maximum size of the query expression is 256KiB. */ + @Xml.name("Expression") expression: string; -/** The creation time response header. */ -model CreationTimeResponseHeader { - /** Returns the date and time the blob was created. */ - @encode("date-time-rfc1123") - @clientName("CreationTime") - @header `x-ms-creation-time`: utcDateTime; -} + /** The input serialization settings. */ + @Xml.name("InputSerialization") inputSerialization?: QuerySerialization; -/** The last modified response header */ -model LastModifiedResponseHeader { - /** The date/time that the container was last modified. */ - @encode("date-time-rfc1123") - @header `Last-Modified`: utcDateTime; + /** The output serialization settings. */ + @Xml.name("OutputSerialization") outputSerialization?: QuerySerialization; } -/** The request ID response header. */ -model RequestIdResponseHeader { - /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */ - @clientName("RequestId") - @header `x-ms-request-id`: string; +/** The query serialization settings. */ +model QuerySerialization { + /** The query format. */ + @Xml.name("Format") format: QueryFormat; } -/** The client request ID response header. */ -model ClientRequestIdResponseHeader { - /** If a client request id header is sent in the request, this header will be present in the response with the same value. */ - @clientName("ClientRequestId") - @header `x-ms-client-request-id`?: string; -} +/** The query format settings. */ +model QueryFormat { + /** The query type. */ + @Xml.name("Type") type: QueryType; -/** The Date response header */ -model DateResponseHeader { - /** UTC date/time value generated by the service that indicates the time at which the response was initiated */ - @encode("date-time-rfc1123") - @header Date: utcDateTime; -} + /** The delimited text configuration. */ + @Xml.name("DelimitedTextConfiguration") delimitedTextConfiguration?: DelimitedTextConfiguration; -/** The ETag response header */ -model ETagResponseHeader { - /** The ETag contains a value that you can use to perform operations conditionally. */ - @header ETag: string; -} + /** The JSON text configuration. */ + @Xml.name("JsonTextConfiguration") jsonTextConfiguration?: JsonTextConfiguration; -/** The copy source tags header parameter. */ -model CopySourceTagsParameter { - /** Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags. */ - @clientName("copySourceTags") - @header `x-ms-copy-source-tags`?: string; -} + /** The Apache Arrow configuration. */ + @Xml.name("ArrowConfiguration") arrowConfiguration?: ArrowConfiguration; -/** The blob copy source tags types. */ -enum BlobCopySourceTags { - /** The replace blob source tags option. */ - REPLACE, - /** The copy blob source tags option. */ - COPY + /** The Parquet configuration. */ + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" + @Xml.name("ParquetConfiguration") parquetConfiguration?: ParquetConfiguration; } -/** The copy source authorization header parameter */ -model CopySourceAuthorizationParameter { - /** Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source. */ - @header - @clientName("copySourceAuthorization") - `x-ms-copy-source-authorization`?: string; +/** Represents the delimited text configuration. */ +@Xml.name("DelimitedTextConfiguration") +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; -/** The copy source blob properties parameter. */ -model CopySourceBlobPropertiesParameter { - /** Optional, default is true. Indicates if properties from the source blob should be copied. */ - @header - @clientName("copySourceBlobProperties") - `x-ms-copy-source-blob-properties`?: boolean; + /** Represents whether the data has headers. */ + @Xml.name("HasHeaders") headersPresent?: boolean; } -/** The copy source header parameter. */ -model 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 - @clientName("copySource") - `x-ms-copy-source`: string; +/** Represents the JSON text configuration. */ +@Xml.name("JsonTextConfiguration") +model JsonTextConfiguration { + /** The string used to separate records. */ + @Xml.name("RecordSeparator") recordSeparator?: string; } -/** The source content MD5 header parameter. */ -model SourceContentMD5Parameter { - /** Specify the md5 calculated for the range of bytes that must be read from the copy source. */ - @header - @clientName("sourceContentMD5") - `x-ms-source-content-md5`?: string; +/** Represents the Apache Arrow configuration. */ +@Xml.name("ArrowConfiguration") +model ArrowConfiguration { + /** The Apache Arrow schema */ + @Xml.name("Schema") schema: ArrowField[]; } -/** The source if tags parameter. */ -model SourceIfTagsParameter { - /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ - @header - @clientName("sourceIfTags") - `x-ms-source-if-tags`?: string; +/** 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; } -/** The source if match parameter. */ -model SourceIfMatchParameter { - /** Specify an ETag value to operate only on blobs with a matching value. */ - @header - @clientName("sourceIfMatch") - `x-ms-source-if-match`?: string; -} +/** Represents the Parquet configuration. */ +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" +@Xml.name("ParquetConfiguration") +model ParquetConfiguration is Record; -/** The source if none match parameter. */ -model SourceIfNoneMatchParameter { - /** Specify this header value to operate only on a blob if it has been modified since the specified date/time. */ - @header - @clientName("sourceIfNoneMatch") - `x-ms-source-if-none-match`?: string; +/** The query format type. */ +@Xml.name("Type") +enum QueryType { + /** The query format type is delimited. */ + delimited, + /** The query format type is JSON. */ + json, + /** The query format type is Apache Arrow. */ + arrow, + /** The query format type is Parquet. */ + parquet } -/** The source if modified since parameter. */ -model SourceIfModifiedSinceParameter { - /** Specify this header value to operate only on a blob if it has been modified since the specified date/time. */ - @header - @clientName("sourceIfModifiedSince") - @encode("date-time-rfc1123") - `x-ms-source-if-modified-since`?: utcDateTime; -} -/** The content CRC64 parameter. */ -model ContentCrc64Parameter { - /** Specify the transactional crc64 for the body, to be validated by the service. */ - @clientName("transactionalContentCrc64") - @header `x-ms-content-crc64`?: string; +/// Parameters + +/** The blob content MD5 response header. */ +model 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 */ + @clientName("BlobContentMD5") + @header("x-ms-blob-content-md5") blobContentMd5: string; } -/** The access tier optional parameter. */ -model AccessTierOptionalParameter { - /** Optional. The tier to be set on the blob. */ - @clientName("tier") - @header - `x-ms-access-tier`?: AccessTier; +/** The query request body parameter. */ +model QueryRequestParameter { + /** The query request */ + @body + queryRequest: QueryRequest; } -/** The content MD5 parameter. */ -model 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. */ - @header - @clientName("transactionalContentMD5") - `Content-MD5`?: string; +/** The blob append offset response header. */ +model BlobAppendOffsetResponseHeader { + /** This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes. */ + @clientName("BlobAppendOffset") + @header("x-ms-blob-append-offset") blobAppendOffset: int64; } -/** The legal hold optional parameter. */ -model LegalHoldOptionalParameter { - /** Specified if a legal hold should be set on the blob. */ - @clientName("legalHold") - @header `x-ms-legal-hold`?: boolean; +/** The blob condition append position parameter. */ +model 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). */ + @clientName("appendPosition") + @header("x-ms-blob-condition-appendpos") blobConditionAppendPosition: int64; } -/** The immutability policy mode parameter. */ -model ImmutabilityPolicyModeParameter { - /** Specifies the immutability policy mode to set on the blob. */ - @header - @clientName("immutabilityPolicyMode") - `x-ms-immutability-policy-mode`?: BlobImmutabilityPolicyMode; +/** The blob condition max size parameter. */ +model 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). */ + @clientName("maxSize") + @header("x-ms-blob-condition-maxsize") blobConditionMaxSize: int64; } -/** The immutability policy expiration parameter. */ -model ImmutabilityPolicyExpiryParameter { - /** Specifies the date time when the blobs immutability policy is set to expire. */ - @header - @clientName("immutabilityPolicyExpiry") - @encode("date-time-rfc1123") - `x-ms-immutability-policy-until-date`?: string; +/** The sequence number action parameter. */ +model 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 */ + @clientName("sequenceNumberAction") + @header("x-ms-sequence-number-action") sequenceNumberAction: SequenceNumberActionType; } -/** The blobs tags header parameter. */ -model BlobTagsHeaderParameter { - /** Optional. Used to set blob tags in various blob operations. */ - @clientName("BlobTagsString") - @header - `x-ms-tags`?: string; +/** The sequence number actions. */ +enum SequenceNumberActionType { + /** Increment the sequence number. */ + increment, + /** Set the maximum for the sequence number. */ + max, + /** Update the sequence number. */ + update } -/** The blob sequence number parameter. */ -model 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 +/** The sequence number parameter. */ +model 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. */ @clientName("blobSequenceNumber") - `x-ms-blob-sequence-number`?: int64; + @header("x-ms-blob-sequence-number") blobSequenceNumber : int64; } -/** The blob content length parameter. */ -model BlobContentLengthRequiredParameter { +/** The blob content length required parameter. */ +model 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 @clientName("blobContentLength") - `x-ms-blob-content-length`: int64; + @header("x-ms-blob-content-length") blobContentLength: int64; } -/** The encryption scope parameter. */ -model 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. */ - @clientName("encryptionScope") - @header `x-ms-encryption-scope`?: string; +/** The previous snapshot parameter. */ +model PrevSnapshotParameter { + /** 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; } -/** The blob content disposition parameter. */ -model BlobContentDispositionParameter { - /** Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request. */ - @header - @clientName("blobContentDisposition") - `x-ms-blob-content-disposition`?: string; +/** The previous snapshot URL parameter. */ +model PrevSnapshotUrlParameter { + /** 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. */ + @clientName("prevSnapshotUrl") + @header("x-ms-previous-snapshot-url") previousSnapshotUrl: string; } -/** The blob cache control parameter. */ -model BlobCacheControlParameter { - /** Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request. */ - @header - @clientName("blobCacheControl") - `x-ms-blob-cache-control`?: string; + + +/** The is immutable storage with versioning enable response header. */ +model IsImmutableStorageWithVersioningEnabledResponseHeader { + /** Indicates whether version level worm is enabled on a container */ + @clientName("IsImmutableStorageWithVersioningEnabled") + @header("x-ms-immutable-storage-with-versioning-enabled") immutableStorageWithVersioningEnabled: boolean; + } -/** The blob content MD5 parameter. */ -model 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. */ - @clientName("blobContentMD5") - @header - `x-ms-blob-content-md5`?: string; +/** The deny encryption scope override response header. */ +model DenyEncryptionScopeOverrideResponseHeader { + /** 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("DenyEncryptionScopeOverride") + @header("x-ms-deny-encryption-scope-override") denyEncryptionScopeOverride: boolean; } -/** The blob content type parameter. */ -model BlobContentLanguageParameter { - /** Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request. */ - @header - @clientName("blobContentLanguage") - `x-ms-blob-content-language`?: string; +/** The default encryption scope response header. */ +model DefaultEncryptionScopeResponseHeader { + /** The default encryption scope for the container. */ + @clientName("DefaultEncryptionScope") + @header("x-ms-default-encryption-scope") defaultEncryptionScope: string; } -/** The blob content type parameter. */ -model BlobContentEncodingParameter { - /** Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request. */ - @clientName("blobContentEncoding") - @header - `x-ms-blob-content-encoding`?: string; +/** The has legal hold response header. */ +model HasLegalHoldResponseHeader { + /** Indicates if a blob has a legal hold. */ + @clientName("HasLegalHold") + @header("x-ms-legal-hold") legalHold: boolean; } -/** The blob content type parameter. */ -model BlobContentTypeParameter { - /** Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request. */ - @header - @clientName("blobContentType") - `x-ms-blob-content-type`?: string; +/** The has immutability policy response header. */ +model HasImmutabilityPolicyResponseHeader { + /** Indicates if a blob has an active immutability policy. */ + @clientName("HasImmutabilityPolicy") + @header("x-ms-has-immutability-policy") hasImmutabilityPolicy: boolean; } -/** The optional premium page blob access tier parameter. */ -model PremiumPageBlobAccessTierOptional { - /** Optional. Indicates the tier to be set on the page blob. */ - @clientName("tier") - @header - `x-ms-access-tier`?: PremiumPageBlobAccessTier; +/** The public access response header. */ +model PublicAccessResponseHeader { + /** The public access setting for the container. */ + @clientName("PublicAccess") + @header("x-ms-blob-public-access") publicAccess: PublicAccessType; } -/** The premium page blob access tier types. */ -enum PremiumPageBlobAccessTier { - /** The premium page blob access tier is P4. */ - P4, - /** The premium page blob access tier is P6. */ - P6, - /** The premium page blob access tier is P10. */ - P10, - /** The premium page blob access tier is P15. */ - P15, - /** The premium page blob access tier is P20. */ - P20, - /** The premium page blob access tier is P30. */ - P30, - /** The premium page blob access tier is P40. */ - P40, - /** The premium page blob access tier is P50. */ - P50, - /** The premium page blob access tier is P60. */ - P60, - /** The premium page blob access tier is P70. */ - P70, - /** The premium page blob access tier is P80. */ - P80 +/** The rehydrate priority response header. */ +model RehydratePriorityResponseHeader { + /** If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard. */ + @clientName("RehydratePriority") + @header("x-ms-rehydrate-priority") rehydratePriority: RehydratePriority; +} + +/** The expires on response header. */ +model ExpiresOnResponseHeader { + /** UTC date/time value generated by the service that indicates the time at which the blob will expire. */ + @clientName("ExpiresOn") + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("x-ms-expiry-time") expiryTime: utcDateTime; +} + +/** The access tier change time response header. */ +model AccessTierChangeTimeResponseHeader { + /** The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set. */ + @encode("date-time-rfc1123") + @clientName("AccessTierChangeTime") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("x-ms-access-tier-change-time") accessTierChangeTime: utcDateTime; } -/** The blob name parameter. */ -model BlobNameParameter { - /** 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 - blobName: string; +/** The archive status response header. */ +model ArchiveStatusResponseHeader { + /** 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. */ + @clientName("ArchiveStatus") + @header("x-ms-archive-status") archiveStatus: ArchiveStatus; } -/** The blob delete type parameter. */ -model BlobDeleteTypeParameter { - /** Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled. */ - @query - @clientName("blobDeleteType") - deletetype?: DeleteSnapshotsOptionType; +/** The access tier inferred response header. */ +model AccessTierInferredResponseHeader { + /** 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. */ + @clientName("AccessTierInferred") + @header("x-ms-access-tier-inferred") accessTierInferred: boolean; } -/** The type of blob deletions. */ -enum BlobDeleteType { - /** Permanently delete the blob. */ - Permanent, +/** The access tier response header. */ +model AccessTierResponseHeader { + /** 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. */ + @clientName("AccessTier") + @header("x-ms-access-tier") accessTier: AccessTier; } -/** The delete snapshot parameter. */ -model DeleteSnapshotsParameter { - /** 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 */ - @clientName("deleteSnapshots") - @header - `x-ms-delete-snapshots`?: DeleteSnapshotsOptionType; +/** The destination snapshot response header. */ +model DestinationSnapshotResponseHeader { + /** 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. */ + @clientName("DestinationSnapshot") + @header("x-ms-copy-destination-snapshot") copyDestinationSnapshot: string; } -/** The delete snapshots option type. */ -enum DeleteSnapshotsOptionType { - /** The delete snapshots include option is not specified. */ - none, - /** The delete snapshots include option is include. */ - include, +/** The is incremental copy response header. */ +model IsIncrementalCopyResponseHeader { + /** Included if the blob is incremental copy blob. */ + @clientName("IsIncrementalCopy") + @header("x-ms-incremental-copy") incrementalCopy: boolean; } -/** The encryption algorithm parameter. */ -model EncryptionAlgorithmParameter { - /** Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256. */ - @clientName("encryptionAlgorithm") - @header `x-ms-encryption-algorithm`?: string; +/** The immutability policy expires on response header. */ +model ImmutabilityPolicyExpiresOnResponseHeader { + /** UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. */ + @clientName("ImmutabilityPolicyExpiresOn") + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("x-ms-immutability-policy-until-date") immutabilityPolicyUntilDate: utcDateTime; } -/** The encryption key SHA256 hash parameter. */ -model 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. */ - @clientName("encryptionKeySha256") - @header `x-ms-encryption-key-sha256`?: string; +/** The last accessed response header. */ +model LastAccessedResponseHeader { + /** UTC date/time value generated by the service that indicates the time at which the blob was last read or written to */ + @clientName("LastAccessed") + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("x-ms-last-access-time") lastAccessTime: utcDateTime; } +/** The is sealed response header. */ +model IsSealedResponseHeader { + /** If this blob has been sealed */ + @clientName("IsSealed") + @header("x-ms-blob-sealed") blobSealed: boolean; +} -/** The encryption key parameter. */ -model 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. */ - @clientName("encryptionKey") - @header `x-ms-encryption-key`?: string; +/** The tag count response header. */ +model TagCountResponseHeader { + /** The number of tags associated with the blob */ + @clientName("TagCount") + @header("x-ms-tag-count") tagCount: int64; } -/** The If-Tags parameters. */ -model IfTagsParameter { - /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ - @clientName("ifTags") - @header `x-ms-if-tags`?: string; +/** The blob committed block count response header. */ +model BlobCommittedBlockCountResponseHeader { + /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ + @clientName("BlobCommittedBlockCount") + @header("x-ms-blob-committed-block-count") blobCommittedBlockCount: int32; } -/** The If-Match parameter. */ -model IfMatchParameter { - /** A condition that must be met in order for the request to be processed. */ - @header - @clientName("ifMatch") - `If-Match`?: string; +/** The accept ranges response header. */ +model AcceptRangesResponseHeader { + /** Indicates that the service supports requests for partial blob content. */ + @header("Accept-Ranges") acceptRanges: string; } -/** The If-None-Match parameter. */ -model IfNoneMatchParameter { - /** A condition that must be met in order for the request to be processed. */ - @header - @clientName("ifNoneMatch") - `If-None-Match`?: string; +/** The is current version response header. */ +model IsCurrentVersionResponseHeader { + /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ + @clientName("IsCurrentVersion") + @header("x-ms-is-current-version") isCurrentVersion: boolean; } -/** The get range content CRC64 parameter. */ -model GetRangeContentCRC64 { - /** 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`?: boolean; +/** The lease status response header. */ +model LeaseStatusResponseHeader { + /** The lease status of the blob. */ + @clientName("LeaseStatus") + @header("x-ms-lease-status") leaseStatus: LeaseStatus; } -/** The get range content MD5 parameter. */ -model GetRangeContentMD5 { - /** Optional. When this header is set to true and specified together with the Range header, 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`?: boolean; +/** The lease state response header. */ +model LeaseStateResponseHeader { + /** Lease state of the blob. */ + @clientName("LeaseState") + @header("x-ms-lease-state") leaseState: LeaseState; } -/** The range parameter. */ -model RangeParameter { - /** Return only the bytes of the blob in the specified range. */ - @header - @clientName("range") - `x-ms-range`: string; +/** The lease duration response header. */ +model LeaseDurationResponseHeader { + /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ + @clientName("LeaseDuration") + @header("x-ms-lease-duration") leaseDuration: LeaseDuration; } -/** The version ID parameter. */ -model 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. */ - @header - @clientName("versionId") - versionid: string; +/** The copy source response header. */ +model 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. */ + @clientName("CopySource") + @header("x-ms-copy-source") copySource: string; } -/** The snapshot parameter. */ -model 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; +/** The copy progress response header. */ +model 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 */ + @clientName("CopyProgress") + @header("x-ms-copy-progress") copyProgress: string; } -/** An enumeration of blobs */ -model ListBlobsHierarchySegmentResponse { - /** The service endpoint. */ - ServiceEndpoint: string; // TODO: XML Attribute +/** The copy status description response header. */ +model 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 */ + @clientName("CopyStatusDescription") + @header("x-ms-copy-status-description") copyStatusDescription: string; +} - /** The container name. */ - ContainerName: string; // TODO: XML Attribute +/** The copy completion time response header. */ +model 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. */ + @clientName("CopyCompletionTime") + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("x-ms-copy-completion-time") copyCompletionTime: utcDateTime; +} - /** The delimiter of the blobs. */ - Delimiter?: string; +/** The blob type response header. */ +model BlobTypeResponseHeader { + /** The type of the blob. */ + @clientName("BlobType") + @header("x-ms-blob-type") blobType: BlobType; +} - /** The prefix of the blobs. */ - Prefix?: string; +/** The object replication policy response header. */ +model ObjectReplicationPolicyIdResponseHeader { + /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ + @clientName("ObjectReplicationPolicyId") + @header("x-ms-or-policy-id") objectReplicationPolicyId: string; +} - /** The marker of the blobs. */ - Marker?: string; +/** The range required put page from URL parameter. */ +model RangeRequiredPutPageFromUrlParameter { + /** 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. */ + @clientName("range") + @header("x-ms-range") range: string; +} - /** The max results of the blobs. */ - MaxResults?: int32; +/** The source range required put page from URL parameter. */ +model SourceRangeRequiredPutPageFromUrlParameter { + /** 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. */ + @clientName("sourceRange") + @header("x-ms-source-range") sourceRange: string; +} - /** The blob segment. */ - Segment: BlobItem[]; // TODO: XML Serialization +/** The if seuqnce number equal to parameter. */ +model IfSequenceNumberEqualToParameter { + /** Specify this header value to operate only on a blob if it has the specified sequence number. */ + @clientName("ifSequenceNumberEqualTo") + @header("x-ms-if-sequence-number-eq") ifSequenceNumberEqualTo?: int64; +} - /** The next marker of the blobs. */ - NextMarker?: string; +/** THe if sequence number less than parameter. */ +model IfSequenceNumberLessThanParameter { + /** Specify this header value to operate only on a blob if it has a sequence number less than the specified. */ + @clientName("ifSequenceNumberLessThan") + @header("x-ms-if-sequence-number-lt") ifSequenceNumberLessThan?: int64; } -/** The delimiter parameter. */ -model DelimiterParameter { - /** 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; +/** The if sequence number less than or equal to parameter. */ +model IfSequenceNumberLessThanOrEqualToParameter { + /** Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified. */ + @clientName("ifSequenceNumberLessThanOrEqualTo") + @header("x-ms-if-sequence-number-le") ifSequenceNumberLessThanOrEqualTo?: int64; } -/** The list blob includes parameter. */ -model ListBlobsInclude { - /** Include this parameter to specify one or more datasets to include in the response. */ - @query({ format: "csv" }) include?: ListBlobsIncludes[]; +/** The blob content-length response header. */ +model BlobContentLengthResponseHeader { + /** The size of the blob in bytes. */ + @clientName("blobContentLength") + @header("x-ms-blob-content-length") blobContentLength: int64; } -/** The list blob includes parameter values. */ -enum ListBlobsIncludes { - /** The include copies. */ - copies, - /** The include deleted blobs. */ - deleted, - /** The include metadata. */ - metadata, - /** The include snapshots. */ - snapshots, - /** The include uncommitted blobs. */ - uncommittedblobs, - /** The include versions. */ - versions, - /** The include tags. */ - tags, - /** The include immutable policy. */ - immutabilitypolicy, - /** The include legal hold. */ - legalhold, - /** The include deleted with versions. */ - deletedwithversions +/** The block list type parameter. */ +model BlockListTypeParameter { + /** Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together. */ + @query + @clientName("listType") + blocklisttype: BlockListType; +} + +/** The block list types. */ +enum BlockListType { + /** The list of committed blocks. */ + committed, + /** The list of uncommitted blocks. */ + uncommitted, + /** Both lists together. */ + all +} + +/** The blob blocks body parameter. */ +model BlobBlocksParameter { + /** Blob Blocks. */ + @body blocks: BlockLookupList; } -/** The lease duration parameter. */ -model LeaseDurationParameter { - /** 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. */ - @clientName("duration") - @header - `x-ms-lease-duration`: int32; + + +/** The source content CRC64 parameter. */ +model SourceContentCrc64Parameter { + /** Specify the crc64 calculated for the range of bytes that must be read from the copy source. */ + @clientName("sourceContentCrc64") + @header("x-ms-source-content-crc64") sourceContentCrc64?: string; } -/** The source lease ID header parameter. */ -model SourceLeaseId { - /** A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ - @clientName("sourceLeaseId") - @header `x-ms-source-lease-id`?: string; +/** The source range parameter. */ +model SourceRangeParameter { + /** Bytes of source data in the specified range. */ + @clientName("sourceRange") + @header("x-ms-source-range") sourceRange: string; } -/** The source container name header parameter. */ -model SourceContainerName { - /** Required. Specifies the name of the container to rename. */ - @clientName("SourceContainerName") - @header `x-ms-source-container-name`: string; +/** The source URL parameter. */ +model SourceUrlParameter { + /** Specify a URL to the copy source. */ + @clientName("sourceUrl") + @header("x-ms-source-url") sourceUrl: string; } -/** The deleted container name header. */ -model DeletedContainerName { - /** Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore. */ - @clientName("DeletedContainerName") - @header `x-ms-deleted-container-name`?: string; +/** The Block ID parameter. */ +model 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 deleted container version header. */ -model DeletedContainerVersion { - /** Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore. */ - @clientName("DeletedContainerVersion") - @header `x-ms-deleted-container-version`?: string; +/** The is hierarchical namespace enabled response header. */ +model IsHierarchicalNamespaceEnabledResponseHeader { + /** Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled. */ + @clientName("IsHierarchicalNamespaceEnabled") + @header("x-ms-is-hns-enabled") isHierarchicalNamespaceEnabled: boolean; +} +/** The account kind response header. */ +model AccountKindResponseHeader { + /** Identifies the account kind */ + @clientName("AccountKind") + @header("x-ms-account-kind") accountKind: AccountKind; } -/** The container ACL parameter. */ -model ContainerAcl { - /** The access control list for the container. */ - @body - acl: SignedIdentifiers; +/** The SKU name response header. */ +model SkuNameResponseHeader { + /** Identifies the sku name of the account */ + @clientName("SkuName") + @header("x-ms-sku-name") skuName: SkuName; } -/** The container name header */ -model ContainerNameParameter { - /** The name of the container. */ - @header - @path - containerName: string; +/** The access tier required parameter. */ +model AccessTierRequiredParameter { + /** Indicates the tier to be set on the blob. */ + @clientName("AccessTier") + @header("x-ms-access-tier") accessTier: AccessTier; } -/** The If-Unmodified-Since header. */ -model IfUnmodifiedSince { - /** A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time. */ - @header - @encode("date-time-rfc1123") - @clientName("ifUnmodifiedSince") - `If-Unmodified-Since`?: utcDateTime; +/** The copy ID parameter. */ +model CopyIdParameter { + /** The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation. */ + @clientName("CopyId") + @header("x-ms-copy-id") copyId: string; } -/** The If-Modified-Since header. */ -model IfModifiedSince { - /** A date-time value. A request is made under the condition that the resource has been modified since the specified date-time. */ - @header - @encode("date-time-rfc1123") - @clientName("ifModifiedSince") - `If-Modified-Since`?: utcDateTime; +/** The content CRC 64 response header. */ +model ContentCrc64ResponseHeader { + /** This response header is returned so that the client can check for the integrity of the copied content. */ + @clientName("ContentCrc64") + @header("x-ms-content-crc64") contentCrc64: string; } -/** The lease ID parameter. */ -model LeaseIdOptional { - /** If specified, the operation only succeeds if the resource's lease is active and matches this ID. */ - @header - `x-ms-lease-id`?: string; +/** The copy status response header. */ +model CopyStatusResponseHeader { + /** State of the copy operation identified by x-ms-copy-id. */ + @clientName("CopyStatus") + @header("x-ms-copy-status") copyStatus: CopyStatus; } -/** The deny encryption scope override parameter. */ -model DenyEncryptionScopeOverride { - /** Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container. */ - @header `x-ms-deny-encryption-scope-override`?: boolean; +/** The copy ID response header. */ +model 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. */ + @clientName("CopyId") + @header("x-ms-copy-id") copyId: string; } -/** The default encryption scope parameter. */ -model DefaultEncryptionScope { - /** 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`?: string; +/** The seal blob parameter. */ +model SealBlobParameter { + /** Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer. */ + @clientName("SealBlob") + @header("x-ms-seal-blob") sealBlob?: boolean; } -/** The blob public access parameter. */ -model BlobPublicAccess { - /** Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'. */ - @clientName("access") - @header `x-ms-blob-public-access`?: PublicAccessType; +/** The source if unmodified since parameter. */ +model SourceIfUnmodifiedSinceParameter { + /** Specify this header value to operate only on a blob if it has not been modified since the specified date/time. */ + @clientName("sourceIfUnmodifiedSince") + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("x-ms-source-if-unmodified-since") sourceIfUnmodifiedSince?: utcDateTime; } -/** The metadata parameter. */ -model MetadataParameter is Record { - /** 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. */ - @header - `x-ms-meta`?: string; // TODO: Figure out how to better represent this +/** The rehydrate priority parameter. */ +model RehydratePriorityParameter { + /** Optional: Indicates the priority with which to rehydrate an archived blob. */ + @clientName("rehydratePriority") + @header("x-ms-rehydrate-priority") rehydratePriority?: RehydratePriority; } -/** The filter blobs include parameter. */ -model FilterBlobsInclude { - /** Include this parameter to specify one or more datasets to include in the response. */ - @query({ format: "csv" }) include?: FilterBlobsIncludes[]; +/** The snapshot response header. */ +model SnapshotResponseHeader { + /** Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot. */ + @clientName("Snapshot") + @header("x-ms-snapshot") snapshot: string; } -/** The filter blobs where parameter. */ -model FilterBlobsWhere { - /** Filters the results to return only to return only blobs whose tags match the specified expression. */ - @query - where?: string; +/** The lease time response header. */ +model LeaseTimeResponseHeader { + /** Approximate time remaining in the lease period, in seconds. */ + @clientName("LeaseTime") + @header("x-ms-lease-time") leaseTime: int32; } -/** The Content-Length header. */ -model ContentLengthHeader { - /** The length of the request. */ - @header - `Content-Length`: int64; +/** The lease break period parameter. */ +model 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. */ + @clientName("breakPeriod") + @header("x-ms-lease-break-period") leaseBreakPeriod?: int32; } -/** The Content-Type header for multi-part requests. */ -model MultipartContentType { - /** Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_ */ - @clientName("multipartContentType") - @header - `Content-Type`: string; +/** The lease ID required parameter. */ +model 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. */ + @clientName("leaseId") + @header("x-ms-lease-id") leaseId: string; } -/** The max results parameter. */ -model 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 maxresults?: int32; +/** The lease ID response header. */ +model LeaseIdResponseHeader { + /** Uniquely identifies a blobs' lease */ + @clientName("LeaseId") + @header("x-ms-lease-id") leaseId: string; } -/** The marker parameter. */ -model 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. */ - @query marker?: string; +/** The encryption scope response header. */ +model 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 */ + @clientName("EncryptionScope") + @header("x-ms-encryption-scope") encryptionScope: string; } -/** The prefix parameter. */ -model PrefixParameter { - /** Filters the results to return only containers whose name begins with the specified prefix. */ - @query prefix?: string; +/** The encryption key SHA256 response header. */ +model 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. */ + @clientName("EncryptionKeySha256") + @header("x-ms-encryption-key-sha256") encryptionKeySha256: string; } -/** The client request ID parameter. */ -model ClientRequestIdParameter { - /** 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. */ - @clientName("requestId") - @header - `x-ms-client-request-id`?: string; +/** The is server encrypted response header. */ +model 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 timeout parameter. */ -model TimeoutParameter { - @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") - @query timeout?: int32; +/** The legal hold response header. */ +model LegalHoldResponseHeader { + /** Specifies the legal hold status to set on the blob. */ + @clientName("legalHold") + @header("x-ms-legal-hold") legalHold: boolean; } -/** The API version parameter. */ -model ApiVersionParameter { - /** Specifies the version of the operation to use for this request. */ - @header("x-ms-version") - version: string; +/** The legal hold required parameter. */ +model LegalHoldRequiredParameter { + /** Required. Specifies the legal hold status to set on the blob. */ + @clientName("legalHold") + @header("x-ms-legal-hold") legalHold: boolean; } -/** The lease break period header. */ -model LeaseBreakPeriod { - /** 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 - @clientName("breakPeriod") - `x-ms-lease-break-period`?: int32; +/** The immutability policy mode response header. */ +model ImmutabilityPolicyModeResponseHeader { + /** Indicates the immutability policy mode of the blob. */ + @clientName("ImmutabilityPolicyMode") + @header("x-ms-immutability-policy-mode") immutabilityPolicyMode: BlobImmutabilityPolicyMode; } -/** The required lease ID header. */ -model ProposedLeaseIdRequired { - /** Required. The proposed lease ID for the container. */ - @header `x-ms-proposed-lease-id`: string; +/** The immutability policy expiration response header. */ +model ImmutabilityPolicyExpiryResponseHeader { + /** Indicates the time the immutability policy will expire. */ + @encode("date-time-rfc1123") + @clientName("ImmutabilityPolicyExpiry") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("x-ms-immutability-policy-until-date") immutabilityPolicyUntilDate: utcDateTime; } -/** The optional lease ID header. */ -model ProposedLeaseIdOptional { - /** Optional. The proposed lease ID for the container. */ - @header `x-ms-proposed-lease-id`?: string; +/** The blob sequence number response header. */ +model BlobSequenceNumberResponseHeader { + /** The current sequence number for a page blob. This header is not returned for block blobs or append blobs. */ + @clientName("BlobSequenceNumber") + @header("x-ms-blob-sequence-number") blobSequenceNumber: int64; } -/** The lease ID required header. */ -model LeaseIdRequired { - /** Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ - @clientName("leaseId") - @header `x-ms-lease-id`: string; +/** The blob expiration time parameter. */ +model BlobExpiryTimeParameter { + /** The time to set the blob to expiry. */ + @clientName("ExpiresOn") + @header("x-ms-expiry-time") expiryTime: string; } -/// Models +/** The blob expiration options parameter. */ +model BlobExpiryOptionsParameter { + /** Required. Indicates mode of the expiry time */ + @clientName("ExpiryOptions") + @header("x-ms-expiry-option") expiryOptions: BlobExpiryOptions; +} -/** Represents an array of signed identifiers */ -model SignedIdentifiers is Array; +/** The blob expiration options. */ +enum BlobExpiryOptions { + /** Never expire. */ + NeverExpire, + /** Relative to creation time. */ + RelativeToCreation, + /** Relative to now. */ + RelativeToNow, + /** Absolute time. */ + Absolute +} -/** The signed identifier. */ -model SignedIdentifier { - /** The unique ID for the signed identifier. */ - Id: string; - /** The access policy for the signed identifier. */ - AccessPolicy: AccessPolicy; +/** The Content-Language response header. */ +model ContentLanguageResponseHeader { + /** This header returns the value that was specified for the Content-Language request header. */ + @header("Content-Language") contentLanguage: string; } -/** The result of a Filter Blobs API call */ -model FilterBlobSegment { - /** The service endpoint. */ - ServiceEndpoint: string; // TODO: XML Attribute +/** The Content-Disposition response header. */ +model 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 filter for the blobs. */ - Where: string; +/** The Cache-Control response header. */ +model CacheControlResponseHeader { + /** This header is returned if it was previously specified for the blob. */ + @header("Cache-Control") cacheControl: string; +} - /** The blob segment. */ - Blobs: BlobItem[]; // TODO: XML Serialization +/** The Content-Encoding response header. */ +model ContentEncodingResponseParameter { + /** This header returns the value that was specified for the Content-Encoding request header */ + @header("Content-Encoding") contentEncoding: string; +} - /** The next marker of the blobs. */ - NextMarker?: string; +/** The Content-Range response header. */ +model 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 filter blobs includes. */ -enum FilterBlobsIncludes { - /** The filter includes no versions. */ - none, - /** The filter includes n versions. */ - versions +/** The Content-MD5 response header. */ +model 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 account kind. */ -enum AccountKind { - /** The storage account is a general-purpose account. */ - Storage, - /** The storage account is a blob storage account. */ - BlobStorage, - /** The storage account is a storage V2 account. */ - StorageV2, - /** The storage account is a file storage account. */ - FileStorage, - /** The storage account is a block blob storage account. */ - BlockBlobStorage +/** The Content-Type response header. */ +model ContentTypeResponseHeader { + /** The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID */ + @header("Content-Type") contentType: string; } -/** The SKU types */ -enum SkuName { - /** The standard LRS SKU. */ - Standard_LRS, - /** The standard GRS SKU. */ - Standard_GRS, - /** The standard RAGRS SKU. */ - Standard_RAGRS, - /** The standard ZRS SKU. */ - Standard_ZRS, - /** The premium LRS SKU. */ - Premium_LRS +/** The Content-Length response header. */ +model ContentLengthResponseHeader { + /** The number of bytes present in the response body. */ + @header("Content-Length") contentLength: int64; } -model ListContainersSegmentResponse { - /** The service endpoint. */ - ServiceEndpoint: string; // TODO: XML Attribute +/** The version ID response header. */ +model 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. */ + @clientName("VersionId") + @header("x-ms-version-id") versionId: string; +} - /** The prefix of the containers. */ - Prefix?: string; +/** The version response header. */ +model VersionResponseHeader { + /** 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. */ + @clientName("Version") + @header("x-ms-version") version: string; +} - /** The marker of the containers. */ - Marker?: string; +/** The creation time response header. */ +model CreationTimeResponseHeader { + /** Returns the date and time the blob was created. */ + @encode("date-time-rfc1123") + @clientName("CreationTime") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("x-ms-creation-time") creationTime: utcDateTime; +} - /** The max results of the containers. */ - MaxResults?: int32; +/** The last modified response header */ +model LastModifiedResponseHeader { + /** The date/time that the container was last modified. */ + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("Last-Modified") lastModified: utcDateTime; +} - /** The container segment. */ - Segment: ContainerItem[]; // TODO: XML Serialization +/** The request ID response header. */ +model RequestIdResponseHeader { + /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */ + @clientName("RequestId") + @header("x-ms-request-id") requestId: string; +} - /** The next marker of the containers. */ - NextMarker?: string; +/** The client request ID response header. */ +model ClientRequestIdResponseHeader { + /** If a client request id header is sent in the request, this header will be present in the response with the same value. */ + @clientName("ClientRequestId") + @header("x-ms-client-request-id") clientRequestId?: string; } -/** An Azure Storage container. */ -model ContainerItem { - /** The name of the container. */ - Name: string; +/** The Date response header */ +model DateResponseHeader { + /** UTC date/time value generated by the service that indicates the time at which the response was initiated */ + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("Date") date: utcDateTime; +} - /** The properties of the container. */ - Properties: ContainerProperties; +/** The ETag response header */ +model EtagResponseHeader { + /** The ETag contains a value that you can use to perform operations conditionally. */ + @header("ETag") eTag: string; +} - /** The metadata of the container. */ - Metadata?: ContainerMetadata; +/** The copy source tags header parameter. */ +model CopySourceTagsParameter { + /** Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags. */ + @clientName("copySourceTags") + @header("x-ms-copy-source-tags") copySourceTags?: string; } -/** The properties of a container. */ -model ContainerProperties { - /** The date-time the container was created in RFC1123 format. */ - @encode("date-time-rfc1123") - `Creation-Time`?: utcDateTime; +/** The blob copy source tags types. */ +enum BlobCopySourceTags { + /** The replace blob source tags option. */ + REPLACE, + /** The copy blob source tags option. */ + COPY +} - /** The date-time the container was last modified in RFC1123 format. */ - @encode("date-time-rfc1123") - `Last-Modified`: utcDateTime; +/** The copy source authorization header parameter */ +model CopySourceAuthorizationParameter { + /** Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source. */ + @header("x-ms-copy-source-authorization") + @clientName("copySourceAuthorization") + copySourceAuthorization?: string; +} - /** The ETag of the container. */ - ETag: string; +/** The copy source blob properties parameter. */ +model CopySourceBlobPropertiesParameter { + /** Optional, default is true. Indicates if properties from the source blob should be copied. */ + @header("x-ms-copy-source-blob-properties") + @clientName("copySourceBlobProperties") + copySourceBlobProperties?: boolean; +} - /** The lease status of the container. */ - LeaseStatus?: LeaseStatus; +/** The copy source header parameter. */ +model 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") + @clientName("copySource") + copySource: string; +} - /** The lease state of the container. */ - LeaseState?: LeaseState; +/** The source content MD5 header parameter. */ +model SourceContentMd5Parameter { + /** Specify the md5 calculated for the range of bytes that must be read from the copy source. */ + @header("x-ms-source-content-md5") + @clientName("sourceContentMD5") + sourceContentMd5?: string; +} - /** The lease duration of the container. */ - LeaseDuration?: LeaseDuration; +/** The source if tags parameter. */ +model SourceIfTagsParameter { + /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ + @header("x-ms-source-if-tags") + @clientName("sourceIfTags") + sourceIfTags?: string; +} - /** The public access type of the container. */ - PublicAccess?: PublicAccessType; +/** The source if match parameter. */ +model SourceIfMatchParameter { + /** Specify an ETag value to operate only on blobs with a matching value. */ + @header("x-ms-source-if-match") + @clientName("sourceIfMatch") + sourceIfMatch?: string; } -/** The metadata of a container. */ -model ContainerMetadata is Record { - // @xml.attribute(true) - Encrypted: string; +/** The source if none match parameter. */ +model 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") + @clientName("sourceIfNoneMatch") + sourceIfNoneMatch?: string; } -/** Stats for the storage service. */ -model StorageServiceStats { - /** The geo replication stats. */ - GeoReplication: GeoReplication; +/** The source if modified since parameter. */ +model SourceIfModifiedSinceParameter { + /** 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-modified-since") + @clientName("sourceIfModifiedSince") + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + sourceIfModifiedSince?: utcDateTime; } -/** The geo replication status. */ -model GeoReplication { - Status: GeoReplicationStatus; - LastSyncTime: string; +/** The content CRC64 parameter. */ +model ContentCrc64Parameter { + /** Specify the transactional crc64 for the body, to be validated by the service. */ + @clientName("transactionalContentCrc64") + @header("x-ms-content-crc64") contentCrc64?: string; } -/** The geo replication status. */ -enum GeoReplicationStatus { - /** The geo replication is live. */ - live, - /** The geo replication is bootstrap. */ - bootstrap, - /** The geo replication is unavailable. */ - unavailable +/** The access tier optional parameter. */ +model AccessTierOptionalParameter { + /** Optional. The tier to be set on the blob. */ + @clientName("tier") + @header("x-ms-access-tier") accessTier?: AccessTier; } -/** Key information */ -model KeyInfo { - /** The date-time the key is active. */ - Start: string; - - /** The date-time the key expires. */ - Expiry: string; +/** The content MD5 parameter. */ +model 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; } -/** A user delegation key. */ -model UserDelegationKey { - /** The Azure Active Directory object ID in GUID format. */ - SignedOid: uuid; +/** The legal hold optional parameter. */ +model LegalHoldOptionalParameter { + /** Specified if a legal hold should be set on the blob. */ + @clientName("legalHold") + @header("x-ms-legal-hold") legalHold?: boolean; +} - /** The Azure Active Directory tenant ID in GUID format. */ - SignedTid: uuid; +/** The immutability policy mode parameter. */ +model ImmutabilityPolicyModeParameter { + /** Specifies the immutability policy mode to set on the blob. */ + @clientName("immutabilityPolicyMode") + @header("x-ms-immutability-policy-mode") immutabilityPolicyMode?: BlobImmutabilityPolicyMode; +} - /** The date-time the key is active. */ - SignedStart: string; +/** The immutability policy expiration parameter. */ +model ImmutabilityPolicyExpiryParameter { + /** Specifies the date time when the blobs immutability policy is set to expire. */ + @clientName("immutabilityPolicyExpiry") + @encode("date-time-rfc1123") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("x-ms-immutability-policy-until-date") immutabilityPolicyExpiry?: string; +} - /** The date-time the key expires. */ - SignedExpiry: string; +/** The blobs tags header parameter. */ +model BlobTagsHeaderParameter { + /** Optional. Used to set blob tags in various blob operations. */ + @clientName("BlobTagsString") + @header("x-ms-tags") blobTags?: string; +} - /** Abbreviation of the Azure Storage service that accepts the key. */ - SignedService: string; +/** The blob sequence number parameter. */ +model 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. */ + @clientName("blobSequenceNumber") + @header("x-ms-blob-sequence-number") blobSequenceNumber?: int64; +} - /** The service version that created the key. */ - SignedVersion: string; +/** The blob content length parameter. */ +model BlobContentLengthRequiredParameter { + /** 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. */ + @clientName("blobContentLength") + @header("x-ms-blob-content-length") blobContentLength: int64; +} - /** The key as a base64 string. */ - Value: string; +/** The encryption scope parameter. */ +model 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. */ + @clientName("encryptionScope") + @header("x-ms-encryption-scope") encryptionScope?: string; } -/** The public access types. */ -enum PublicAccessType { - /** Blob access. */ - blob, - /** Container access. */ - container, +/** The blob content disposition parameter. */ +model BlobContentDispositionParameter { + /** Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request. */ + @clientName("blobContentDisposition") + @header("x-ms-blob-content-disposition") blobContentDisposition?: string; +} + +/** The blob cache control parameter. */ +model BlobCacheControlParameter { + /** Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request. */ + @clientName("blobCacheControl") + @header("x-ms-blob-cache-control") blobCacheControl?: string; } -/** The copy status. */ -enum CopyStatus { - /** The copy operation is pending. */ - pending, - /** The copy operation succeeded. */ - success, - /** The copy operation failed. */ - failed, - /** The copy operation is aborted. */ - aborted, +/** The blob content MD5 parameter. */ +model 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. */ + @clientName("blobContentMD5") + @header("x-ms-blob-content-md5") blobContentMd5?: string; } -/** The lease duration. */ -enum LeaseDuration { - /** The lease is of infinite duration. */ - infinite, - /** The lease is of fixed duration. */ - fixed, +/** The blob content type parameter. */ +model BlobContentLanguageParameter { + /** Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request. */ + @clientName("blobContentLanguage") + @header("x-ms-blob-content-language") blobContentLanguage?: string; } -/** The lease state. */ -enum LeaseState { - /** The lease is available. */ - available, - /** The lease is currently leased. */ - leased, - /** The lease is expired. */ - expired, - /** The lease is breaking. */ - breaking, - /** The lease is broken. */ - broken, +/** The blob content type parameter. */ +model BlobContentEncodingParameter { + /** Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request. */ + @clientName("blobContentEncoding") + @header("x-ms-blob-content-encoding") blobContentEncoding?: string; } -/** The lease status. */ -enum LeaseStatus { - /** The lease is unlocked. */ - unlocked, - /** The lease is locked. */ - locked, +/** The blob content type parameter. */ +model BlobContentTypeParameter { + /** Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request. */ + @clientName("blobContentType") + @header("x-ms-blob-content-type") blobContentType?: string; } -/** Represents an access policy. */ -model AccessPolicy { - /** The date-time the policy is active. */ - Start: utcDateTime; - - /** The date-time the policy expires. */ - Expiry: utcDateTime; - - /** The permissions for acl the policy. */ - Permission: string; +/** The optional premium page blob access tier parameter. */ +model PremiumPageBlobAccessTierOptional { + /** Optional. Indicates the tier to be set on the page blob. */ + @clientName("tier") + @header("x-ms-access-tier") accessTier?: PremiumPageBlobAccessTier; } -/** The access tiers. */ -enum AccessTier { - /** The hot P4 tier. */ +/** The premium page blob access tier types. */ +enum PremiumPageBlobAccessTier { + /** The premium page blob access tier is P4. */ P4, - /** The hot P6 tier. */ + /** The premium page blob access tier is P6. */ P6, - /** The hot P10 tier. */ + /** The premium page blob access tier is P10. */ P10, - /** The hot P15 tier. */ + /** The premium page blob access tier is P15. */ P15, - /** The hot P20 tier. */ + /** The premium page blob access tier is P20. */ P20, - /** The hot P30 tier. */ + /** The premium page blob access tier is P30. */ P30, - /** The hot P40 tier. */ + /** The premium page blob access tier is P40. */ P40, - /** The hot P50 tier. */ + /** The premium page blob access tier is P50. */ P50, - /** The hot P60 tier. */ + /** The premium page blob access tier is P60. */ P60, - /** The hot P70 tier. */ + /** The premium page blob access tier is P70. */ P70, - /** The hot P80 tier. */ - P80, - /** The hot access tier. */ - Hot, - /** The cool access tier. */ - Cool, - /** The archive access tier. */ - Archive, -} - -/** The archive status. */ -enum ArchiveStatus { - /** The archive status is rehydrating pending to hot. */ - `rehydrate-pending-to-hot`, - /** The archive status is rehydrating pending to cool. */ - `rehydrate-pending-to-cool`, - /** The archive status is rehydrating pending to archive. */ - `rehydrate-pending-to-archive`, - /** The archive status is rehydrating pending to expired. */ - `rehydrate-pending-to-expired`, + /** The premium page blob access tier is P80. */ + P80 } -/** An Azure Storage Blob */ -model BlobItem { - // TODO: Add XML attribute of Encoded +/** The blob name parameter. */ +model BlobNameParameter { /** The name of the blob. */ - Name: string; - - /** Whether the blob is deleted. */ - Deleted: boolean; - - /** The snapshot of the blob. */ - Snapshot: string; - - /** The version id of the blob. */ - VersionId?: string; - - /** Whether the blob is the current version. */ - IsCurrentVersion?: boolean; - - /** The properties of the blob. */ - Properties: BlobProperties; - - /** The metadata of the blob. */ - Metadata?: BlobMetadata; - - /** The tags of the blob. */ - Tags?: BlobTag[]; - - /** The object replication metadata of the blob. */ - ObjectReplicationMetadata?: ObjectReplicationMetadata; - - /** Whether the blog has versions only. */ - HasVersionsOnly?: boolean; + @minLength(1) + @maxLength(1024) + @pattern("^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$") + @path + blobName: string; } -/** The properties of a blob. */ -model BlobProperties { - /** The date-time the blob was created in RFC1123 format. */ - @encode("date-time-rfc1123") - `Creation-Time`?: utcDateTime; - - /** The date-time the blob was last modified in RFC1123 format. */ - @encode("date-time-rfc1123") - `Last-Modified`: utcDateTime; - - /** The blog ETag. */ - ETag: string; +/** The blob delete type parameter. */ +model BlobDeleteTypeParameter { + /** Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled. */ + @query + @clientName("blobDeleteType") + deletetype?: DeleteSnapshotsOptionType; +} - /** The content length of the blob. */ - `Content-Length`?: int64; +/** The type of blob deletions. */ +enum BlobDeleteType { + /** Permanently delete the blob. */ + Permanent, +} - /** The content type of the blob. */ - `Content-Type`?: string; +/** The delete snapshot parameter. */ +model DeleteSnapshotsParameter { + /** 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 */ + @clientName("deleteSnapshots") + @header("x-ms-delete-snapshots") deleteSnapshots?: DeleteSnapshotsOptionType; +} - /** The content encoding of the blob. */ - `Content-Encoding`?: string; +/** The delete snapshots option type. */ +enum DeleteSnapshotsOptionType { + /** The delete snapshots include option is not specified. */ + none, + /** The delete snapshots include option is include. */ + include, +} - /** The content language of the blob. */ - `Content-Language`?: string; +/** The encryption algorithm parameter. */ +model EncryptionAlgorithmParameter { + /** Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256. */ + @clientName("encryptionAlgorithm") + @header("x-ms-encryption-algorithm") encryptionAlgorithm?: string; +} - /** The content MD5 of the blob. */ - `Content-MD5`?: string; +/** The encryption key SHA256 hash parameter. */ +model 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. */ + @clientName("encryptionKeySha256") + @header("x-ms-encryption-key-sha256") encryptionKeySha256?: string; +} - /** The content disposition of the blob. */ - `Content-Disposition`?: string; - /** The cache control of the blob. */ - `Cache-Control`?: string; +/** The encryption key parameter. */ +model 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. */ + @clientName("encryptionKey") + @header("x-ms-encryption-key") encryptionKey?: string; +} - /** The sequence number of the blob. */ - `x-ms-blob-sequence-number`?: int64; +/** The If-Tags parameters. */ +model IfTagsParameter { + /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ + @clientName("ifTags") + @header("x-ms-if-tags") ifTags?: string; +} - /** The blob type. */ - BlobType?: BlobType; +/** The If-Match parameter. */ +model IfMatchParameter { + /** A condition that must be met in order for the request to be processed. */ + @clientName("ifMatch") + @header("If-Match") ifMatch?: string; +} - /** The lease status of the blob. */ - LeaseStatus?: LeaseStatus; +/** The If-None-Match parameter. */ +model IfNoneMatchParameter { + /** A condition that must be met in order for the request to be processed. */ + @clientName("ifNoneMatch") + @header("If-None-Match") ifNoneMatch?: string; +} - /** The lease state of the blob. */ - LeaseState?: LeaseState; +/** The get range content CRC64 parameter. */ +model GetRangeContentCrc64Parameter { + /** 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") rangeContentCrc64?: boolean; +} - /** The lease duration of the blob. */ - LeaseDuration?: LeaseDuration; +/** The get range content MD5 parameter. */ +model GetRangeContentMd5Parameter { + /** Optional. When this header is set to true and specified together with the Range header, 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") rangeContentMd5?: boolean; +} - /** The copy ID of the blob. */ - CopyId?: string; +/** The range parameter. */ +model RangeParameter { + /** Return only the bytes of the blob in the specified range. */ + @clientName("range") + @header("x-ms-range") range?: string; +} - /** The copy status of the blob. */ - CopyStatus?: CopyStatus; +/** The version ID parameter. */ +model 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. */ + @header + @clientName("versionId") + versionid: string; +} - /** The copy source of the blob. */ - CopySource?: string; +/** The snapshot parameter. */ +model 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; +} - /** The copy progress of the blob. */ - CopyProgress?: string; +/** Represents a blob name. */ +model BlobName { + /** Whether the blob name is encoded. */ + @Xml.attribute + @Xml.name("Encoded") encoded: boolean; - /** The copy completion time of the blob. */ - @encode("date-time-rfc1123") - CopyCompletionTime?: utcDateTime; + /** The blob name. */ + @Xml.unwrapped content: string; +} - /** The copy status description of the blob. */ - CopyStatusDescription?: string; +/** Represents a blob prefix. */ +model BlobPrefix { + /** The blob name. */ + @Xml.name("Name") name: BlobName; +} - /** Whether the blog is encrypted on the server. */ - ServerEncrypted?: boolean; +/** Represents an array of blobs. */ +@Xml.name("Blobs") +model BlobHierarchyListSegment { + /** The blob items */ + @Xml.name("BlobItems") blobItems: BlobItemInternal[]; - /** Whether the blog is incremental copy. */ - IncrementalCopy?: boolean; + /** The blob prefixes. */ + @Xml.name("BlobPrefixes") blobPrefixes: BlobPrefix[]; +} - /** The name of the desination snapshot. */ - DestinationSnapshot?: string; +/** An enumeration of blobs */ +@Xml.name("EnumerationResults") +model ListBlobsHierarchySegmentResponse { + /** The service endpoint. */ + @Xml.attribute + @Xml.name("ServiceEndpoint") serviceEndpoint: string; - /** The time the blob was deleted. */ - DeletedTime?: utcDateTime; + /** The container name. */ + @Xml.attribute + @Xml.name("ContainerName") containerName: string; - /** The remaining retention days of the blob. */ - RemainingRetentionDays?: int32; + /** The delimiter of the blobs. */ + @Xml.name("Delimiter") delimiter?: string; - /** The access tier of the blob. */ - AccessTier?: AccessTier; + /** The prefix of the blobs. */ + @Xml.name("Prefix") prefix?: string; - /** Whether the access tier is inferred. */ - AccessTierInferred?: boolean; + /** The marker of the blobs. */ + @Xml.name("Marker") marker?: string; - /** The archive status of the blob. */ - ArchiveStatus?: ArchiveStatus; + /** The max results of the blobs. */ + @Xml.name("MaxResults") maxResults?: int32; - /** The encryption scope of the blob. */ - EncryptionScope?: string; + /** The blob segment. */ + @Xml.name("Segment") segment: BlobHierarchyListSegment; - /** The access tier change time of the blob. */ - @encode("date-time-rfc1123") - AccessTierChangeTime?: utcDateTime; + /** The next marker of the blobs. */ + @Xml.name("NextMarker") nextMarker?: string; +} - /** The number of tags for the blob. */ - TagCount?: int32; +/** The delimiter parameter. */ +model DelimiterParameter { + /** 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; +} - @clientName("ExpiresOn") - /** The expire time of the blob. */ - @encode("date-time-rfc1123") - `Expiry-Time`?: utcDateTime; +/** The list blob includes parameter. */ +model ListBlobsInclude { + /** Include this parameter to specify one or more datasets to include in the response. */ + @query({ format: "csv" }) include?: ListBlobsIncludes[]; +} - @clientName("IsSealed") - /** Whether the blob is sealed. */ - Sealed?: boolean; +/** The list blob includes parameter values. */ +enum ListBlobsIncludes { + /** The include copies. */ + copies, + /** The include deleted blobs. */ + deleted, + /** The include metadata. */ + metadata, + /** The include snapshots. */ + snapshots, + /** The include uncommitted blobs. */ + uncommittedblobs, + /** The include versions. */ + versions, + /** The include tags. */ + tags, + /** The include immutable policy. */ + immutabilitypolicy, + /** The include legal hold. */ + legalhold, + /** The include deleted with versions. */ + deletedwithversions +} - /** The rehydrate priority of the blob. */ - RehydratePriority?: RehydratePriority; +/** The lease duration parameter. */ +model LeaseDurationParameter { + /** 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. */ + @clientName("duration") + @header("x-ms-lease-duration") leaseDuration: int32; +} - /** The last access time of the blob. */ - @encode("date-time-rfc1123") - LastAccessTime?: utcDateTime; +/** The source lease ID header parameter. */ +model SourceLeaseIdParameter { + /** A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ + @clientName("sourceLeaseId") + @header("x-ms-source-lease-id") sourceLeaseId?: string; +} - @clientName("ImmutabilityPolicyExpiresOn") - /** The immutability policy until time of the blob. */ - @encode("date-time-rfc1123") - ImmutabilityPolicyUntilDate?: utcDateTime; +/** The source container name header parameter. */ +model SourceContainerNameParameter { + /** Required. Specifies the name of the container to rename. */ + @clientName("SourceContainerName") + @header("x-ms-source-container-name") sourceContainerName: string; +} - /** The immutability policy mode of the blob. */ - ImmutabilityPolicyMode?: BlobImmutabilityPolicyMode; +/** The deleted container name header. */ +model DeletedContainerNameParameter { + /** Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore. */ + @clientName("DeletedContainerName") + @header("x-ms-deleted-container-name") deletedContainerName?: string; +} - /** Whether the blob is under legal hold. */ - LegalHold?: boolean; +/** The deleted container version header. */ +model DeletedContainerVersionParameter { + /** Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore. */ + @clientName("DeletedContainerVersion") + @header("x-ms-deleted-container-version") deletedContainerVersion?: string; } -/** The immutability policy mode. */ -enum BlobImmutabilityPolicyMode { - /** The immutability policy is mutable. */ - Mutable, - /** The immutability policy is locked. */ - Locked, - /** The immutability policy is unlocked. */ - Unlocked +/** The container ACL parameter. */ +model ContainerAclParameter { + /** The access control list for the container. */ + @body + acl: SignedIdentifiers; } -/** The blob type. */ -enum BlobType { - /** The blob is a block blob. */ - BlockBlob, - /** The blob is a page blob. */ - PageBlob, - /** The blob is an append blob. */ - AppendBlob +/** The container name header */ +model ContainerNameParameter { + /** The name of the container. */ + @header + @path + containerName: string; } -/** The rehydrate priority. */ -enum RehydratePriority { - /** The rehydrate priority is high. */ - High, - /** The rehydrate priority is standard. */ - Standard +/** The If-Unmodified-Since header. */ +model IfUnmodifiedSinceParameter { + /** A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time. */ + @encode("date-time-rfc1123") + @clientName("ifUnmodifiedSince") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("If-Unmodified-Since") ifUnmodifiedSince?: utcDateTime; } -/** The blob metadata. */ -model BlobMetadata is Record { - // @xml.attribute(true) - Encrypted: string; +/** The If-Modified-Since header. */ +model IfModifiedSinceParameter { + /** A date-time value. A request is made under the condition that the resource has been modified since the specified date-time. */ + @encode("date-time-rfc1123") + @clientName("ifModifiedSince") + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("If-Modified-Since") ifModifiedSince?: utcDateTime; } -/** The blob tags. */ -model BlobTag { - /** The key of the tag. */ - Key: string; - /** The value of the tag. */ - Value: string; +/** The lease ID parameter. */ +model 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 object replication metadata. */ -model ObjectReplicationMetadata is Record; +/** The deny encryption scope override parameter. */ +model DenyEncryptionScopeOverrideParameter { + /** Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container. */ + @header("x-ms-deny-encryption-scope-override") denyEncryptionScopeOverride?: boolean; +} -/// Service Properties +/** The default encryption scope parameter. */ +model DefaultEncryptionScopeParameter { + /** 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; +} -/** The service properties. */ -model StorageServiceProperties { - /** The logging properties. */ - Logging?: Logging; - /** The hour metrics properties. */ - HourMetrics?: Metrics; - /** The minute metrics properties. */ - MinuteMetrics?: Metrics; - /** The CORS properties. */ - Cors?: CorsRule[]; - /** The default service version. */ - DefaultServiceVersion?: string; - /** The delete retention policy. */ - DeleteRetentionPolicy?: RetentionPolicy; - /** The static website properties. */ - StaticWebsite?: StaticWebsite; +/** The blob public access parameter. */ +model BlobPublicAccessParameter { + /** Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'. */ + @clientName("access") + @header("x-ms-blob-public-access") publicAccess?: PublicAccessType; } -/** The static website properties. */ -model StaticWebsite { - /** The index document. */ - IndexDocument?: string; - /** The error document. */ - ErrorDocument?: string; +// TODO: Figure out how to better represent this +/** The metadata parameter. */ +model MetadataParameter is Record { + /** 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. */ + @header("x-ms-meta") meta?: string; } -/** The CORS rule. */ -model CorsRule { - /** The allowed origins. */ - AllowedOrigins: string; - /** The allowed methods. */ - AllowedMethods: string; - /** The allowed headers. */ - AllowedHeaders: string; - /** The exposed headers. */ - ExposedHeaders: string; - /** The maximum age in seconds. */ - MaxAgeInSeconds: int32; +/** The filter blobs include parameter. */ +model FilterBlobsInclude { + /** Include this parameter to specify one or more datasets to include in the response. */ + @query({ format: "csv" }) include?: FilterBlobsIncludes[]; } -/** The metrics properties. */ -model Metrics { - /** The version of the metrics properties. */ - Version?: string; - /** Whether it is enabled. */ - Enabled: boolean; - /** Whether to include API in the metrics. */ - IncludeAPIs?: boolean; - /** The retention policy of the metrics. */ - RetentionPolicy?: RetentionPolicy; - /** The service properties of the metrics. */ - ServiceProperties?: MetricsServiceProperties; +/** The filter blobs where parameter. */ +model FilterBlobsWhere { + /** Filters the results to return only to return only blobs whose tags match the specified expression. */ + @query + where?: string; } -/** The metrics service properties. */ -model MetricsServiceProperties { - /** The hour metrics properties. */ - HourMetrics: MetricsProperties; - /** The minute metrics properties. */ - MinuteMetrics: MetricsProperties; +/** The Content-Length header. */ +model ContentLengthParameter { + /** The length of the request. */ + @header("Content-Length") contentLength: int64; } -/** The metrics properties. */ -model MetricsProperties { - /** Whether to include API in the metrics. */ - Enabled: boolean; - /** The version of the metrics properties. */ - Version: string; - /** The retention policy of the metrics. */ - RetentionPolicy: RetentionPolicy; +/** The Content-Type header for multi-part requests. */ +model MultipartContentTypeParameter { + /** Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_ */ + @clientName("multipartContentType") + @header("Content-Type") contentType: string; } -/** The logging properties. */ -model Logging { - /** The version of the logging properties. */ - Version: string; - /** Whether delete operation is logged. */ - Delete: boolean; - /** Whether read operation is logged. */ - Read: boolean; - /** Whether write operation is logged. */ - Write: boolean; - /** The retention policy of the logs. */ - RetentionPolicy: RetentionPolicy; +/** The max results parameter. */ +model 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 maxresults?: int32; } -/** The retention policy. */ -model RetentionPolicy { - /** Whether to enable the retention policy. */ - Enabled: boolean; - /** The number of days to retain the logs. */ - Days: int32; - /** Whether to allow permanent delete. */ - AllowPermanentDelete: boolean; +/** The marker parameter. */ +model 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. */ + @query marker?: string; } -// List Blobs +/** The prefix parameter. */ +model PrefixParameter { + /** Filters the results to return only containers whose name begins with the specified prefix. */ + @query prefix?: string; +} -/** An enumeration of blobs. */ -model ListBlobsFlatSegmentResponse { - /** The service endpoint. */ - ServiceEndpoint: string; // TODO: XML Attribute +/** The client request ID parameter. */ +model ClientRequestIdParameter { + /** 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. */ + @clientName("requestId") + @header("x-ms-client-request-id") clientRequestId?: string; +} - /** The container name. */ - ContainerName: string; // TODO: XML Attribute +/** The timeout parameter. */ +model TimeoutParameter { + @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") + @query timeout?: int32; +} - /** The prefix of the blobs. */ - Prefix?: string; +/** The API version parameter. */ +model ApiVersionParameter { + /** Specifies the version of the operation to use for this request. */ + @header("x-ms-version") + version: string; +} - /** The marker of the blobs. */ - Marker?: string; +/** The required lease ID header. */ +model ProposedLeaseIdRequired { + /** Required. The proposed lease ID for the container. */ + @header("x-ms-proposed-lease-id") proposedLeaseId: string; +} - /** The max results of the blobs. */ - MaxResults?: int32; +/** The optional lease ID header. */ +model ProposedLeaseIdOptional { + /** Optional. The proposed lease ID for the container. */ + @header("x-ms-proposed-lease-id") proposedLeaseId?: string; +} - /** The blob segment. */ - Segment: BlobItem[]; // TODO: XML Serialization +/** The lease ID required header. */ +model LeaseIdRequired { + /** Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ + @clientName("leaseId") + @header("x-ms-lease-id") leaseId: string; +} - /** The next marker of the blobs. */ - NextMarker?: string; +/** The body parameter. */ +model BodyParameter { + /** The body of the request. */ + @body + body: bytes; } diff --git a/specification/storage/Microsoft.BlobStorage/package-lock.json b/specification/storage/Microsoft.BlobStorage/package-lock.json index 56eae8c9c09b..d37059b5414c 100644 --- a/specification/storage/Microsoft.BlobStorage/package-lock.json +++ b/specification/storage/Microsoft.BlobStorage/package-lock.json @@ -14,7 +14,8 @@ "@typespec/compiler": "latest", "@typespec/openapi": "^0.54.0", "@typespec/openapi3": "^0.54.0", - "@typespec/rest": "^0.54.0" + "@typespec/rest": "^0.54.0", + "@typespec/xml": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvMzYyMDIzNC9hcnRpZmFjdE5hbWUvcGFja2FnZXM1/content?format=file&subPath=%2Ftypespec-xml-0.55.0-pr-3035.20240320.10.tgz" } }, "node_modules/@azure-tools/typespec-autorest": { @@ -233,6 +234,16 @@ "@typespec/compiler": "~0.54.0" } }, + "node_modules/@typespec/xml": { + "version": "0.55.0-pr-3035.20240320.10", + "resolved": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvMzYyMDIzNC9hcnRpZmFjdE5hbWUvcGFja2FnZXM1/content?format=file&subPath=%2Ftypespec-xml-0.55.0-pr-3035.20240320.10.tgz", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.54.0 || >=0.55.0-0 <0.55.0" + } + }, "node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", diff --git a/specification/storage/Microsoft.BlobStorage/package.json b/specification/storage/Microsoft.BlobStorage/package.json index 5dc63ab1bcf9..7a8c0277b4fe 100644 --- a/specification/storage/Microsoft.BlobStorage/package.json +++ b/specification/storage/Microsoft.BlobStorage/package.json @@ -9,7 +9,9 @@ "@typespec/compiler": "latest", "@typespec/openapi": "^0.54.0", "@typespec/openapi3": "^0.54.0", - "@typespec/rest": "^0.54.0" + "@typespec/rest": "^0.54.0", + "@typespec/xml": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvMzYyMDIzNC9hcnRpZmFjdE5hbWUvcGFja2FnZXM1/content?format=file&subPath=%2Ftypespec-xml-0.55.0-pr-3035.20240320.10.tgz" + }, "private": true } diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 20000ee4d4a8..50a4d75890d5 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -154,9 +154,9 @@ interface BlobServiceBatch { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" submitBatch( /** The batch request content */ - @body body: bytes; // TODO: Investigate this type - ...ContentLengthHeader; - ...MultipartContentType; + ...BodyParameter; // TODO: Investigate this type + ...ContentLengthParameter; + ...MultipartContentTypeParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; @@ -204,15 +204,15 @@ interface BlobServiceContainer { createContainer( ...ContainerNameParameter; ...MetadataParameter; - ...BlobPublicAccess; - ...DefaultEncryptionScope; - ...DenyEncryptionScopeOverride; + ...BlobPublicAccessParameter; + ...DefaultEncryptionScopeParameter; + ...DenyEncryptionScopeOverrideParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -230,12 +230,12 @@ interface BlobServiceContainer { ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ): { @statusCode statusCode: 200; // TODO: x-ms-meta headers - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -262,9 +262,9 @@ interface BlobServiceContainer { ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...LeaseIdOptional; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...LeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ): { @statusCode statusCode: 202; @@ -288,11 +288,11 @@ interface BlobServiceContainerMetadata { ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...IfModifiedSince; - ...LeaseIdOptional; + ...IfModifiedSinceParameter; + ...LeaseIdOptionalParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -313,13 +313,13 @@ interface BlobServiceContainerAccessPolicy { ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ): { @statusCode statusCode: 200; @body body: SignedIdentifiers; // TODO: XML ...PublicAccessResponseHeader; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -334,19 +334,19 @@ interface BlobServiceContainerAccessPolicy { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" setContainerAccessPolicy( ...ContainerNameParameter; - ...ContainerAcl; + ...ContainerAclParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; - ...LeaseIdOptional; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...LeaseIdOptionalParameter; /** The signed identifiers. */ @body body: SignedIdentifiers; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -364,8 +364,8 @@ interface ContainerRestoreService { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" undeleteContainer( ...ContainerNameParameter; - ...DeletedContainerName; - ...DeletedContainerVersion; + ...DeletedContainerNameParameter; + ...DeletedContainerVersionParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; @@ -388,8 +388,8 @@ interface ContainerRenameService { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" renameContainer( ...ContainerNameParameter; - ...SourceContainerName; - ...SourceLeaseId; + ...SourceContainerNameParameter; + ...SourceLeaseIdParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; @@ -412,10 +412,10 @@ interface ContainerBatchService { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" submitBatch( /** The batch request content */ - @body body: bytes; // TODO: Investigate this type + ...BodyParameter; ...ContainerNameParameter; - ...ContentLengthHeader; - ...MultipartContentType; + ...ContentLengthParameter; + ...MultipartContentTypeParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; @@ -468,13 +468,13 @@ interface ContainerLeaseService { ...ApiVersionParameter; ...ClientRequestIdParameter; ...ProposedLeaseIdOptional; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ): { @statusCode statusCode: 201; ...LeaseIdResponseHeader; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -496,12 +496,12 @@ interface ContainerReleaseLeaseService { ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -523,12 +523,12 @@ interface ContainerRenewLeaseService { ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ): { @statusCode statusCode: 200; ...LeaseIdResponseHeader; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -549,13 +549,13 @@ interface ConatinerBreakLeaseService { ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; - ...LeaseBreakPeriod; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...LeaseBreakPeriodParameter; ): { @statusCode statusCode: 202; ...LeaseTimeResponseHeader; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...LeaseIdResponseHeader; ...VersionResponseHeader; @@ -577,12 +577,12 @@ interface ContainerChangeLeaseService { ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ): { @statusCode statusCode: 200; ...LeaseIdResponseHeader; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...LeaseTimeResponseHeader; ...ClientRequestIdResponseHeader; @@ -680,22 +680,22 @@ interface BlobService { ...VersionIdParameter; ...TimeoutParameter; ...RangeParameter; - ...LeaseIdOptional; - ...GetRangeContentMD5; - ...GetRangeContentCRC64; + ...LeaseIdOptionalParameter; + ...GetRangeContentMd5Parameter; + ...GetRangeContentCrc64Parameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...ClientRequestIdParameter; ...ApiVersionParameter; ): { @statusCode statusCode: 200; - @body body: bytes; + ...BodyParameter; // TODO: x-ms-meta headers // TODO: x-ms-or headers @@ -703,7 +703,7 @@ interface BlobService { ...CreationTimeResponseHeader; ...ObjectReplicationPolicyIdResponseHeader; ...ContentRangeResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ContentEncodingResponseParameter; ...CacheControlResponseHeader; ...ContentDispositionResponseHeader; @@ -735,10 +735,10 @@ interface BlobService { ...LegalHoldResponseHeader; ...ContentTypeResponseHeader; ...ContentLengthResponseHeader; - ...ETagResponseHeader; + ...EtagResponseHeader; } | { @statusCode statusCode: 206; - @body body: bytes; + ...BodyParameter; // TODO: x-ms-meta headers // TODO: x-ms-or headers @@ -746,7 +746,7 @@ interface BlobService { ...CreationTimeResponseHeader; ...ObjectReplicationPolicyIdResponseHeader; ...ContentRangeResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ContentEncodingResponseParameter; ...CacheControlResponseHeader; ...ContentDispositionResponseHeader; @@ -778,7 +778,7 @@ interface BlobService { ...LegalHoldResponseHeader; ...ContentTypeResponseHeader; ...ContentLengthResponseHeader; - ...ETagResponseHeader; + ...EtagResponseHeader; } | 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. */ @@ -791,12 +791,12 @@ interface BlobService { ...BlobNameParameter; ...SnapshotParameter; ...VersionIdParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -824,8 +824,8 @@ interface BlobService { ...LeaseStatusResponseHeader; ...ContentTypeResponseHeader; ...ContentLengthResponseHeader; - ...ETagResponseHeader; - ...ContentMD5ResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; ...ContentEncodingResponseParameter; ...CacheControlResponseHeader; ...ContentDispositionResponseHeader; @@ -867,10 +867,10 @@ interface BlobService { ...SnapshotParameter; ...VersionIdParameter; ...TimeoutParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...DeleteSnapshotsParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -898,21 +898,21 @@ interface PageBlobService { ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...ContentLengthHeader; + ...ContentLengthParameter; ...PremiumPageBlobAccessTierOptional; ...BlobContentTypeParameter; ...BlobContentEncodingParameter; ...BlobContentLanguageParameter; - ...BlobContentMD5Parameter; + ...BlobContentMd5Parameter; ...BlobCacheControlParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...BlobContentDispositionParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -926,9 +926,9 @@ interface PageBlobService { ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -952,20 +952,20 @@ interface AppendBlobService { ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...ContentLengthHeader; + ...ContentLengthParameter; ...BlobContentTypeParameter; ...BlobContentEncodingParameter; ...BlobContentLanguageParameter; - ...BlobContentMD5Parameter; + ...BlobContentMd5Parameter; ...BlobCacheControlParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...BlobContentDispositionParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -978,9 +978,9 @@ interface AppendBlobService { ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -1007,24 +1007,24 @@ interface BlockBlobService { // TODO: body /** The bytes to upload to the block blob. */ - @body body: bytes; + ...BodyParameter; ...TimeoutParameter; - ...ContentMD5Parameter; + ...ContentMd5Parameter; ...BlobContentTypeParameter; ...BlobContentEncodingParameter; ...BlobContentLanguageParameter; - ...BlobContentMD5Parameter; + ...BlobContentMd5Parameter; ...BlobCacheControlParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...BlobContentDispositionParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; ...AccessTierOptionalParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -1038,9 +1038,9 @@ interface BlockBlobService { ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -1065,22 +1065,22 @@ interface BlockBlobFromUrlService{ ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...ContentMD5Parameter; - ...ContentLengthHeader; + ...ContentMd5Parameter; + ...ContentLengthParameter; ...BlobContentTypeParameter; ...BlobContentEncodingParameter; ...BlobContentLanguageParameter; - ...BlobContentMD5Parameter; + ...BlobContentMd5Parameter; ...BlobCacheControlParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...BlobContentDispositionParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; ...AccessTierOptionalParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -1090,7 +1090,7 @@ interface BlockBlobFromUrlService{ ...SourceIfTagsParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...SourceContentMD5Parameter; + ...SourceContentMd5Parameter; ...BlobTagsHeaderParameter; ...CopySourceParameter; ...CopySourceBlobPropertiesParameter; @@ -1099,9 +1099,9 @@ interface BlockBlobFromUrlService{ ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...IsServerEncryptedResponseHeader; @@ -1147,7 +1147,7 @@ interface BlobExpirationService { ...BlobExpiryTimeParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1169,13 +1169,13 @@ interface BlobSetHttpHeadersService { ...TimeoutParameter; ...BlobCacheControlParameter; ...BlobContentTypeParameter; - ...BlobContentMD5Parameter; + ...BlobContentMd5Parameter; ...BlobContentEncodingParameter; ...BlobContentLanguageParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...BlobContentDispositionParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -1183,7 +1183,7 @@ interface BlobSetHttpHeadersService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; ...ClientRequestIdResponseHeader; @@ -1204,14 +1204,14 @@ interface BlobSetImmutabilityPolicyService { ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...IfUnmodifiedSince; + ...IfUnmodifiedSinceParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; ...ImmutabilityPolicyExpiryParameter; ...ImmutabilityPolicyModeParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1279,19 +1279,19 @@ interface BlobSetMetadataService { ...ApiVersionParameter; ...ClientRequestIdParameter; // TODO: Metadata ...MetadataParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1318,14 +1318,14 @@ interface BlobLeaseAcquireService { ...ClientRequestIdParameter; ...LeaseDurationParameter; ...ProposedLeaseIdOptional; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1349,14 +1349,14 @@ interface BlobLeaseReleaseService { ...ApiVersionParameter; ...ClientRequestIdParameter; ...LeaseIdRequiredParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1379,14 +1379,14 @@ interface BlobLeaseRenewService { ...ApiVersionParameter; ...ClientRequestIdParameter; ...LeaseIdRequiredParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1411,14 +1411,14 @@ interface BlobLeaseChangeService { ...ClientRequestIdParameter; ...LeaseIdRequiredParameter; ...ProposedLeaseIdOptional; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1442,14 +1442,14 @@ interface BlobLeaseBreakService { ...ApiVersionParameter; ...ClientRequestIdParameter; ...LeaseBreakPeriodParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; ): { @statusCode statusCode: 202; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1471,13 +1471,13 @@ interface BlobSnapshotService { ...BlobNameParameter; ...TimeoutParameter; // TODO: ...MetadataParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -1485,7 +1485,7 @@ interface BlobSnapshotService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1515,13 +1515,13 @@ interface BlobCopyService { ...SourceIfMatchParameter; ...SourceIfNoneMatchParameter; ...SourceIfTagsParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; ...CopySourceParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; ...BlobTagsHeaderParameter; @@ -1531,7 +1531,7 @@ interface BlobCopyService { ...LegalHoldOptionalParameter; ): { @statusCode statusCode: 202; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1560,16 +1560,16 @@ interface BlobCopySyncService { ...SourceIfUnmodifiedSinceParameter; ...SourceIfMatchParameter; ...SourceIfNoneMatchParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; ...CopySourceParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...SourceContentMD5Parameter; + ...SourceContentMd5Parameter; ...BlobTagsHeaderParameter; ...ImmutabilityPolicyExpiryParameter; ...ImmutabilityPolicyModeParameter; @@ -1579,7 +1579,7 @@ interface BlobCopySyncService { ...CopySourceTagsParameter; ): { @statusCode statusCode: 202; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1587,7 +1587,7 @@ interface BlobCopySyncService { ...DateResponseHeader; ...CopyIdResponseHeader; ...CopyStatusResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; ...EncryptionScopeResponseHeader; } | StorageError; @@ -1605,7 +1605,7 @@ interface BlobCopyAbortService { ...BlobNameParameter; ...TimeoutParameter; ...CopyIdParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; ): { @@ -1632,7 +1632,7 @@ interface BlobTierService { ...RehydratePriorityParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...IfTagsParameter; ): { @@ -1680,16 +1680,16 @@ interface BlobBlockStageService { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" stageBlock( /** The data to upload. */ - @body body: bytes; + ...BodyParameter; ...ContainerNameParameter; ...BlobNameParameter; ...BlockIdParameter; - ...ContentLengthHeader; - ...ContentMD5Parameter; + ...ContentLengthParameter; + ...ContentMd5Parameter; ...TimeoutParameter; ...ContentCrc64Parameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; @@ -1702,7 +1702,7 @@ interface BlobBlockStageService { ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; @@ -1723,17 +1723,17 @@ interface BlobBlockStageFromUrlService { ...ApiVersionParameter; ...ClientRequestIdParameter; ...BlockIdParameter; - ...ContentLengthHeader; + ...ContentLengthParameter; ...SourceUrlParameter; ...SourceRangeParameter; - ...SourceContentMD5Parameter; + ...SourceContentMd5Parameter; ...SourceContentCrc64Parameter; ...TimeoutParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...SourceIfModifiedSinceParameter; ...SourceIfUnmodifiedSinceParameter; ...SourceIfMatchParameter; @@ -1745,7 +1745,7 @@ interface BlobBlockStageFromUrlService { ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; @@ -1761,7 +1761,6 @@ interface BlobBlockListService { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" commitBlockList( - // TODO: XML with the body ...BlobBlocksParameter; ...ContainerNameParameter; ...BlobNameParameter; @@ -1770,8 +1769,8 @@ interface BlobBlockListService { ...BlobContentTypeParameter; ...BlobContentEncodingParameter; ...BlobContentLanguageParameter; - ...BlobContentMD5Parameter; - ...ContentMD5Parameter; + ...BlobContentMd5Parameter; + ...ContentMd5Parameter; ...ContentCrc64Parameter; // TODO: ...MetadataParameter; ...BlobContentDispositionParameter; @@ -1780,8 +1779,8 @@ interface BlobBlockListService { ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; ...AccessTierOptionalParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -1793,9 +1792,9 @@ interface BlobBlockListService { ...LegalHoldOptionalParameter; ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1818,14 +1817,14 @@ interface BlobBlockListService { ...ClientRequestIdParameter; ...SnapshotParameter; ...BlockListTypeParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...IfTagsParameter; ): { @statusCode statusCode: 200; @body body: BlockLookupList; // TODO: XML ...LastModifiedResponseHeader; - ...ETagResponseHeader; + ...EtagResponseHeader; ...ContentTypeResponseHeader; ...BlobContentLengthResponseHeader; ...ClientRequestIdResponseHeader; @@ -1844,16 +1843,16 @@ interface PageBlobUpdateService { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" uploadPages( /** The data to upload. */ - @body body: bytes; + ...BodyParameter; ...ContainerNameParameter; ...BlobNameParameter; - ...ContentLengthHeader; - ...ContentMD5Parameter; + ...ContentLengthParameter; + ...ContentMd5Parameter; ...ContentCrc64Parameter; ...TimeoutParameter; ...RangeParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; @@ -1861,8 +1860,8 @@ interface PageBlobUpdateService { ...IfSequenceNumberLessThanOrEqualToParameter; ...IfSequenceNumberLessThanParameter; ...IfSequenceNumberEqualToParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -1870,9 +1869,9 @@ interface PageBlobUpdateService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; ...BlobSequenceNumberResponseHeader; ...ClientRequestIdResponseHeader; @@ -1895,15 +1894,15 @@ interface PageBlobClearService { clearPages( ...ContainerNameParameter; ...BlobNameParameter; - ...ContentLengthHeader; + ...ContentLengthParameter; ...TimeoutParameter; ...RangeParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...IfSequenceNumberLessThanOrEqualToParameter; ...IfSequenceNumberLessThanParameter; ...IfSequenceNumberEqualToParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -1911,7 +1910,7 @@ interface PageBlobClearService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; ...ClientRequestIdResponseHeader; @@ -1932,22 +1931,22 @@ interface BlobPageUpdateFromUrlService { ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...ContentLengthHeader; + ...ContentLengthParameter; ...SourceUrlParameter; ...SourceRangeRequiredPutPageFromUrlParameter; - ...SourceContentMD5Parameter; + ...SourceContentMd5Parameter; ...SourceContentCrc64Parameter; ...RangeRequiredPutPageFromUrlParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...IfSequenceNumberLessThanOrEqualToParameter; ...IfSequenceNumberLessThanParameter; ...IfSequenceNumberEqualToParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -1960,13 +1959,13 @@ interface BlobPageUpdateFromUrlService { ...CopySourceAuthorizationParameter; ): { @statusCode statusCode: 202; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; ...BlobSequenceNumberResponseHeader; ...IsServerEncryptedResponseHeader; @@ -1989,9 +1988,9 @@ interface PageBlobListService { ...ClientRequestIdParameter; ...SnapshotParameter; ...RangeParameter; - ...LeaseIdOptional; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...LeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -1999,10 +1998,10 @@ interface PageBlobListService { ...MaxResultsParameter; ): { @statusCode statusCode: 200; - @body body: PageList; // TODO: XML + @body body: PageList; ...LastModifiedResponseHeader; - ...ETagResponseHeader; + ...EtagResponseHeader; ...BlobContentLengthResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -2028,9 +2027,9 @@ interface PageBlobDiffService { ...PrevSnapshotParameter; ...PrevSnapshotUrlParameter; ...RangeParameter; - ...LeaseIdOptional; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...LeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -2041,7 +2040,7 @@ interface PageBlobDiffService { @body body: PageList; // TODO: XML ...LastModifiedResponseHeader; - ...ETagResponseHeader; + ...EtagResponseHeader; ...BlobContentLengthResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -2061,13 +2060,13 @@ interface PageBlobResizeService { ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -2076,7 +2075,7 @@ interface PageBlobResizeService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; ...ClientRequestIdResponseHeader; @@ -2097,9 +2096,9 @@ interface PageBlobUpdateSequenceNumberService { ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...LeaseIdOptional; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...LeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -2109,7 +2108,7 @@ interface PageBlobUpdateSequenceNumberService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; ...ClientRequestIdResponseHeader; @@ -2130,18 +2129,18 @@ interface PageBlobIncrementalCopyService { ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...CopySourceParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; ): { @statusCode statusCode: 202; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -2161,22 +2160,22 @@ interface AppendBlobAppendBlockService { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" appendBlock( /** The data to upload. */ - @body body: bytes; + ...BodyParameter; ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...ContentLengthHeader; - ...ContentMD5Parameter; + ...ContentLengthParameter; + ...ContentMd5Parameter; ...ContentCrc64Parameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...BlobConditionMaxSizeParameter; ...BlobConditionAppendPosParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -2184,14 +2183,14 @@ interface AppendBlobAppendBlockService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; ...BlobAppendOffsetResponseHeader; ...BlobCommittedBlockCountResponseHeader; @@ -2212,20 +2211,20 @@ interface AppendBlockAppendBlockFromUrlService { ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...ContentLengthHeader; + ...ContentLengthParameter; ...SourceUrlParameter; ...SourceRangeParameter; - ...SourceContentMD5Parameter; + ...SourceContentMd5Parameter; ...SourceContentCrc64Parameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...BlobConditionMaxSizeParameter; ...BlobConditionAppendPosParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -2234,13 +2233,13 @@ interface AppendBlockAppendBlockFromUrlService { ...CopySourceAuthorizationParameter; ): { @statusCode statusCode: 201; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; - ...ContentMD5ResponseHeader; + ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; ...BlobAppendOffsetResponseHeader; ...BlobCommittedBlockCountResponseHeader; @@ -2261,10 +2260,10 @@ interface AppendBlobSealService { ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...BlobConditionAppendPosParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -2272,7 +2271,7 @@ interface AppendBlobSealService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - ...ETagResponseHeader; + ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -2295,12 +2294,12 @@ interface BlobQueryService { ...BlobNameParameter; ...SnapshotParameter; ...TimeoutParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; - ...IfModifiedSince; - ...IfUnmodifiedSince; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; ...IfMatchParameter; ...IfNoneMatchParameter; ...IfTagsParameter; @@ -2308,15 +2307,15 @@ interface BlobQueryService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200 | 206; - @body body: bytes; + ...BodyParameter; // TODO: MetadataResponseHeader; ...LastModifiedResponseHeader; ...ContentLengthResponseHeader; ...ContentTypeResponseHeader; ...ContentRangeResponseHeader; - ...ETagResponseHeader; - ...ContentMD5ResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; ...ContentEncodingResponseParameter; ...CacheControlResponseHeader; ...ContentLanguageResponseHeader; @@ -2340,7 +2339,7 @@ interface BlobQueryService { ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; - ...BlobContentMD5ResponseHeader; + ...BlobContentMd5ResponseHeader; } | StorageError; } @@ -2360,11 +2359,11 @@ interface BlobTagsService { ...ClientRequestIdParameter; ...SnapshotParameter; ...VersionIdParameter; - ...LeaseIdOptional; + ...LeaseIdOptionalParameter; ...IfTagsParameter; ): { @statusCode statusCode: 200; - @body body: BlobTags; // TODO: XML + @body body: BlobTags; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -2384,8 +2383,8 @@ interface BlobTagsService { ...ApiVersionParameter; ...ClientRequestIdParameter; ...VersionIdParameter; - ...LeaseIdOptional; - ...ContentMD5Parameter; + ...LeaseIdOptionalParameter; + ...ContentMd5Parameter; ...ContentCrc64Parameter; ...IfTagsParameter; ...BlobTagsBodyParameter; diff --git a/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json b/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json new file mode 100644 index 000000000000..4a1025de907e --- /dev/null +++ b/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json @@ -0,0 +1,114 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure.Storage.Blob service", + "version": "0000-00-00", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "x-ms-parameterized-host": { + "hostTemplate": "{endpoint}", + "useSchemePrefix": false, + "parameters": [ + { + "name": "endpoint", + "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 + } + ] + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "ApiKeyAuth": [] + }, + { + "OAuth2Auth": [ + "https://storage.azure.com/.default" + ] + } + ], + "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": {}, + "definitions": { + "Versions": { + "type": "string", + "description": "The Azure.Storage.Blob service versions.", + "enum": [ + "2020-10-02-preview", + "2020-12-06-preview", + "2021-02-12-preview", + "2021-04-10-preview", + "2021-08-06-preview", + "2021-12-02-preview" + ], + "x-ms-enum": { + "name": "Versions", + "modelAsString": true, + "values": [ + { + "name": "2020-10-02-preview", + "value": "2020-10-02-preview", + "description": "The 2020-10-02-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2020-12-06-preview", + "value": "2020-12-06-preview", + "description": "The 2020-12-06-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-02-12-preview", + "value": "2021-02-12-preview", + "description": "The 2021-02-12-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-04-10-preview", + "value": "2021-04-10-preview", + "description": "The 2021-04-10-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-08-06-preview", + "value": "2021-08-06-preview", + "description": "The 2021-08-06-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-12-02-preview", + "value": "2021-12-02-preview", + "description": "The 2021-12-02-preview version of the Azure.Storage.Blob service." + } + ] + } + } + }, + "parameters": {} +} From 04cd1f4d6cb229671bf4b105129ec687f7fa4d0d Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Mon, 25 Mar 2024 17:05:03 -0400 Subject: [PATCH 022/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/main.tsp | 17 ++- .../storage/Microsoft.BlobStorage/models.tsp | 2 +- .../storage/Microsoft.BlobStorage/routes.tsp | 3 +- .../stable/0000-00-00/openapi.json | 114 ++++++++++++++++++ 4 files changed, 124 insertions(+), 12 deletions(-) create mode 100644 specification/storage/data-plane/Microsoft.BlobStorage/stable/0000-00-00/openapi.json diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index dba69c7faf55..79899fbc3788 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -1,7 +1,6 @@ import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; -import "./routes.tsp"; using TypeSpec.Http; using TypeSpec.Rest; @@ -24,30 +23,30 @@ using Azure.Core; "{endpoint}", "The host name of the blob storage account, e.g. accountName.blob.core.windows.net", { - /** 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") endpoint: url, } ) namespace Azure.Storage.Blob; -/** The Azure.Storage.Blob service versions. */ +@doc("The Azure.Storage.Blob service versions.") enum Versions { @useDependency(Azure.Core.Versions.v1_0_Preview_1) - /** The 2020-10-02-preview version of the Azure.Storage.Blob service. */ + @doc("The 2020-10-02-preview version of the Azure.Storage.Blob service.") `2020-10-02-preview`, - /** The 2020-12-06-preview version of the Azure.Storage.Blob service. */ + @doc("The 2020-12-06-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2020-12-06-preview`, - /** The 2021-02-12-preview version of the Azure.Storage.Blob service. */ + @doc("The 2021-02-12-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-02-12-preview`, - /** The 2021-04-10-preview version of the Azure.Storage.Blob service. */ + @doc("The 2021-04-10-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-04-10-preview`, - /** The 2021-08-06-preview version of the Azure.Storage.Blob service. */ + @doc("The 2021-08-06-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-08-06-preview`, - /** The 2021-12-02-preview version of the Azure.Storage.Blob service. */ + @doc("The 2021-12-02-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-12-02-preview`, } diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 359ec2b2ee2a..75b76d9dfad7 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -11,7 +11,7 @@ using TypeSpec.Versioning; using Azure.ClientGenerator.Core; @useDependency(Azure.Core.Versions.v1_0_Preview_1) -namespace Microsoft.BlobStorage; +namespace Azure.Storage.Blob; @error /** The error response. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 50a4d75890d5..b7fa7591989b 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -3,10 +3,9 @@ import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@typespec/http"; - import "./models.tsp"; -namespace Microsoft.BlobStorage; +namespace Azure.Storage.Blob; using TypeSpec.Http; using TypeSpec.OpenAPI; diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/0000-00-00/openapi.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/0000-00-00/openapi.json new file mode 100644 index 000000000000..4a1025de907e --- /dev/null +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/0000-00-00/openapi.json @@ -0,0 +1,114 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure.Storage.Blob service", + "version": "0000-00-00", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "x-ms-parameterized-host": { + "hostTemplate": "{endpoint}", + "useSchemePrefix": false, + "parameters": [ + { + "name": "endpoint", + "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 + } + ] + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "ApiKeyAuth": [] + }, + { + "OAuth2Auth": [ + "https://storage.azure.com/.default" + ] + } + ], + "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": {}, + "definitions": { + "Versions": { + "type": "string", + "description": "The Azure.Storage.Blob service versions.", + "enum": [ + "2020-10-02-preview", + "2020-12-06-preview", + "2021-02-12-preview", + "2021-04-10-preview", + "2021-08-06-preview", + "2021-12-02-preview" + ], + "x-ms-enum": { + "name": "Versions", + "modelAsString": true, + "values": [ + { + "name": "2020-10-02-preview", + "value": "2020-10-02-preview", + "description": "The 2020-10-02-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2020-12-06-preview", + "value": "2020-12-06-preview", + "description": "The 2020-12-06-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-02-12-preview", + "value": "2021-02-12-preview", + "description": "The 2021-02-12-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-04-10-preview", + "value": "2021-04-10-preview", + "description": "The 2021-04-10-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-08-06-preview", + "value": "2021-08-06-preview", + "description": "The 2021-08-06-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-12-02-preview", + "value": "2021-12-02-preview", + "description": "The 2021-12-02-preview version of the Azure.Storage.Blob service." + } + ] + } + } + }, + "parameters": {} +} From 796e2b4a90856d7ac60fdb4f7451f20b2be62c86 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Mon, 25 Mar 2024 17:23:14 -0400 Subject: [PATCH 023/129] [storage blob] update the routes --- specification/storage/Microsoft.BlobStorage/main.tsp | 1 + specification/storage/Microsoft.BlobStorage/models.tsp | 3 +-- specification/storage/Microsoft.BlobStorage/routes.tsp | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index 79899fbc3788..7883f3abc59f 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -1,6 +1,7 @@ import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; +import "./routes.tsp"; using TypeSpec.Http; using TypeSpec.Rest; diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 75b76d9dfad7..e34846a5a004 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -2086,8 +2086,7 @@ model ContainerAclParameter { /** The container name header */ model ContainerNameParameter { /** The name of the container. */ - @header - @path + @path("containerName") containerName: string; } diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index b7fa7591989b..49e8900f7f5c 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -652,6 +652,7 @@ interface ContainerAccountInfoService { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" getAccountInfo( + ...ContainerNameParameter; ...ApiVersionParameter; ): { @statusCode statusCode: 200; From 88ca308f7794fee662d3a87769d5ee05eadfd75e Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Mon, 25 Mar 2024 17:30:53 -0400 Subject: [PATCH 024/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/models.tsp | 13 ------------ .../storage/Microsoft.BlobStorage/routes.tsp | 20 +++++++------------ 2 files changed, 7 insertions(+), 26 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index e34846a5a004..b24498eb9fa8 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -1534,12 +1534,6 @@ model ContentMd5ResponseHeader { @header("Content-MD5") contentMd5: string; } -/** The Content-Type response header. */ -model ContentTypeResponseHeader { - /** The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID */ - @header("Content-Type") contentType: string; -} - /** The Content-Length response header. */ model ContentLengthResponseHeader { /** The number of bytes present in the response body. */ @@ -2159,13 +2153,6 @@ model ContentLengthParameter { @header("Content-Length") contentLength: int64; } -/** The Content-Type header for multi-part requests. */ -model MultipartContentTypeParameter { - /** Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_ */ - @clientName("multipartContentType") - @header("Content-Type") contentType: string; -} - /** The max results parameter. */ model 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. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 49e8900f7f5c..934b595776b6 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -152,17 +152,14 @@ interface BlobServiceBatch { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" submitBatch( - /** The batch request content */ - ...BodyParameter; // TODO: Investigate this type ...ContentLengthParameter; - ...MultipartContentTypeParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - ...ContentTypeResponseHeader; + ...RequestIdResponseHeader; ...VersionResponseHeader; } | StorageError; @@ -340,8 +337,6 @@ interface BlobServiceContainerAccessPolicy { ...IfModifiedSinceParameter; ...IfUnmodifiedSinceParameter; ...LeaseIdOptionalParameter; - /** The signed identifiers. */ - @body body: SignedIdentifiers; ): { @statusCode statusCode: 200; @@ -414,13 +409,12 @@ interface ContainerBatchService { ...BodyParameter; ...ContainerNameParameter; ...ContentLengthParameter; - ...MultipartContentTypeParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; ): { @statusCode statusCode: 202; - ...ContentTypeResponseHeader; + ...RequestIdResponseHeader; ...VersionResponseHeader; } | StorageError; @@ -733,7 +727,7 @@ interface BlobService { ...ImmutabilityPolicyExpiresOnResponseHeader; ...ImmutabilityPolicyModeResponseHeader; ...LegalHoldResponseHeader; - ...ContentTypeResponseHeader; + ...ContentLengthResponseHeader; ...EtagResponseHeader; } | { @@ -776,7 +770,7 @@ interface BlobService { ...ImmutabilityPolicyExpiresOnResponseHeader; ...ImmutabilityPolicyModeResponseHeader; ...LegalHoldResponseHeader; - ...ContentTypeResponseHeader; + ...ContentLengthResponseHeader; ...EtagResponseHeader; } | StorageError; @@ -822,7 +816,7 @@ interface BlobService { ...LeaseDurationResponseHeader; ...LeaseStateResponseHeader; ...LeaseStatusResponseHeader; - ...ContentTypeResponseHeader; + ...ContentLengthResponseHeader; ...EtagResponseHeader; ...ContentMd5ResponseHeader; @@ -1825,7 +1819,7 @@ interface BlobBlockListService { ...LastModifiedResponseHeader; ...EtagResponseHeader; - ...ContentTypeResponseHeader; + ...BlobContentLengthResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -2312,7 +2306,7 @@ interface BlobQueryService { ...LastModifiedResponseHeader; ...ContentLengthResponseHeader; - ...ContentTypeResponseHeader; + ...ContentRangeResponseHeader; ...EtagResponseHeader; ...ContentMd5ResponseHeader; From 6afa7c684e0caa176545b67df4a3c5dcda9a9e67 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Mon, 25 Mar 2024 17:58:07 -0400 Subject: [PATCH 025/129] [storage blob] update the routes --- specification/storage/Microsoft.BlobStorage/models.tsp | 2 +- specification/storage/Microsoft.BlobStorage/routes.tsp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index b24498eb9fa8..5d88163838b0 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -1834,7 +1834,7 @@ model BlobNameParameter { @maxLength(1024) @pattern("^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$") @path - blobName: string; + blob: string; } /** The blob delete type parameter. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 934b595776b6..a6c3c0e0ebb4 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -2339,7 +2339,6 @@ interface BlobQueryService { @route("/{containerName}/{blob}?comp=tags") interface BlobTagsService { - /** The Get Blob Tags operation enables users to get tags on a blob. */ @get @operationId("Blob_GetTags") From 94e646d82161601f2afc599d82a00d045cf1bdb8 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Mon, 25 Mar 2024 18:43:36 -0400 Subject: [PATCH 026/129] [storage blob] update the routes --- .../storage/Microsoft.BlobStorage/models.tsp | 3 +- .../storage/Microsoft.BlobStorage/routes.tsp | 157 +- .../stable/0000-00-00/openapi.json | 11928 +++++++++++++++- 3 files changed, 11995 insertions(+), 93 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 5d88163838b0..6829a828a2eb 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -2080,7 +2080,7 @@ model ContainerAclParameter { /** The container name header */ model ContainerNameParameter { /** The name of the container. */ - @path("containerName") + @path containerName: string; } @@ -2129,6 +2129,7 @@ model BlobPublicAccessParameter { // TODO: Figure out how to better represent this /** The metadata parameter. */ +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" model MetadataParameter is Record { /** 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. */ @header("x-ms-meta") meta?: string; diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index a6c3c0e0ebb4..dcb2eb312603 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -21,6 +21,7 @@ interface BlobServiceProperties { @operationId("Service_SetProperties") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" setServiceProperties( /** The storage service properties that specifies the analytics and CORS rules to set on the Blob service. */ @body body: StorageServiceProperties; @@ -82,7 +83,7 @@ interface BlobServiceListContainerSegments { @operationId("Service_ListContainersSegment") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" - listContainers( + getContainers( ...PrefixParameter; ...TimeoutParameter; ...MarkerParameter; @@ -91,7 +92,7 @@ interface BlobServiceListContainerSegments { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: ListContainersSegmentResponse; // TODO: XML + @body body: ListContainersSegmentResponse; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -114,7 +115,7 @@ interface BlobServiceUserDelegationKey { ): { @statusCode statusCode: 200; /** The user delegation key. */ - @body body: UserDelegationKey; // TODO: XML + @body body: UserDelegationKey; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -129,6 +130,7 @@ interface BlobServiceAccountProperties { @operationId("Service_GetAccountInfo") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" getAccountInfo( ...ApiVersionParameter; ): { @@ -151,6 +153,7 @@ interface BlobServiceBatch { @operationId("Service_SubmitBatch") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" submitBatch( ...ContentLengthParameter; ...TimeoutParameter; @@ -172,7 +175,7 @@ interface FilterBlobsService { @operationId("Service_FilterBlobs") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" - listBlobs( + getBlobs( ...FilterBlobsWhere; ...FilterBlobsInclude; ...TimeoutParameter; @@ -197,9 +200,10 @@ interface BlobServiceContainer { @operationId("Container_Create") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" createContainer( ...ContainerNameParameter; - ...MetadataParameter; + // TODO: ...MetadataParameter; ...BlobPublicAccessParameter; ...DefaultEncryptionScopeParameter; ...DenyEncryptionScopeOverrideParameter; @@ -221,6 +225,7 @@ interface BlobServiceContainer { @operationId("Container_GetProperties") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" getContainerProperties( ...ContainerNameParameter; ...TimeoutParameter; @@ -253,6 +258,7 @@ interface BlobServiceContainer { @operationId("Container_Delete") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" deleteContainer( ...ContainerNameParameter; ...TimeoutParameter; @@ -278,9 +284,11 @@ interface BlobServiceContainerMetadata { @operationId("Container_SetMetadata") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" setContainerMetadata( ...ContainerNameParameter; - ...MetadataParameter; + // TODO: ...MetadataParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; @@ -328,6 +336,8 @@ interface BlobServiceContainerAccessPolicy { @operationId("Container_SetAccessPolicy") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" setContainerAccessPolicy( ...ContainerNameParameter; ...ContainerAclParameter; @@ -356,6 +366,8 @@ interface ContainerRestoreService { @operationId("Container_Undelete") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" undeleteContainer( ...ContainerNameParameter; ...DeletedContainerNameParameter; @@ -380,6 +392,8 @@ interface ContainerRenameService { @operationId("Container_Rename") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" renameContainer( ...ContainerNameParameter; ...SourceContainerNameParameter; @@ -404,6 +418,7 @@ interface ContainerBatchService { @operationId("Container_SubmitBatch") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" submitBatch( /** The batch request content */ ...BodyParameter; @@ -414,6 +429,7 @@ interface ContainerBatchService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 202; + @body body: bytes; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -427,7 +443,7 @@ interface BlobListService { @operationId("Container_FilterBlobs") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" - filterBlobs( + getBlobs( ...ContainerNameParameter; ...MarkerParameter; ...MaxResultsParameter; @@ -454,6 +470,8 @@ interface ContainerLeaseService { @operationId("Container_AcquireLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" acquireLease( ...ContainerNameParameter; ...LeaseDurationParameter; @@ -483,6 +501,8 @@ interface ContainerReleaseLeaseService { @operationId("Container_ReleaseLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" releaseLease( ...ContainerNameParameter; ...LeaseIdRequired; @@ -510,6 +530,8 @@ interface ContainerRenewLeaseService { @operationId("Container_RenewLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" renewLease( ...ContainerNameParameter; ...LeaseIdRequired; @@ -537,6 +559,7 @@ interface ConatinerBreakLeaseService { @operationId("Container_BreakLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" breakLease( ...ContainerNameParameter; ...TimeoutParameter; @@ -563,6 +586,8 @@ interface ContainerChangeLeaseService { @operationId("Container_ChangeLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" changeLease( ...ContainerNameParameter; ...LeaseIdRequired; @@ -591,7 +616,7 @@ interface ContainerListBlobsService { @operationId("Container_ListBlobFlatSegment") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" - listBlobs( + getBlobs( ...ContainerNameParameter; ...PrefixParameter; ...MarkerParameter; @@ -617,7 +642,7 @@ interface ContainerListBlobsHierarchyService { @operationId("Container_ListBlobHierarchySegment") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" - listBlobs( + getBlobs( ...ContainerNameParameter; ...DelimiterParameter; ...PrefixParameter; @@ -629,7 +654,7 @@ interface ContainerListBlobsHierarchyService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: ListBlobsHierarchySegmentResponse; // TODO: XML + @body body: ListBlobsHierarchySegmentResponse; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -645,12 +670,12 @@ interface ContainerAccountInfoService { @operationId("Container_GetAccountInfo") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" getAccountInfo( ...ContainerNameParameter; ...ApiVersionParameter; ): { @statusCode statusCode: 200; - ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -667,6 +692,8 @@ interface BlobService { @operationId("Blob_Download") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" downloadBlob( ...ContainerNameParameter; ...BlobNameParameter; @@ -688,50 +715,7 @@ interface BlobService { ...ClientRequestIdParameter; ...ApiVersionParameter; ): { - @statusCode statusCode: 200; - ...BodyParameter; - - // TODO: x-ms-meta headers - // TODO: x-ms-or headers - ...LastModifiedResponseHeader; - ...CreationTimeResponseHeader; - ...ObjectReplicationPolicyIdResponseHeader; - ...ContentRangeResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentEncodingResponseParameter; - ...CacheControlResponseHeader; - ...ContentDispositionResponseHeader; - ...ContentLanguageResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...BlobTypeResponseHeader; - ...CopyCompletionTimeResponseHeader; - ...CopyStatusDescriptionResponseHeader; - ...CopyIdResponseHeader; - ...CopyProgressResponseHeader; - ...CopyStatusResponseHeader; - ...CopySourceResponseHeader; - ...LeaseDurationResponseHeader; - ...LeaseStateResponseHeader; - ...LeaseStatusResponseHeader; - ...VersionResponseHeader; - ...VersionIdResponseHeader; - ...IsCurrentVersionResponseHeader; - ...AcceptRangesResponseHeader; - ...BlobCommittedBlockCountResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - ...TagCountResponseHeader; - ...IsSealedResponseHeader; - ...LastAccessedResponseHeader; - ...ImmutabilityPolicyExpiresOnResponseHeader; - ...ImmutabilityPolicyModeResponseHeader; - ...LegalHoldResponseHeader; - - ...ContentLengthResponseHeader; - ...EtagResponseHeader; - } | { - @statusCode statusCode: 206; + @statusCode statusCode: 200 | 206; ...BodyParameter; // TODO: x-ms-meta headers @@ -780,6 +764,7 @@ interface BlobService { @operationId("Blob_GetProperties") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" getBlobProperties( ...ContainerNameParameter; ...BlobNameParameter; @@ -816,7 +801,6 @@ interface BlobService { ...LeaseDurationResponseHeader; ...LeaseStateResponseHeader; ...LeaseStatusResponseHeader; - ...ContentLengthResponseHeader; ...EtagResponseHeader; ...ContentMd5ResponseHeader; @@ -855,6 +839,7 @@ interface BlobService { @operationId("Blob_Delete") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" deleteBlob( ...ContainerNameParameter; ...BlobNameParameter; @@ -887,6 +872,7 @@ interface PageBlobService { @operationId("PageBlob_Create") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" createPageBlob( // TODO: Metadata ...ContainerNameParameter; @@ -941,6 +927,7 @@ interface AppendBlobService { @operationId("AppendBlob_Create") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" createAppendBlob( // TODO: Metadata ...ContainerNameParameter; @@ -993,16 +980,14 @@ interface BlockBlobService { @operationId("BlockBlob_Upload") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" uploadBlockBlob( // TODO: Metadata ...ContainerNameParameter; ...BlobNameParameter; - - // TODO: body - /** The bytes to upload to the block blob. */ ...BodyParameter; - ...TimeoutParameter; ...ContentMd5Parameter; ...BlobContentTypeParameter; @@ -1053,6 +1038,8 @@ interface BlockBlobFromUrlService{ @operationId("BlockBlob_PutBlobFromUrl") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" putBlockBlobFromUrl( // TODO: Metadata @@ -1111,6 +1098,7 @@ interface BlobUndeleteService { @operationId("Blob_Undelete") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" undeleteBlob( ...ContainerNameParameter; ...BlobNameParameter; @@ -1132,6 +1120,7 @@ interface BlobExpirationService { @operationId("Blob_SetExpiry") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" setBlobExpiry( ...ContainerNameParameter; ...BlobNameParameter; @@ -1157,6 +1146,8 @@ interface BlobSetHttpHeadersService { @operationId("Blob_SetHTTPHeaders") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" setHttpHeaders( ...ContainerNameParameter; ...BlobNameParameter; @@ -1194,6 +1185,8 @@ interface BlobSetImmutabilityPolicyService { @operationId("Blob_SetImmutabilityPolicy") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" setImmutabilityPolicy( ...ContainerNameParameter; ...BlobNameParameter; @@ -1220,6 +1213,7 @@ interface BlobSetImmutabilityPolicyService { @operationId("Blob_DeleteImmutabilityPolicy") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" deleteImmutabilityPolicy( ...ContainerNameParameter; ...BlobNameParameter; @@ -1242,6 +1236,8 @@ interface BlobLegalHoldService { @operationId("Blob_SetLegalHold") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" setLegalHold( ...ContainerNameParameter; ...BlobNameParameter; @@ -1266,6 +1262,8 @@ interface BlobSetMetadataService { @operationId("Blob_SetMetadata") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" setMetadata( ...ContainerNameParameter; ...BlobNameParameter; @@ -1304,6 +1302,8 @@ interface BlobLeaseAcquireService { @operationId("Blob_AcquireLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" acquireLease( ...ContainerNameParameter; ...BlobNameParameter; @@ -1336,6 +1336,8 @@ interface BlobLeaseReleaseService { @operationId("Blob_ReleaseLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" releaseLease( ...ContainerNameParameter; ...BlobNameParameter; @@ -1366,6 +1368,8 @@ interface BlobLeaseRenewService { @operationId("Blob_RenewLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" renewLease( ...ContainerNameParameter; ...BlobNameParameter; @@ -1397,6 +1401,8 @@ interface BlobLeaseChangeService { @operationId("Blob_ChangeLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" changeLease( ...ContainerNameParameter; ...BlobNameParameter; @@ -1429,6 +1435,7 @@ interface BlobLeaseBreakService { @operationId("Blob_BreakLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" breakLease( ...ContainerNameParameter; ...BlobNameParameter; @@ -1460,6 +1467,7 @@ interface BlobSnapshotService { @operationId("Blob_CreateSnapshot") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" createSnapshot( ...ContainerNameParameter; ...BlobNameParameter; @@ -1497,6 +1505,7 @@ interface BlobCopyService { @operationId("Blob_StartCopyFromURL") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" startCopyFromUrl( ...ContainerNameParameter; ...BlobNameParameter; @@ -1544,6 +1553,7 @@ interface BlobCopySyncService { @operationId("Blob_AbortCopyFromURL") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" copyFromUrl( ...ContainerNameParameter; ...BlobNameParameter; @@ -1618,6 +1628,8 @@ interface BlobTierService { @operationId("Blob_SetTier") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" setTier( ...ContainerNameParameter; ...BlobNameParameter; @@ -1649,6 +1661,7 @@ interface BlobAccountPropertiesService { @operationId("Blob_GetAccountInfo") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" getAccountInfo( ...ContainerNameParameter; ...BlobNameParameter; @@ -1672,10 +1685,10 @@ interface BlobBlockStageService { @operationId("BlockBlob_StageBlock") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" stageBlock( - /** The data to upload. */ ...BodyParameter; - ...ContainerNameParameter; ...BlobNameParameter; ...BlockIdParameter; @@ -1711,6 +1724,8 @@ interface BlobBlockStageFromUrlService { @operationId("BlockBlob_StageBlockFromURL") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" stageBlockFromUrl( ...ContainerNameParameter; ...BlobNameParameter; @@ -1754,6 +1769,8 @@ interface BlobBlockListService { @operationId("BlockBlob_CommitBlockList") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" commitBlockList( ...BlobBlocksParameter; ...ContainerNameParameter; @@ -1835,6 +1852,8 @@ interface PageBlobUpdateService { @operationId("PageBlob_UploadPages") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" uploadPages( /** The data to upload. */ ...BodyParameter; @@ -1885,6 +1904,8 @@ interface PageBlobClearService { @operationId("PageBlob_ClearPages") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" clearPages( ...ContainerNameParameter; ...BlobNameParameter; @@ -1921,6 +1942,7 @@ interface BlobPageUpdateFromUrlService { @operationId("PageBlob_UploadPagesFromURL") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" uploadPagesFromUrl( ...ContainerNameParameter; ...BlobNameParameter; @@ -2050,6 +2072,8 @@ interface PageBlobResizeService { @operationId("PageBlob_Resize") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" resize( ...ContainerNameParameter; ...BlobNameParameter; @@ -2086,6 +2110,8 @@ interface PageBlobUpdateSequenceNumberService { @operationId("PageBlob_UpdateSequenceNumber") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" updateSequenceNumber( ...ContainerNameParameter; ...BlobNameParameter; @@ -2119,6 +2145,7 @@ interface PageBlobIncrementalCopyService { @operationId("PageBlob_CopyIncremental") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" incrementalCopy( ...ContainerNameParameter; ...BlobNameParameter; @@ -2152,6 +2179,8 @@ interface AppendBlobAppendBlockService { @operationId("AppendBlob_AppendBlock") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" appendBlock( /** The data to upload. */ ...BodyParameter; @@ -2201,6 +2230,8 @@ interface AppendBlockAppendBlockFromUrlService { @operationId("AppendBlob_AppendBlockFromURL") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" appendBlockFromUrl( ...ContainerNameParameter; ...BlobNameParameter; @@ -2250,6 +2281,8 @@ interface AppendBlobSealService { @operationId("AppendBlob_Seal") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" seal( ...ContainerNameParameter; ...BlobNameParameter; diff --git a/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json b/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json index 4a1025de907e..00943838d3a6 100644 --- a/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json +++ b/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json @@ -59,56 +59,11924 @@ } }, "tags": [], - "paths": {}, + "paths": { + "": { + "get": { + "operationId": "Service_GetProperties", + "description": "Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + }, + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "put": { + "operationId": "Service_SetProperties", + "description": "Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "name": "body", + "in": "body", + "description": "The storage service properties that specifies the analytics and CORS rules to set on the Blob service.", + "required": true, + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + } + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "post": { + "operationId": "Service_GetUserDelegationKey", + "description": "The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS.", + "parameters": [ + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "name": "body", + "in": "body", + "description": "The user delegation key info.", + "required": true, + "schema": { + "$ref": "#/definitions/KeyInfo" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/UserDelegationKey" + }, + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}": { + "get": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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-lease-duration": { + "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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-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-has-immutability-policy": { + "type": "boolean", + "description": "Indicates if a blob has an active immutability policy." + }, + "x-ms-legal-hold": { + "type": "boolean", + "description": "Indicates if a blob has a legal hold." + }, + "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-immutable-storage-with-versioning-enabled": { + "type": "boolean", + "description": "Indicates whether version level worm is enabled on a container" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobPublicAccessParameter" + }, + { + "$ref": "#/parameters/DefaultEncryptionScopeParameter" + }, + { + "$ref": "#/parameters/DenyEncryptionScopeOverrideParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "post": { + "operationId": "Container_SubmitBatch", + "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BodyParameter" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "type": "string", + "format": "byte" + }, + "headers": { + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}": { + "get": { + "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.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/SnapshotParameter" + }, + { + "$ref": "#/parameters/VersionIdParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/RangeParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/GetRangeContentMd5Parameter" + }, + { + "$ref": "#/parameters/GetRangeContentCrc64Parameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "type": "string", + "format": "byte" + }, + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-creation-time": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was created." + }, + "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." + }, + "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." + }, + "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." + }, + "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": { + "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-copy-completion-time": { + "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": { + "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": { + "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-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-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-lease-duration": { + "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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-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": { + "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": { + "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." + }, + "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-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-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-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" + }, + "x-ms-last-access-time": { + "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": { + "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": { + "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-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + } + } + }, + "206": { + "description": "Successful", + "schema": { + "type": "string", + "format": "byte" + }, + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-creation-time": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was created." + }, + "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." + }, + "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." + }, + "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." + }, + "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": { + "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-copy-completion-time": { + "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": { + "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": { + "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-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-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-lease-duration": { + "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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-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": { + "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": { + "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." + }, + "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-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-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-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" + }, + "x-ms-last-access-time": { + "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": { + "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": { + "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-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "put": { + "operationId": "PageBlob_Create", + "description": "The Create operation creates a new page blob.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" + }, + { + "$ref": "#/parameters/BlobContentTypeParameter" + }, + { + "$ref": "#/parameters/BlobContentEncodingParameter" + }, + { + "$ref": "#/parameters/BlobContentLanguageParameter" + }, + { + "$ref": "#/parameters/BlobContentMd5Parameter" + }, + { + "$ref": "#/parameters/BlobCacheControlParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/BlobContentDispositionParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/BlobContentLengthRequiredParameter" + }, + { + "$ref": "#/parameters/BlobSequenceNumberParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BlobTagsHeaderParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + }, + { + "$ref": "#/parameters/LegalHoldOptionalParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "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-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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": { + "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": { + "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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "post": { + "operationId": "Blob_Undelete", + "description": "\"Undelete a blob that was previously soft deleted\"", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/SnapshotParameter" + }, + { + "$ref": "#/parameters/VersionIdParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/DeleteSnapshotsParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BlobDeleteTypeParameter" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/SnapshotParameter" + }, + { + "$ref": "#/parameters/VersionIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-creation-time": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was created." + }, + "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-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-copy-completion-time": { + "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": { + "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": { + "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-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-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-incremental-copy": { + "type": "boolean", + "description": "Included if the blob is incremental copy blob." + }, + "x-ms-copy-destination-snapshot": { + "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": { + "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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." + } + ] + } + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "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." + }, + "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": { + "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": { + "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": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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-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-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-access-tier": { + "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.", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive" + ], + "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." + } + ] + } + }, + "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." + }, + "x-ms-archive-status": { + "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.", + "enum": [ + "rehydrate-pending-to-hot", + "rehydrate-pending-to-cool", + "rehydrate-pending-to-archive", + "rehydrate-pending-to-expired" + ], + "x-ms-enum": { + "name": "ArchiveStatus", + "modelAsString": true, + "values": [ + { + "name": "rehydrate-pending-to-hot", + "value": "rehydrate-pending-to-hot", + "description": "The archive status is rehydrating pending to hot." + }, + { + "name": "rehydrate-pending-to-cool", + "value": "rehydrate-pending-to-cool", + "description": "The archive status is rehydrating pending to cool." + }, + { + "name": "rehydrate-pending-to-archive", + "value": "rehydrate-pending-to-archive", + "description": "The archive status is rehydrating pending to archive." + }, + { + "name": "rehydrate-pending-to-expired", + "value": "rehydrate-pending-to-expired", + "description": "The archive status is rehydrating pending to expired." + } + ] + } + }, + "x-ms-access-tier-change-time": { + "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." + }, + "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": { + "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": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-expiry-time": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob will expire." + }, + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" + }, + "x-ms-rehydrate-priority": { + "type": "string", + "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." + } + ] + } + }, + "x-ms-last-access-time": { + "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": { + "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": { + "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-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + } + }, + "x-ms-paths": { + "/{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": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{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.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + }, + "headers": { + "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." + } + ] + } + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?restype=container&comp=acl&_overload=setContainerAccessPolicy": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/ContainerAclParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?restype=container&comp=undelete": { + "put": { + "operationId": "Container_Undelete", + "description": "Restores a previously-deleted container.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/DeletedContainerNameParameter" + }, + { + "$ref": "#/parameters/DeletedContainerVersionParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?restype=container&comp=rename": { + "put": { + "operationId": "Container_Rename", + "description": "Renames an existing container.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/SourceContainerNameParameter" + }, + { + "$ref": "#/parameters/SourceLeaseIdParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{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.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/MarkerParameter" + }, + { + "$ref": "#/parameters/MaxResultsParameter" + }, + { + "$ref": "#/parameters/FilterBlobsWhere" + }, + { + "$ref": "#/parameters/FilterBlobsInclude" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + }, + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?comp=lease&restype=container&acquire": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/LeaseDurationParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ProposedLeaseIdOptional" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?comp=lease&restype=container&release": { + "put": { + "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", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?comp=lease&restype=container&renew": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?comp=lease&restype=container&break": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/LeaseBreakPeriodParameter" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?comp=lease&restype=container&change": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/ProposedLeaseIdRequired" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." + }, + "x-ms-client-request-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." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?restype=container&comp=list&flat": { + "get": { + "operationId": "Container_ListBlobFlatSegment", + "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/PrefixParameter" + }, + { + "$ref": "#/parameters/MarkerParameter" + }, + { + "$ref": "#/parameters/MaxResultsParameter" + }, + { + "$ref": "#/parameters/ListBlobsInclude" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListBlobsFlatSegmentResponse" + }, + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?restype=container&comp=list&hierarchy": { + "get": { + "operationId": "Container_ListBlobHierarchySegment", + "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/DelimiterParameter" + }, + { + "$ref": "#/parameters/PrefixParameter" + }, + { + "$ref": "#/parameters/MarkerParameter" + }, + { + "$ref": "#/parameters/MaxResultsParameter" + }, + { + "$ref": "#/parameters/ListBlobsInclude" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" + }, + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?restype=account&comp=properties": { + "get": { + "operationId": "Container_GetAccountInfo", + "description": "Returns the sku name and account kind", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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": "Standard_LRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "Standard_GRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "Standard_RAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "Standard_ZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "Premium_LRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + } + ] + } + }, + "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." + } + ] + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?AppendBlob": { + "put": { + "operationId": "AppendBlob_Create", + "description": "The Create operation creates a new append blob.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/BlobContentTypeParameter" + }, + { + "$ref": "#/parameters/BlobContentEncodingParameter" + }, + { + "$ref": "#/parameters/BlobContentLanguageParameter" + }, + { + "$ref": "#/parameters/BlobContentMd5Parameter" + }, + { + "$ref": "#/parameters/BlobCacheControlParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/BlobContentDispositionParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BlobTagsHeaderParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyModeParameter" + }, + { + "$ref": "#/parameters/LegalHoldOptionalParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "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-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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": { + "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": { + "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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?BlockBlob": { + "put": { + "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.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ContentMd5Parameter" + }, + { + "$ref": "#/parameters/BlobContentTypeParameter" + }, + { + "$ref": "#/parameters/BlobContentEncodingParameter" + }, + { + "$ref": "#/parameters/BlobContentLanguageParameter" + }, + { + "$ref": "#/parameters/BlobContentMd5Parameter" + }, + { + "$ref": "#/parameters/BlobCacheControlParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/BlobContentDispositionParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/AccessTierOptionalParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BlobTagsHeaderParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyModeParameter" + }, + { + "$ref": "#/parameters/LegalHoldOptionalParameter" + }, + { + "$ref": "#/parameters/ContentCrc64Parameter" + }, + { + "$ref": "#/parameters/BodyParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "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-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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": { + "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": { + "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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?BlockBlob&fromUrl": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ContentMd5Parameter" + }, + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/BlobContentTypeParameter" + }, + { + "$ref": "#/parameters/BlobContentEncodingParameter" + }, + { + "$ref": "#/parameters/BlobContentLanguageParameter" + }, + { + "$ref": "#/parameters/BlobContentMd5Parameter" + }, + { + "$ref": "#/parameters/BlobCacheControlParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/BlobContentDispositionParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/AccessTierOptionalParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/SourceIfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/SourceIfMatchParameter" + }, + { + "$ref": "#/parameters/SourceIfNoneMatchParameter" + }, + { + "$ref": "#/parameters/SourceIfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/SourceContentMd5Parameter" + }, + { + "$ref": "#/parameters/BlobTagsHeaderParameter" + }, + { + "$ref": "#/parameters/CopySourceParameter" + }, + { + "$ref": "#/parameters/CopySourceBlobPropertiesParameter" + }, + { + "$ref": "#/parameters/CopySourceAuthorizationParameter" + }, + { + "$ref": "#/parameters/CopySourceTagsParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "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-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=expiry": { + "post": { + "operationId": "Blob_SetExpiry", + "description": "\"Set the expiration time of a blob\"", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BlobExpiryOptionsParameter" + }, + { + "$ref": "#/parameters/BlobExpiryTimeParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=properties&SetHTTPHeaders": { + "put": { + "operationId": "Blob_SetHTTPHeaders", + "description": "The Set HTTP Headers operation sets system properties on the blob.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/BlobCacheControlParameter" + }, + { + "$ref": "#/parameters/BlobContentTypeParameter" + }, + { + "$ref": "#/parameters/BlobContentMd5Parameter" + }, + { + "$ref": "#/parameters/BlobContentEncodingParameter" + }, + { + "$ref": "#/parameters/BlobContentLanguageParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/BlobContentDispositionParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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": { + "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": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=immutabilityPolicies": { + "put": { + "operationId": "Blob_SetImmutabilityPolicy", + "description": "\"Set the immutability policy of a blob\"", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyModeParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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-immutability-policy-until-date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Indicates the time the immutability policy will expire." + }, + "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." + } + ] + } + } + } + }, + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=legalhold": { + "put": { + "operationId": "Blob_SetLegalHold", + "description": "The Set Legal Hold operation sets a legal hold on the blob.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LegalHoldRequiredParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + } + } + }, + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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": { + "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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=lease&acquire": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LeaseDurationParameter" + }, + { + "$ref": "#/parameters/ProposedLeaseIdOptional" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=lease&release": { + "put": { + "operationId": "Blob_ReleaseLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdRequiredParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=lease&renew": { + "put": { + "operationId": "Blob_RenewLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdRequiredParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=lease&change": { + "put": { + "operationId": "Blob_ChangeLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdRequiredParameter" + }, + { + "$ref": "#/parameters/ProposedLeaseIdOptional" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=lease&break": { + "put": { + "operationId": "Blob_BreakLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LeaseBreakPeriodParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + } + ], + "responses": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=snapshot": { + "put": { + "operationId": "Blob_CreateSnapshot", + "description": "The Create Snapshot operation creates a read-only snapshot of a blob", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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-snapshot": { + "type": "string", + "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." + }, + "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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=copy": { + "put": { + "operationId": "Blob_StartCopyFromURL", + "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/AccessTierOptionalParameter" + }, + { + "$ref": "#/parameters/RehydratePriorityParameter" + }, + { + "$ref": "#/parameters/SourceIfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/SourceIfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/SourceIfMatchParameter" + }, + { + "$ref": "#/parameters/SourceIfNoneMatchParameter" + }, + { + "$ref": "#/parameters/SourceIfTagsParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/CopySourceParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BlobTagsHeaderParameter" + }, + { + "$ref": "#/parameters/SealBlobParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyModeParameter" + }, + { + "$ref": "#/parameters/LegalHoldOptionalParameter" + } + ], + "responses": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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-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-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." + } + ] + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=copy&sync": { + "put": { + "operationId": "Blob_AbortCopyFromURL", + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/AccessTierOptionalParameter" + }, + { + "$ref": "#/parameters/SourceIfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/SourceIfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/SourceIfMatchParameter" + }, + { + "$ref": "#/parameters/SourceIfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/CopySourceParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/SourceContentMd5Parameter" + }, + { + "$ref": "#/parameters/BlobTagsHeaderParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyModeParameter" + }, + { + "$ref": "#/parameters/LegalHoldOptionalParameter" + }, + { + "$ref": "#/parameters/CopySourceAuthorizationParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/CopySourceTagsParameter" + } + ], + "responses": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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-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-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." + } + ] + } + }, + "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-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-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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=copy©id": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/CopyIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{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": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/AccessTierRequiredParameter" + }, + { + "$ref": "#/parameters/RehydratePriorityParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?restype=account&comp=properties": { + "get": { + "operationId": "Blob_GetAccountInfo", + "description": "Returns the sku name and account kind", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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-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-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": "Standard_LRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "Standard_GRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "Standard_RAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "Standard_ZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "Premium_LRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + } + ] + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=block": { + "put": { + "operationId": "BlockBlob_StageBlock", + "description": "The Stage Block operation creates a new block to be committed as part of a blob", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/BlockIdParameter" + }, + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/ContentMd5Parameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ContentCrc64Parameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BodyParameter" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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" + }, + "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-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-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-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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=block&fromURL": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BlockIdParameter" + }, + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/SourceUrlParameter" + }, + { + "$ref": "#/parameters/SourceRangeParameter" + }, + { + "$ref": "#/parameters/SourceContentMd5Parameter" + }, + { + "$ref": "#/parameters/SourceContentCrc64Parameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/SourceIfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/SourceIfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/SourceIfMatchParameter" + }, + { + "$ref": "#/parameters/SourceIfNoneMatchParameter" + }, + { + "$ref": "#/parameters/CopySourceAuthorizationParameter" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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" + }, + "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-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-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-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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=blocklist": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/BlobCacheControlParameter" + }, + { + "$ref": "#/parameters/BlobContentTypeParameter" + }, + { + "$ref": "#/parameters/BlobContentEncodingParameter" + }, + { + "$ref": "#/parameters/BlobContentLanguageParameter" + }, + { + "$ref": "#/parameters/BlobContentMd5Parameter" + }, + { + "$ref": "#/parameters/ContentMd5Parameter" + }, + { + "$ref": "#/parameters/ContentCrc64Parameter" + }, + { + "$ref": "#/parameters/BlobContentDispositionParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/AccessTierOptionalParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BlobTagsHeaderParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyModeParameter" + }, + { + "$ref": "#/parameters/LegalHoldOptionalParameter" + }, + { + "$ref": "#/parameters/BlobBlocksParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "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-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-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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": { + "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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=blocklist&_overload=getBlockList": { + "get": { + "operationId": "BlockBlob_GetBlockList", + "description": "The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/SnapshotParameter" + }, + { + "$ref": "#/parameters/BlockListTypeParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/BlockLookupList" + }, + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=page&update": { + "put": { + "operationId": "PageBlob_UploadPages", + "description": "The Upload Pages operation writes a range of pages to a page blob", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/ContentMd5Parameter" + }, + { + "$ref": "#/parameters/ContentCrc64Parameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/RangeParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualToParameter" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThanParameter" + }, + { + "$ref": "#/parameters/IfSequenceNumberEqualToParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BodyParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "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-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-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": { + "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": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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": { + "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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=page&clear": { + "put": { + "operationId": "PageBlob_ClearPages", + "description": "The Clear Pages operation clears a range of pages from a page blob", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/RangeParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualToParameter" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThanParameter" + }, + { + "$ref": "#/parameters/IfSequenceNumberEqualToParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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": { + "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": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=page&update&fromUrl": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/SourceUrlParameter" + }, + { + "$ref": "#/parameters/SourceRangeRequiredPutPageFromUrlParameter" + }, + { + "$ref": "#/parameters/SourceContentMd5Parameter" + }, + { + "$ref": "#/parameters/SourceContentCrc64Parameter" + }, + { + "$ref": "#/parameters/RangeRequiredPutPageFromUrlParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualToParameter" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThanParameter" + }, + { + "$ref": "#/parameters/IfSequenceNumberEqualToParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/SourceIfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/SourceIfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/SourceIfMatchParameter" + }, + { + "$ref": "#/parameters/SourceIfNoneMatchParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/CopySourceAuthorizationParameter" + } + ], + "responses": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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" + }, + "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-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-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-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-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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{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.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/SnapshotParameter" + }, + { + "$ref": "#/parameters/RangeParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/MarkerParameter" + }, + { + "$ref": "#/parameters/MaxResultsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "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.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/SnapshotParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/PrevSnapshotParameter" + }, + { + "$ref": "#/parameters/PrevSnapshotUrlParameter" + }, + { + "$ref": "#/parameters/RangeParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/MarkerParameter" + }, + { + "$ref": "#/parameters/MaxResultsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=properties&Resize": { + "put": { + "operationId": "PageBlob_Resize", + "description": "The Resize operation increases the size of the page blob to the specified size.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/BlobContentLengthRequiredParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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": { + "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": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/SequenceNumberActionParameter" + }, + { + "$ref": "#/parameters/SequenceNumberParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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": { + "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": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=incrementalcopy": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/CopySourceParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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-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-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." + } + ] + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=appendblock": { + "put": { + "operationId": "AppendBlob_AppendBlock", + "description": "The Append Block operation commits a new block of data to the end of an append blob.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/ContentMd5Parameter" + }, + { + "$ref": "#/parameters/ContentCrc64Parameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/BlobConditionMaxSizeParameter" + }, + { + "$ref": "#/parameters/BlobConditionAppendPosParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/BodyParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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": { + "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": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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" + }, + "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-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-blob-append-offset": { + "type": "integer", + "format": "int64", + "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-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-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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=appendblock&fromUrl": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/SourceUrlParameter" + }, + { + "$ref": "#/parameters/SourceRangeParameter" + }, + { + "$ref": "#/parameters/SourceContentMd5Parameter" + }, + { + "$ref": "#/parameters/SourceContentCrc64Parameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/BlobConditionMaxSizeParameter" + }, + { + "$ref": "#/parameters/BlobConditionAppendPosParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/EncryptionScopeParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/CopySourceAuthorizationParameter" + } + ], + "responses": { + "201": { + "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." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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" + }, + "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-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-blob-append-offset": { + "type": "integer", + "format": "int64", + "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-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-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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=seal": { + "put": { + "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/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/BlobConditionAppendPosParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "type": "boolean", + "description": "If this blob has been sealed" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=query": { + "post": { + "operationId": "Blob_Query", + "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/SnapshotParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/EncryptionKeyParameter" + }, + { + "$ref": "#/parameters/EncryptionKeySha256Parameter" + }, + { + "$ref": "#/parameters/EncryptionAlgorithmParameter" + }, + { + "$ref": "#/parameters/IfModifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfUnmodifiedSinceParameter" + }, + { + "$ref": "#/parameters/IfMatchParameter" + }, + { + "$ref": "#/parameters/IfNoneMatchParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/QueryRequestParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "type": "string", + "format": "byte" + }, + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "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." + }, + "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." + }, + "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-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "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-copy-completion-time": { + "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": { + "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": { + "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-lease-duration": { + "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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-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-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-blob-content-md5": { + "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" + } + } + }, + "206": { + "description": "Successful", + "schema": { + "type": "string", + "format": "byte" + }, + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "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." + }, + "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." + }, + "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-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "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-copy-completion-time": { + "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": { + "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": { + "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-lease-duration": { + "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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-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-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-blob-content-md5": { + "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" + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=tags": { + "get": { + "operationId": "Blob_GetTags", + "description": "The Get Blob Tags operation enables users to get tags on a blob.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/SnapshotParameter" + }, + { + "$ref": "#/parameters/VersionIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/BlobTags" + }, + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=tags&_overload=setTags": { + "put": { + "operationId": "Blob_SetTags", + "description": "The Set Tags operation enables users to set tags on a blob.", + "parameters": [ + { + "$ref": "#/parameters/ContainerNameParameter" + }, + { + "$ref": "#/parameters/BlobNameParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + }, + { + "$ref": "#/parameters/VersionIdParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptionalParameter" + }, + { + "$ref": "#/parameters/ContentMd5Parameter" + }, + { + "$ref": "#/parameters/ContentCrc64Parameter" + }, + { + "$ref": "#/parameters/IfTagsParameter" + }, + { + "$ref": "#/parameters/BlobTagsBodyParameter" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/?comp=batch": { + "post": { + "operationId": "Service_SubmitBatch", + "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "parameters": [ + { + "$ref": "#/parameters/ContentLengthParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/?comp=blobs": { + "get": { + "operationId": "Service_FilterBlobs", + "description": "The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression.", + "parameters": [ + { + "$ref": "#/parameters/FilterBlobsWhere" + }, + { + "$ref": "#/parameters/FilterBlobsInclude" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/MarkerParameter" + }, + { + "$ref": "#/parameters/MaxResultsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + }, + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/?comp=list": { + "get": { + "operationId": "Service_ListContainersSegment", + "description": "The List Containers Segment operation returns a list of the containers under the specified account", + "parameters": [ + { + "$ref": "#/parameters/PrefixParameter" + }, + { + "$ref": "#/parameters/TimeoutParameter" + }, + { + "$ref": "#/parameters/MarkerParameter" + }, + { + "$ref": "#/parameters/MaxResultsParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListContainersSegmentResponse" + }, + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/?restype=account&comp=properties": { + "get": { + "operationId": "Service_GetAccountInfo", + "description": "Returns the sku name and account kind.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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": "Standard_LRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "Standard_GRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "Standard_RAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "Standard_ZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "Premium_LRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + } + ] + } + }, + "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-is-hns-enabled": { + "type": "boolean", + "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/?restype=service&comp=stats": { + "get": { + "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/TimeoutParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/StorageServiceStats" + }, + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + } + }, "definitions": { + "AcceptRangesResponseHeader": { + "type": "object", + "description": "The accept ranges response header." + }, + "AccessPolicy": { + "type": "object", + "description": "Represents an access policy.", + "properties": { + "start": { + "type": "string", + "format": "date-time", + "description": "The date-time the policy is active." + }, + "expiry": { + "type": "string", + "format": "date-time", + "description": "The date-time the policy expires." + }, + "permission": { + "type": "string", + "description": "The permissions for acl the policy." + } + }, + "required": [ + "start", + "expiry", + "permission" + ] + }, + "AccessTier": { + "type": "string", + "description": "The access tiers.", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive" + ], + "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." + } + ] + } + }, + "AccessTierChangeTimeResponseHeader": { + "type": "object", + "description": "The access tier change time response header." + }, + "AccessTierInferredResponseHeader": { + "type": "object", + "description": "The access tier inferred response header." + }, + "AccessTierResponseHeader": { + "type": "object", + "description": "The access tier response header." + }, + "AccountKind": { + "type": "string", + "description": "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." + } + ] + } + }, + "AccountKindResponseHeader": { + "type": "object", + "description": "The account kind response header." + }, + "ArchiveStatus": { + "type": "string", + "description": "The archive status.", + "enum": [ + "rehydrate-pending-to-hot", + "rehydrate-pending-to-cool", + "rehydrate-pending-to-archive", + "rehydrate-pending-to-expired" + ], + "x-ms-enum": { + "name": "ArchiveStatus", + "modelAsString": true, + "values": [ + { + "name": "rehydrate-pending-to-hot", + "value": "rehydrate-pending-to-hot", + "description": "The archive status is rehydrating pending to hot." + }, + { + "name": "rehydrate-pending-to-cool", + "value": "rehydrate-pending-to-cool", + "description": "The archive status is rehydrating pending to cool." + }, + { + "name": "rehydrate-pending-to-archive", + "value": "rehydrate-pending-to-archive", + "description": "The archive status is rehydrating pending to archive." + }, + { + "name": "rehydrate-pending-to-expired", + "value": "rehydrate-pending-to-expired", + "description": "The archive status is rehydrating pending to expired." + } + ] + } + }, + "ArchiveStatusResponseHeader": { + "type": "object", + "description": "The archive status response header." + }, + "ArrowConfiguration": { + "type": "object", + "description": "Represents the Apache Arrow configuration.", + "properties": { + "schema": { + "type": "array", + "description": "The Apache Arrow schema", + "items": { + "$ref": "#/definitions/ArrowField" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "schema" + ] + }, + "ArrowField": { + "type": "object", + "description": "Represents an Apache Arrow field.", + "properties": { + "type": { + "type": "string", + "description": "The arrow field type." + }, + "name": { + "type": "string", + "description": "The arrow field name." + }, + "precision": { + "type": "integer", + "format": "int32", + "description": "The arrow field precision." + }, + "scale": { + "type": "integer", + "format": "int32", + "description": "The arrow field scale." + } + }, + "required": [ + "type" + ] + }, + "Azure.Core.uuid": { + "type": "string", + "format": "uuid", + "description": "Universally Unique Identifier" + }, + "BlobAppendOffsetResponseHeader": { + "type": "object", + "description": "The blob append offset response header." + }, + "BlobCommittedBlockCountResponseHeader": { + "type": "object", + "description": "The blob committed block count response header." + }, + "BlobContentLengthRequired": { + "type": "object", + "description": "The blob content length required parameter." + }, + "BlobContentLengthResponseHeader": { + "type": "object", + "description": "The blob content-length response header." + }, + "BlobContentMd5ResponseHeader": { + "type": "object", + "description": "The blob content MD5 response header." + }, + "BlobCopySourceTags": { + "type": "string", + "description": "The blob copy source tags types.", + "enum": [ + "REPLACE", + "COPY" + ], + "x-ms-enum": { + "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." + } + ] + } + }, + "BlobDeleteType": { + "type": "string", + "description": "The type of blob deletions.", + "enum": [ + "Permanent" + ], + "x-ms-enum": { + "name": "BlobDeleteType", + "modelAsString": true, + "values": [ + { + "name": "Permanent", + "value": "Permanent", + "description": "Permanently delete the blob." + } + ] + } + }, + "BlobExpiryOptions": { + "type": "string", + "description": "The blob expiration options.", + "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." + } + ] + } + }, + "BlobFlatListSegment": { + "type": "object", + "description": "The blob flat list segment.", + "properties": { + "blobItems": { + "type": "array", + "description": "The blob items.", + "items": { + "$ref": "#/definitions/BlobItemInternal" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "blobItems" + ] + }, + "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", + "blobPrefixes" + ] + }, + "BlobImmutabilityPolicyMode": { + "type": "string", + "description": "The immutability policy mode.", + "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." + } + ] + } + }, + "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": { + "type": "array", + "description": "The tags of the blob.", + "items": { + "$ref": "#/definitions/BlobTag" + }, + "x-ms-identifiers": [] + }, + "objectReplicationMetadata": { + "$ref": "#/definitions/ObjectReplicationMetadata", + "description": "The object replication metadata of the blob." + }, + "hasVersionsOnly": { + "type": "boolean", + "description": "Whether the blog has versions only." + } + }, + "required": [ + "name", + "deleted", + "snapshot", + "properties" + ] + }, + "BlobMetadata": { + "type": "object", + "description": "The blob metadata.", + "properties": { + "encrypted": { + "type": "string", + "description": "Whether the blob metadata is encrypted." + } + }, + "required": [ + "encrypted" + ], + "additionalProperties": { + "type": "string" + } + }, + "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." + } + }, + "required": [ + "encoded", + "content" + ] + }, + "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-rfc1123", + "description": "The date-time the blob was created in RFC1123 format." + }, + "lastModified": { + "type": "string", + "format": "date-time-rfc1123", + "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", + "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-rfc1123", + "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 desination snapshot." + }, + "deletedTime": { + "type": "string", + "format": "date-time-rfc1123", + "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." + }, + "encryptionScope": { + "type": "string", + "description": "The encryption scope of the blob." + }, + "accessTierChangeTime": { + "type": "string", + "format": "date-time-rfc1123", + "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-rfc1123", + "description": "The expire time of the blob.", + "x-ms-client-name": "ExpiresOn" + }, + "sealed": { + "type": "boolean", + "description": "Whether the blob is sealed.", + "x-ms-client-name": "IsSealed" + }, + "rehydratePriority": { + "$ref": "#/definitions/RehydratePriority", + "description": "The rehydrate priority of the blob." + }, + "lastAccessTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The last access time of the blob." + }, + "immutabilityPolicyUntilDate": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The immutability policy until time of the blob.", + "x-ms-client-name": "ImmutabilityPolicyExpiresOn" + }, + "immutabilityPolicyMode": { + "$ref": "#/definitions/BlobImmutabilityPolicyMode", + "description": "The immutability policy mode of the blob." + }, + "legalHold": { + "type": "boolean", + "description": "Whether the blob is under legal hold." + } + }, + "required": [ + "lastModified", + "eTag" + ] + }, + "BlobSequenceNumberResponseHeader": { + "type": "object", + "description": "The blob sequence number response header." + }, + "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." + } + }, + "required": [ + "key", + "value" + ] + }, + "BlobTags": { + "type": "object", + "description": "Represents blob tags.", + "properties": { + "blobTagSet": { + "type": "array", + "description": "Represents the blob tags.", + "items": { + "$ref": "#/definitions/BlobTag" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "blobTagSet" + ] + }, + "BlobType": { + "type": "string", + "description": "The blob type.", + "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." + } + ] + } + }, + "BlobTypeResponseHeader": { + "type": "object", + "description": "The blob type response header." + }, + "BlockListType": { + "type": "string", + "description": "The block list types.", + "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." + } + ] + } + }, + "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" + } + } + }, + "required": [ + "committed", + "uncommitted", + "latest" + ] + }, + "CacheControlResponseHeader": { + "type": "object", + "description": "The Cache-Control response header." + }, + "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." + } + }, + "required": [ + "start", + "end" + ] + }, + "ClientRequestIdResponseHeader": { + "type": "object", + "description": "The client request ID response header." + }, + "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": { + "$ref": "#/definitions/ContainerMetadata", + "description": "The metadata of the container." + } + }, + "required": [ + "name", + "properties" + ] + }, + "ContainerMetadata": { + "type": "object", + "description": "The metadata of a container.", + "properties": { + "encrypted": { + "type": "string", + "description": "Whether the metadata is encrypted." + } + }, + "required": [ + "encrypted" + ], + "additionalProperties": { + "type": "string" + } + }, + "ContainerProperties": { + "type": "object", + "description": "The properties of a container.", + "properties": { + "creationTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date-time the container was created in RFC1123 format." + }, + "lastModified": { + "type": "string", + "format": "date-time-rfc1123", + "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." + }, + "defaultEncryptionScope": { + "type": "string", + "description": "The default encryption scope of the container." + }, + "denyEncryptionScopeOverride": { + "type": "boolean", + "description": "Whether to prevent encryption scope override.", + "x-ms-client-name": "PreventEncryptionScopeOverride" + }, + "hasLegalHold": { + "type": "boolean", + "description": "The has legal hold status of the container." + }, + "deletedTime": { + "type": "string", + "format": "date-time-rfc1123", + "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.", + "x-ms-client-name": "IsImmutableStorageWithVersioningEnabled" + } + }, + "required": [ + "lastModified", + "eTag" + ] + }, + "ContentCrc64ResponseHeader": { + "type": "object", + "description": "The content CRC 64 response header." + }, + "ContentDispositionResponseHeader": { + "type": "object", + "description": "The Content-Disposition response header." + }, + "ContentEncodingResponseParameter": { + "type": "object", + "description": "The Content-Encoding response header." + }, + "ContentLanguageResponseHeader": { + "type": "object", + "description": "The Content-Language response header." + }, + "ContentLengthResponseHeader": { + "type": "object", + "description": "The Content-Length response header." + }, + "ContentMd5ResponseHeader": { + "type": "object", + "description": "The Content-MD5 response header." + }, + "ContentRangeResponseHeader": { + "type": "object", + "description": "The Content-Range response header." + }, + "CopyCompletionTimeResponseHeader": { + "type": "object", + "description": "The copy completion time response header." + }, + "CopyIdResponseHeader": { + "type": "object", + "description": "The copy ID response header." + }, + "CopyProgressResponseHeader": { + "type": "object", + "description": "The copy progress response header." + }, + "CopySourceResponseHeader": { + "type": "object", + "description": "The copy source response header." + }, + "CopyStatus": { + "type": "string", + "description": "The copy status.", + "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." + } + ] + } + }, + "CopyStatusDescriptionResponseHeader": { + "type": "object", + "description": "The copy status description response header." + }, + "CopyStatusResponseHeader": { + "type": "object", + "description": "The copy status response header." + }, + "CorsRule": { + "type": "object", + "description": "The CORS rule.", + "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." + } + }, + "required": [ + "allowedOrigins", + "allowedMethods", + "allowedHeaders", + "exposedHeaders", + "maxAgeInSeconds" + ] + }, + "CreationTimeResponseHeader": { + "type": "object", + "description": "The creation time response header." + }, + "DateResponseHeader": { + "type": "object", + "description": "The Date response header" + }, + "DefaultEncryptionScopeResponseHeader": { + "type": "object", + "description": "The default encryption scope response header." + }, + "DeleteSnapshotsOptionType": { + "type": "string", + "description": "The delete snapshots option type.", + "enum": [ + "none", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": true, + "values": [ + { + "name": "none", + "value": "none", + "description": "The delete snapshots include option is not specified." + }, + { + "name": "include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] + } + }, + "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." + } + } + }, + "DenyEncryptionScopeOverrideResponseHeader": { + "type": "object", + "description": "The deny encryption scope override response header." + }, + "DestinationSnapshotResponseHeader": { + "type": "object", + "description": "The destination snapshot response header." + }, + "EncryptionKeySha256ResponseHeader": { + "type": "object", + "description": "The encryption key SHA256 response header." + }, + "EncryptionScopeResponseHeader": { + "type": "object", + "description": "The encryption scope response header." + }, + "EtagResponseHeader": { + "type": "object", + "description": "The ETag response header" + }, + "ExpiresOnResponseHeader": { + "type": "object", + "description": "The expires on response header." + }, + "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" + } + }, + "required": [ + "name", + "containerName" + ] + }, + "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." + } + }, + "required": [ + "serviceEndpoint", + "where", + "blobs" + ] + }, + "FilterBlobsIncludes": { + "type": "string", + "description": "The filter blobs includes.", + "enum": [ + "none", + "versions" + ], + "x-ms-enum": { + "name": "FilterBlobsIncludes", + "modelAsString": true, + "values": [ + { + "name": "none", + "value": "none", + "description": "The filter includes no versions." + }, + { + "name": "versions", + "value": "versions", + "description": "The filter includes n versions." + } + ] + } + }, + "GeoReplication": { + "type": "object", + "description": "The geo replication status.", + "properties": { + "status": { + "$ref": "#/definitions/GeoReplicationStatus", + "description": "The georeplication status." + }, + "lastSyncTime": { + "type": "string", + "description": "The last sync time." + } + }, + "required": [ + "status", + "lastSyncTime" + ] + }, + "GeoReplicationStatus": { + "type": "string", + "description": "The geo replication status.", + "enum": [ + "live", + "bootstrap", + "unavailable" + ], + "x-ms-enum": { + "name": "GeoReplicationStatus", + "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." + } + ] + } + }, + "HasImmutabilityPolicyResponseHeader": { + "type": "object", + "description": "The has immutability policy response header." + }, + "HasLegalHoldResponseHeader": { + "type": "object", + "description": "The has legal hold response header." + }, + "ImmutabilityPolicyExpiresOnResponseHeader": { + "type": "object", + "description": "The immutability policy expires on response header." + }, + "ImmutabilityPolicyExpiryResponseHeader": { + "type": "object", + "description": "The immutability policy expiration response header." + }, + "ImmutabilityPolicyModeResponseHeader": { + "type": "object", + "description": "The immutability policy mode response header." + }, + "IsCurrentVersionResponseHeader": { + "type": "object", + "description": "The is current version response header." + }, + "IsHierarchicalNamespaceEnabledResponseHeader": { + "type": "object", + "description": "The is hierarchical namespace enabled response header." + }, + "IsImmutableStorageWithVersioningEnabledResponseHeader": { + "type": "object", + "description": "The is immutable storage with versioning enable response header." + }, + "IsIncrementalCopyResponseHeader": { + "type": "object", + "description": "The is incremental copy response header." + }, + "IsSealedResponseHeader": { + "type": "object", + "description": "The is sealed response header." + }, + "IsServerEncryptedResponseHeader": { + "type": "object", + "description": "The is server encrypted response header." + }, + "JsonTextConfiguration": { + "type": "object", + "description": "Represents the JSON text configuration.", + "properties": { + "recordSeparator": { + "type": "string", + "description": "The string used to separate records." + } + } + }, + "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." + } + }, + "required": [ + "start", + "expiry" + ] + }, + "LastAccessedResponseHeader": { + "type": "object", + "description": "The last accessed response header." + }, + "LastModifiedResponseHeader": { + "type": "object", + "description": "The last modified response header" + }, + "LeaseDuration": { + "type": "string", + "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." + } + ] + } + }, + "LeaseDurationResponseHeader": { + "type": "object", + "description": "The lease duration response header." + }, + "LeaseIdResponseHeader": { + "type": "object", + "description": "The lease ID response header." + }, + "LeaseState": { + "type": "string", + "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." + } + ] + } + }, + "LeaseStateResponseHeader": { + "type": "object", + "description": "The lease state response header." + }, + "LeaseStatus": { + "type": "string", + "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." + } + ] + } + }, + "LeaseStatusResponseHeader": { + "type": "object", + "description": "The lease status response header." + }, + "LeaseTimeResponseHeader": { + "type": "object", + "description": "The lease time response header." + }, + "LegalHoldResponseHeader": { + "type": "object", + "description": "The legal hold response header." + }, + "ListBlobsFlatSegmentResponse": { + "type": "object", + "description": "An enumeration of blobs.", + "properties": { + "serviceEndpoint": { + "type": "string", + "description": "The service endpoint." + }, + "containerName": { + "type": "string", + "description": "The container name." + }, + "rrefix": { + "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." + } + }, + "required": [ + "serviceEndpoint", + "containerName", + "segment" + ] + }, + "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." + } + }, + "required": [ + "serviceEndpoint", + "containerName", + "segment" + ] + }, + "ListBlobsIncludes": { + "type": "string", + "description": "The list blob includes parameter values.", + "enum": [ + "copies", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludes", + "modelAsString": true, + "values": [ + { + "name": "copies", + "value": "copies", + "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." + } + ] + } + }, + "ListContainersSegmentResponse": { + "type": "object", + "description": "The list container segement 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." + }, + "maxxResults": { + "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." + } + }, + "required": [ + "serviceEndpoint", + "containerItems" + ] + }, + "Logging": { + "type": "object", + "description": "The logging properties.", + "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." + } + }, + "required": [ + "version", + "delete", + "read", + "write", + "retentionPolicy" + ] + }, + "MetadataParameter": { + "type": "object", + "description": "The metadata parameter.", + "additionalProperties": { + "type": "string" + } + }, + "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." + }, + "serviceProperties": { + "$ref": "#/definitions/MetricsServiceProperties", + "description": "The service properties of the metrics." + } + }, + "required": [ + "enabled" + ] + }, + "MetricsProperties": { + "type": "object", + "description": "The metrics properties.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether to include API in the metrics." + }, + "version": { + "type": "string", + "description": "The version of the metrics properties." + }, + "retentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "The retention policy of the metrics." + } + }, + "required": [ + "enabled", + "version", + "retentionPolicy" + ] + }, + "MetricsServiceProperties": { + "type": "object", + "description": "The metrics service properties.", + "properties": { + "hourMetrics": { + "$ref": "#/definitions/MetricsProperties", + "description": "The hour metrics properties." + }, + "minuteMetrics": { + "$ref": "#/definitions/MetricsProperties", + "description": "The minute metrics properties." + } + }, + "required": [ + "hourMetrics", + "minuteMetrics" + ] + }, + "ObjectReplicationMetadata": { + "type": "object", + "description": "The object replication metadata.", + "additionalProperties": { + "type": "string" + } + }, + "ObjectReplicationPolicyIdResponseHeader": { + "type": "object", + "description": "The object replication policy response header." + }, + "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." + } + }, + "required": [ + "pageRange", + "clearRange" + ] + }, + "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" + ] + }, + "ParquetConfiguration": { + "type": "object", + "description": "Represents the Parquet configuration.", + "additionalProperties": {} + }, + "PremiumPageBlobAccessTier": { + "type": "string", + "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." + } + ] + } + }, + "PublicAccessResponseHeader": { + "type": "object", + "description": "The public access response header." + }, + "PublicAccessType": { + "type": "string", + "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." + } + ] + } + }, + "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." + }, + "parquetConfiguration": { + "$ref": "#/definitions/ParquetConfiguration", + "description": "The Parquet configuration." + } + }, + "required": [ + "type" + ] + }, + "QueryRequest": { + "type": "object", + "description": "Groups the set of query request settings.", + "properties": { + "queryType": { + "$ref": "#/definitions/QueryRequestTypeSqlOnly", + "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" + ] + }, + "QueryRequestTypeSqlOnly": { + "type": "string", + "description": "The query request, note only SQL supported", + "enum": [ + "SQL" + ], + "x-ms-enum": { + "name": "QueryRequestTypeSqlOnly", + "modelAsString": true, + "values": [ + { + "name": "SQL", + "value": "SQL", + "description": "The SQL request query type." + } + ] + } + }, + "QuerySerialization": { + "type": "object", + "description": "The query serialization settings.", + "properties": { + "format": { + "$ref": "#/definitions/QueryFormat", + "description": "The query format." + } + }, + "required": [ + "format" + ] + }, + "QueryType": { + "type": "string", + "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." + } + ] + } + }, + "RehydratePriority": { + "type": "string", + "description": "The rehydrate priority.", + "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." + } + ] + } + }, + "RehydratePriorityResponseHeader": { + "type": "object", + "description": "The rehydrate priority response header." + }, + "RequestIdResponseHeader": { + "type": "object", + "description": "The request ID response header." + }, + "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." + }, + "allowPermanentDelete": { + "type": "boolean", + "description": "Whether to allow permanent delete." + } + }, + "required": [ + "enabled", + "days", + "allowPermanentDelete" + ] + }, + "SequenceNumberActionType": { + "type": "string", + "description": "The sequence number actions.", + "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." + } + ] + } + }, + "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" + ] + }, + "SignedIdentifiers": { + "type": "array", + "description": "Represents an array of signed identifiers", + "items": { + "$ref": "#/definitions/SignedIdentifier" + } + }, + "SkuName": { + "type": "string", + "description": "The SKU types", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": true, + "values": [ + { + "name": "Standard_LRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "Standard_GRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "Standard_RAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "Standard_ZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "Premium_LRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + } + ] + } + }, + "SkuNameResponseHeader": { + "type": "object", + "description": "The SKU name response header." + }, + "SnapshotResponseHeader": { + "type": "object", + "description": "The snapshot response header." + }, + "StaticWebsite": { + "type": "object", + "description": "The static website properties.", + "properties": { + "indexDocument": { + "type": "string", + "description": "The index document." + }, + "errorDocument": { + "type": "string", + "description": "The error document." + } + } + }, + "StorageError": { + "type": "object", + "description": "The error response.", + "properties": { + "Message": { + "type": "string", + "description": "The error message." + } + }, + "required": [ + "Message" + ] + }, + "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." + } + } + }, + "StorageServiceStats": { + "type": "object", + "description": "Stats for the storage service.", + "properties": { + "geoReplication": { + "$ref": "#/definitions/GeoReplication", + "description": "The geo replication stats." + } + }, + "required": [ + "geoReplication" + ] + }, + "TagCountResponseHeader": { + "type": "object", + "description": "The tag count response header." + }, + "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." + } + }, + "required": [ + "signedOid", + "signedTid", + "signedStart", + "signedExpiry", + "signedService", + "signedVersion", + "value" + ] + }, + "VersionIdResponseHeader": { + "type": "object", + "description": "The version ID response header." + }, + "VersionResponseHeader": { + "type": "object", + "description": "The version response header." + }, "Versions": { "type": "string", - "description": "The Azure.Storage.Blob service versions.", + "description": "The Azure.Storage.Blob service versions.", + "enum": [ + "2020-10-02-preview", + "2020-12-06-preview", + "2021-02-12-preview", + "2021-04-10-preview", + "2021-08-06-preview", + "2021-12-02-preview" + ], + "x-ms-enum": { + "name": "Versions", + "modelAsString": true, + "values": [ + { + "name": "2020-10-02-preview", + "value": "2020-10-02-preview", + "description": "The 2020-10-02-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2020-12-06-preview", + "value": "2020-12-06-preview", + "description": "The 2020-12-06-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-02-12-preview", + "value": "2021-02-12-preview", + "description": "The 2021-02-12-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-04-10-preview", + "value": "2021-04-10-preview", + "description": "The 2021-04-10-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-08-06-preview", + "value": "2021-08-06-preview", + "description": "The 2021-08-06-preview version of the Azure.Storage.Blob service." + }, + { + "name": "2021-12-02-preview", + "value": "2021-12-02-preview", + "description": "The 2021-12-02-preview version of the Azure.Storage.Blob service." + } + ] + } + } + }, + "parameters": { + "AccessTierOptionalParameter": { + "name": "x-ms-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-parameter-location": "method", + "x-ms-client-name": "accessTier" + }, + "AccessTierRequiredParameter": { + "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" + ], + "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." + } + ] + }, + "x-ms-parameter-location": "method", + "x-ms-client-name": "accessTier" + }, + "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-parameter-location": "method", + "x-ms-client-name": "version" + }, + "BlobBlocksParameter": { + "name": "blocks", + "in": "body", + "description": "Blob Blocks.", + "required": true, + "schema": { + "$ref": "#/definitions/BlockLookupList" + }, + "x-ms-parameter-location": "method" + }, + "BlobCacheControlParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "blobCacheControl" + }, + "BlobConditionAppendPosParameter": { + "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": true, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "x-ms-client-name": "blobConditionAppendPosition" + }, + "BlobConditionMaxSizeParameter": { + "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": true, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "x-ms-client-name": "blobConditionMaxSize" + }, + "BlobContentDispositionParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "blobContentDisposition" + }, + "BlobContentEncodingParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "blobContentEncoding" + }, + "BlobContentLanguageParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "blobContentLanguage" + }, + "BlobContentLengthRequiredParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "blobContentLength" + }, + "BlobContentMd5Parameter": { + "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", + "x-ms-parameter-location": "method", + "x-ms-client-name": "blobContentMd5" + }, + "BlobContentTypeParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "blobContentType" + }, + "BlobDeleteTypeParameter": { + "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": [ + "none", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": true, + "values": [ + { + "name": "none", + "value": "none", + "description": "The delete snapshots include option is not specified." + }, + { + "name": "include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] + }, + "x-ms-parameter-location": "method" + }, + "BlobExpiryOptionsParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "expiryOptions" + }, + "BlobExpiryTimeParameter": { + "name": "x-ms-expiry-time", + "in": "header", + "description": "The time to set the blob to expiry.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "expiryTime" + }, + "BlobNameParameter": { + "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}$", + "x-ms-parameter-location": "method" + }, + "BlobPublicAccessParameter": { + "name": "x-ms-blob-public-access", + "in": "header", + "description": "Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'.", + "required": false, + "type": "string", "enum": [ - "2020-10-02-preview", - "2020-12-06-preview", - "2021-02-12-preview", - "2021-04-10-preview", - "2021-08-06-preview", - "2021-12-02-preview" + "blob", + "container" ], "x-ms-enum": { - "name": "Versions", + "name": "PublicAccessType", "modelAsString": true, "values": [ { - "name": "2020-10-02-preview", - "value": "2020-10-02-preview", - "description": "The 2020-10-02-preview version of the Azure.Storage.Blob service." + "name": "blob", + "value": "blob", + "description": "Blob access." }, { - "name": "2020-12-06-preview", - "value": "2020-12-06-preview", - "description": "The 2020-12-06-preview version of the Azure.Storage.Blob service." + "name": "container", + "value": "container", + "description": "Container access." + } + ] + }, + "x-ms-parameter-location": "method", + "x-ms-client-name": "publicAccess" + }, + "BlobSequenceNumberParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "blobSequenceNumber" + }, + "BlobTagsBodyParameter": { + "name": "tags", + "in": "body", + "description": "The blob tags.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobTags" + }, + "x-ms-parameter-location": "method" + }, + "BlobTagsHeaderParameter": { + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "blobTags" + }, + "BlockIdParameter": { + "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-parameter-location": "method" + }, + "BlockListTypeParameter": { + "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": "2021-02-12-preview", - "value": "2021-02-12-preview", - "description": "The 2021-02-12-preview version of the Azure.Storage.Blob service." + "name": "uncommitted", + "value": "uncommitted", + "description": "The list of uncommitted blocks." }, { - "name": "2021-04-10-preview", - "value": "2021-04-10-preview", - "description": "The 2021-04-10-preview version of the Azure.Storage.Blob service." + "name": "all", + "value": "all", + "description": "Both lists together." + } + ] + }, + "x-ms-parameter-location": "method" + }, + "BodyParameter": { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + }, + "x-ms-parameter-location": "method" + }, + "ClientRequestIdParameter": { + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "clientRequestId" + }, + "ContainerAclParameter": { + "name": "acl", + "in": "body", + "description": "The access control list for the container.", + "required": true, + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + }, + "x-ms-parameter-location": "method" + }, + "ContainerNameParameter": { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "ContentCrc64Parameter": { + "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-parameter-location": "method", + "x-ms-client-name": "contentCrc64" + }, + "ContentLengthParameter": { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "x-ms-client-name": "contentLength" + }, + "ContentMd5Parameter": { + "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-parameter-location": "method", + "x-ms-client-name": "contentMd5" + }, + "CopyIdParameter": { + "name": "x-ms-copy-id", + "in": "header", + "description": "The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "copyId" + }, + "CopySourceAuthorizationParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "copySourceAuthorization" + }, + "CopySourceBlobPropertiesParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "copySourceBlobProperties" + }, + "CopySourceParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "copySource" + }, + "CopySourceTagsParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "copySourceTags" + }, + "DefaultEncryptionScopeParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "defaultEncryptionScope" + }, + "DeleteSnapshotsParameter": { + "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": [ + "none", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": true, + "values": [ + { + "name": "none", + "value": "none", + "description": "The delete snapshots include option is not specified." }, { - "name": "2021-08-06-preview", - "value": "2021-08-06-preview", - "description": "The 2021-08-06-preview version of the Azure.Storage.Blob service." + "name": "include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] + }, + "x-ms-parameter-location": "method", + "x-ms-client-name": "deleteSnapshots" + }, + "DeletedContainerNameParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "deletedContainerName" + }, + "DeletedContainerVersionParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "deletedContainerVersion" + }, + "DelimiterParameter": { + "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", + "x-ms-parameter-location": "method" + }, + "DenyEncryptionScopeOverrideParameter": { + "name": "x-ms-deny-encryption-scope-override", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container.", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "x-ms-client-name": "denyEncryptionScopeOverride" + }, + "EncryptionAlgorithmParameter": { + "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", + "x-ms-parameter-location": "method", + "x-ms-client-name": "encryptionAlgorithm" + }, + "EncryptionKeyParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "encryptionKey" + }, + "EncryptionKeySha256Parameter": { + "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-parameter-location": "method", + "x-ms-client-name": "encryptionKeySha256" + }, + "EncryptionScopeParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "encryptionScope" + }, + "FilterBlobsInclude": { + "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": "FilterBlobsIncludes", + "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", + "x-ms-parameter-location": "method" + }, + "FilterBlobsWhere": { + "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", + "x-ms-parameter-location": "method" + }, + "GetRangeContentCrc64Parameter": { + "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-parameter-location": "method", + "x-ms-client-name": "rangeContentCrc64" + }, + "GetRangeContentMd5Parameter": { + "name": "x-ms-range-get-content-md5", + "in": "header", + "description": "Optional. When this header is set to true and specified together with the Range header, 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-parameter-location": "method", + "x-ms-client-name": "rangeContentMd5" + }, + "IfMatchParameter": { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifMatch" + }, + "IfModifiedSinceParameter": { + "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-rfc1123", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifModifiedSince" + }, + "IfNoneMatchParameter": { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifNoneMatch" + }, + "IfSequenceNumberEqualToParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "ifSequenceNumberEqualTo" + }, + "IfSequenceNumberLessThanOrEqualToParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" + }, + "IfSequenceNumberLessThanParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "ifSequenceNumberLessThan" + }, + "IfTagsParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "ifTags" + }, + "IfUnmodifiedSinceParameter": { + "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-rfc1123", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifUnmodifiedSince" + }, + "ImmutabilityPolicyExpiryParameter": { + "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-rfc1123", + "x-ms-parameter-location": "method", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + "ImmutabilityPolicyModeParameter": { + "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": "2021-12-02-preview", - "value": "2021-12-02-preview", - "description": "The 2021-12-02-preview version of the Azure.Storage.Blob service." + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." } ] - } + }, + "x-ms-parameter-location": "method", + "x-ms-client-name": "immutabilityPolicyMode" + }, + "LeaseBreakPeriodParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "leaseBreakPeriod" + }, + "LeaseDurationParameter": { + "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": true, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method", + "x-ms-client-name": "leaseDuration" + }, + "LeaseIdOptionalParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "leaseId" + }, + "LeaseIdRequired": { + "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-parameter-location": "method", + "x-ms-client-name": "leaseId" + }, + "LeaseIdRequiredParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "leaseId" + }, + "LegalHoldOptionalParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "legalHold" + }, + "LegalHoldRequiredParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "legalHold" + }, + "ListBlobsInclude": { + "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": [ + "copies", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludes", + "modelAsString": true, + "values": [ + { + "name": "copies", + "value": "copies", + "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", + "x-ms-parameter-location": "method" + }, + "MarkerParameter": { + "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", + "x-ms-parameter-location": "method" + }, + "MaxResultsParameter": { + "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", + "x-ms-parameter-location": "method" + }, + "PrefixParameter": { + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "PremiumPageBlobAccessTierOptional": { + "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-parameter-location": "method", + "x-ms-client-name": "accessTier" + }, + "PrevSnapshotParameter": { + "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": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "PrevSnapshotUrlParameter": { + "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": true, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "previousSnapshotUrl" + }, + "ProposedLeaseIdOptional": { + "name": "x-ms-proposed-lease-id", + "in": "header", + "description": "Optional. The proposed lease ID for the container.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "proposedLeaseId" + }, + "ProposedLeaseIdRequired": { + "name": "x-ms-proposed-lease-id", + "in": "header", + "description": "Required. The proposed lease ID for the container.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "proposedLeaseId" + }, + "QueryRequestParameter": { + "name": "queryRequest", + "in": "body", + "description": "The query request", + "required": true, + "schema": { + "$ref": "#/definitions/QueryRequest" + }, + "x-ms-parameter-location": "method" + }, + "RangeParameter": { + "name": "x-ms-range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "range" + }, + "RangeRequiredPutPageFromUrlParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "range" + }, + "RehydratePriorityParameter": { + "name": "x-ms-rehydrate-priority", + "in": "header", + "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", + "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-parameter-location": "method", + "x-ms-client-name": "rehydratePriority" + }, + "SealBlobParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "sealBlob" + }, + "SequenceNumberActionParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "sequenceNumberAction" + }, + "SequenceNumberParameter": { + "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": true, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "x-ms-client-name": "blobSequenceNumber" + }, + "SnapshotParameter": { + "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", + "x-ms-parameter-location": "method" + }, + "SourceContainerNameParameter": { + "name": "x-ms-source-container-name", + "in": "header", + "description": "Required. Specifies the name of the container to rename.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "sourceContainerName" + }, + "SourceContentCrc64Parameter": { + "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", + "x-ms-parameter-location": "method", + "x-ms-client-name": "sourceContentCrc64" + }, + "SourceContentMd5Parameter": { + "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-parameter-location": "method", + "x-ms-client-name": "sourceContentMd5" + }, + "SourceIfMatchParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "sourceIfMatch" + }, + "SourceIfModifiedSinceParameter": { + "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-rfc1123", + "x-ms-parameter-location": "method", + "x-ms-client-name": "sourceIfModifiedSince" + }, + "SourceIfNoneMatchParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "sourceIfNoneMatch" + }, + "SourceIfTagsParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "sourceIfTags" + }, + "SourceIfUnmodifiedSinceParameter": { + "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-rfc1123", + "x-ms-parameter-location": "method", + "x-ms-client-name": "sourceIfUnmodifiedSince" + }, + "SourceLeaseIdParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "sourceLeaseId" + }, + "SourceRangeParameter": { + "name": "x-ms-source-range", + "in": "header", + "description": "Bytes of source data in the specified range.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "sourceRange" + }, + "SourceRangeRequiredPutPageFromUrlParameter": { + "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-parameter-location": "method", + "x-ms-client-name": "sourceRange" + }, + "SourceUrlParameter": { + "name": "x-ms-source-url", + "in": "header", + "description": "Specify a URL to the copy source.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "sourceUrl" + }, + "TimeoutParameter": { + "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", + "x-ms-parameter-location": "method" + }, + "VersionIdParameter": { + "name": "versionid", + "in": "header", + "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": true, + "type": "string", + "x-ms-parameter-location": "method" } - }, - "parameters": {} + } } From a174e91e7c957389c2df5a6b7b9a7463c54eef84 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Mon, 6 May 2024 18:45:32 -0400 Subject: [PATCH 027/129] [storage blob] Fix dependencies --- .../Microsoft.BlobStorage/package-lock.json | 178 +++++++++--------- .../Microsoft.BlobStorage/package.json | 14 +- 2 files changed, 99 insertions(+), 93 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/package-lock.json b/specification/storage/Microsoft.BlobStorage/package-lock.json index d37059b5414c..7310db2e6595 100644 --- a/specification/storage/Microsoft.BlobStorage/package-lock.json +++ b/specification/storage/Microsoft.BlobStorage/package-lock.json @@ -8,92 +8,94 @@ "name": "Microsoft.BlobStorage", "version": "0.1.0", "dependencies": { - "@azure-tools/typespec-autorest": "^0.40.0", - "@azure-tools/typespec-azure-core": "^0.40.0", - "@azure-tools/typespec-client-generator-core": "^0.40.0", + "@azure-tools/typespec-autorest": "0.41.1", + "@azure-tools/typespec-azure-core": "0.41.0", + "@azure-tools/typespec-client-generator-core": "~0.41.1", "@typespec/compiler": "latest", - "@typespec/openapi": "^0.54.0", - "@typespec/openapi3": "^0.54.0", - "@typespec/rest": "^0.54.0", - "@typespec/xml": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvMzYyMDIzNC9hcnRpZmFjdE5hbWUvcGFja2FnZXM1/content?format=file&subPath=%2Ftypespec-xml-0.55.0-pr-3035.20240320.10.tgz" + "@typespec/openapi": "^0.55.0", + "@typespec/openapi3": "^0.55.0", + "@typespec/rest": "^0.55.0", + "@typespec/xml": "^0.55.0" } }, "node_modules/@azure-tools/typespec-autorest": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.40.0.tgz", - "integrity": "sha512-aMgJk0pudvg11zs/2dlUWPEsdK920NvTqGkbYhy+4UeJ1hEzMM3btOyujE/irhDlcZeEgDlaXQc+xiK/Vik71A==", + "version": "0.41.1", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.41.1.tgz", + "integrity": "sha512-m2Rq8aFMvICfkG/+B1kGSDepCUDHhiQ93y1/IcE+XU1+IU2iuNoSgUd0lHgksP5Aqnvs3Wm9JDmA9nMNjOM1Ww==", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.40.0", - "@azure-tools/typespec-client-generator-core": "~0.40.0", - "@typespec/compiler": "~0.54.0", - "@typespec/http": "~0.54.0", - "@typespec/openapi": "~0.54.0", - "@typespec/rest": "~0.54.0", - "@typespec/versioning": "~0.54.0" + "@azure-tools/typespec-azure-core": "~0.41.0", + "@azure-tools/typespec-client-generator-core": "~0.41.1", + "@typespec/compiler": "~0.55.0", + "@typespec/http": "~0.55.0", + "@typespec/openapi": "~0.55.0", + "@typespec/rest": "~0.55.0", + "@typespec/versioning": "~0.55.0" } }, "node_modules/@azure-tools/typespec-azure-core": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.40.0.tgz", - "integrity": "sha512-l5U47zXKYQKFbipRQLpjG4EwvPJg0SogdFEe5a3rRr7mUy8sWPkciHpngLZVOd2cKZQD5m7nqwfWL798I9TJnQ==", + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.41.0.tgz", + "integrity": "sha512-bnVrLxyjhMfKv75POL3m+lWjyqpLtWYEM9t2mrhFECHfW3+gWzTKIg98oNMKLXmev/sCc9QhbkKLs72jqxNL1Q==", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.54.0", - "@typespec/http": "~0.54.0", - "@typespec/rest": "~0.54.0" + "@typespec/compiler": "~0.55.0", + "@typespec/http": "~0.55.0", + "@typespec/rest": "~0.55.0" } }, "node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.40.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.40.0.tgz", - "integrity": "sha512-Nm/OfDtSWBr1lylISbXR37B9QKWlZHK1j4T8L439Y1v3VcvJsC/0F5PLemY0odHpOYZNwu2uevJjAeM5W56wlw==", + "version": "0.41.9", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.41.9.tgz", + "integrity": "sha512-OKtt0p/MwDZ4lJwN4Wz2u28vLF65iQTpbikJ2iH954K11p8bo4R2LNGI7FMoE3FQKnpVqd8CwZRejG4KZX/yvg==", "dependencies": { - "change-case": "~5.4.2", + "change-case": "~5.4.4", "pluralize": "^8.0.0" }, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.54.0", - "@typespec/http": "~0.54.0", - "@typespec/rest": "~0.54.0", - "@typespec/versioning": "~0.54.0" + "@azure-tools/typespec-azure-core": "~0.41.0", + "@typespec/compiler": "~0.55.0", + "@typespec/http": "~0.55.0", + "@typespec/rest": "~0.55.0", + "@typespec/versioning": "~0.55.0" } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.5", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -143,14 +145,14 @@ } }, "node_modules/@typespec/compiler": { - "version": "0.54.0", - "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.54.0.tgz", - "integrity": "sha512-lxMqlvUq5m1KZUjg+IoM/gEwY+yeSjjnpUsz6wmzjK4cO9cIY4wPJdrZwe8jUc2UFOoqKXN3AK8N1UWxA+w9Dg==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.55.0.tgz", + "integrity": "sha512-JxBkP7fTc3yzDYZ+Ms+ZHYlL2Ym22oloLDl6107SGaShNJBdQlabgE0aV8WvYRRBYt8g0RNb+sDLEcjvahj6Gw==", "dependencies": { - "@babel/code-frame": "~7.23.5", + "@babel/code-frame": "~7.24.2", "ajv": "~8.12.0", - "change-case": "~5.4.2", - "globby": "~14.0.0", + "change-case": "~5.4.3", + "globby": "~14.0.1", "mustache": "~4.2.0", "picocolors": "~1.0.0", "prettier": "~3.2.5", @@ -158,7 +160,7 @@ "semver": "^7.6.0", "vscode-languageserver": "~9.0.1", "vscode-languageserver-textdocument": "~1.0.11", - "yaml": "~2.3.4", + "yaml": "~2.4.1", "yargs": "~17.7.2" }, "bin": { @@ -170,78 +172,79 @@ } }, "node_modules/@typespec/http": { - "version": "0.54.0", - "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.54.0.tgz", - "integrity": "sha512-/hZd9pkjJh3ogOekyKzZnpVV2kXzxtWDiTt3Gekc6iHTGk/CE1JpRFts8xwXoI5d3FqYotfb4w5ztVw62WjOcA==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.55.0.tgz", + "integrity": "sha512-r30RWzMTJgbyRpdtZxezlvXI/nkAvgilX1OM+s3A039lGLA+JRukgvKIZ3LaNr3lNXHiqeWQDrIZNhqBnpW1zw==", "peer": true, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.54.0" + "@typespec/compiler": "~0.55.0" } }, "node_modules/@typespec/openapi": { - "version": "0.54.0", - "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.54.0.tgz", - "integrity": "sha512-QJkwq3whcqKb29ScMD5IQzqvDmPQyLAubRl82Zj6kVMCqabRwegOX9aN+K0083nci65zt9rflZbv9bKY5GRy/A==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.55.0.tgz", + "integrity": "sha512-5T4VuJSOGfMFSs+1dOl3U3BC6VhKAxSTBrwcQDIEEygnqCSbj/tMFDhNfzKYKARRDotgM8ESOrZU6XH5srVR7A==", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.54.0", - "@typespec/http": "~0.54.0" + "@typespec/compiler": "~0.55.0", + "@typespec/http": "~0.55.0" } }, "node_modules/@typespec/openapi3": { - "version": "0.54.0", - "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.54.0.tgz", - "integrity": "sha512-ryqa6iNWA3Vb2TcyTUD0NrRecGVY5MGaEuAdBJnnEEPcE6CSQY0j0dFZXzRLBUd4LiR332B4Y7Brkq6MjRdrNg==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.55.0.tgz", + "integrity": "sha512-dfn/wrKSF4Ls1dWMpAguQggoc4HGx2tf3FN2xhBln6EtahNZNgN5sOE+XY0hGPI4MCE5QexMUlXSiXpxzlNA/A==", "dependencies": { - "yaml": "~2.3.4" + "yaml": "~2.4.1" }, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.54.0", - "@typespec/http": "~0.54.0", - "@typespec/openapi": "~0.54.0", - "@typespec/versioning": "~0.54.0" + "@typespec/compiler": "~0.55.0", + "@typespec/http": "~0.55.0", + "@typespec/openapi": "~0.55.0", + "@typespec/versioning": "~0.55.0" } }, "node_modules/@typespec/rest": { - "version": "0.54.0", - "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.54.0.tgz", - "integrity": "sha512-F1hq/Per9epPJQ8Ey84mAtrgrZeLu6fDMIxNao1XlTfDEFZuYgFuCSyg0pyIi0Xg7KUBMvrvSv83WoF3mN2szw==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.55.0.tgz", + "integrity": "sha512-RPZnx5D4xdTNiP0l++9IA8mUhnegPxetbdJ5RaG/QX2fTyF/gQ7t6AHIgdq8DfYVXqukQI/iGytJ135ObftbtQ==", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.54.0", - "@typespec/http": "~0.54.0" + "@typespec/compiler": "~0.55.0", + "@typespec/http": "~0.55.0" } }, "node_modules/@typespec/versioning": { - "version": "0.54.0", - "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.54.0.tgz", - "integrity": "sha512-IlGpveOJ0WBTbn3w8nfzgSNhJWNd0+H+bo1Ljrjpeb9SFQmS8bX2fDf0vqsHVl50XgvKIZxgOpEXN5TmuzNnRw==", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.55.0.tgz", + "integrity": "sha512-89LTgkA3IBLnaaM4D4qfsrcEU0g3gasE1MmkrQ2HG21fYX88zKbmR1cKWeUxQx9MIXFOH4cPC9KhA/uLknRVMQ==", "peer": true, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.54.0" + "@typespec/compiler": "~0.55.0" } }, "node_modules/@typespec/xml": { - "version": "0.55.0-pr-3035.20240320.10", - "resolved": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvMzYyMDIzNC9hcnRpZmFjdE5hbWUvcGFja2FnZXM1/content?format=file&subPath=%2Ftypespec-xml-0.55.0-pr-3035.20240320.10.tgz", + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@typespec/xml/-/xml-0.55.0.tgz", + "integrity": "sha512-6UTSxhZsKahjx49VF2W3L/oljQNjMK5bAdUSvupqV34pAeBhoHIMBtXdq0H/roEge/0qF2s5TvBgogkP62EPgQ==", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.54.0 || >=0.55.0-0 <0.55.0" + "@typespec/compiler": "~0.55.0" } }, "node_modules/ajv": { @@ -303,9 +306,9 @@ } }, "node_modules/change-case": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.3.tgz", - "integrity": "sha512-4cdyvorTy/lViZlVzw2O8/hHCLUuHqp4KpSSP3DlauhFCf3LdnfF+p5s0EAhjKsU7bqrMzu7iQArYfoPiHO2nw==" + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==" }, "node_modules/cliui": { "version": "8.0.1", @@ -867,9 +870,12 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", + "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } diff --git a/specification/storage/Microsoft.BlobStorage/package.json b/specification/storage/Microsoft.BlobStorage/package.json index 7a8c0277b4fe..e6b5f61bf40d 100644 --- a/specification/storage/Microsoft.BlobStorage/package.json +++ b/specification/storage/Microsoft.BlobStorage/package.json @@ -3,14 +3,14 @@ "version": "0.1.0", "type": "module", "dependencies": { - "@azure-tools/typespec-autorest": "^0.40.0", - "@azure-tools/typespec-azure-core": "^0.40.0", - "@azure-tools/typespec-client-generator-core": "^0.40.0", + "@azure-tools/typespec-autorest": "0.41.1", + "@azure-tools/typespec-azure-core": "0.41.0", + "@azure-tools/typespec-client-generator-core": "~0.41.1", "@typespec/compiler": "latest", - "@typespec/openapi": "^0.54.0", - "@typespec/openapi3": "^0.54.0", - "@typespec/rest": "^0.54.0", - "@typespec/xml": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvMzYyMDIzNC9hcnRpZmFjdE5hbWUvcGFja2FnZXM1/content?format=file&subPath=%2Ftypespec-xml-0.55.0-pr-3035.20240320.10.tgz" + "@typespec/openapi": "^0.55.0", + "@typespec/openapi3": "^0.55.0", + "@typespec/rest": "^0.55.0", + "@typespec/xml": "^0.55.0" }, "private": true From cefd1b1b71de5a9345c43cfa1117338e4d24b3a4 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Tue, 2 Jul 2024 13:12:58 -0400 Subject: [PATCH 028/129] [Storage Blob] Updating routes --- .../storage/Microsoft.BlobStorage/models.tsp | 964 +++++++++--------- .../Microsoft.BlobStorage/package-lock.json | 18 +- .../Microsoft.BlobStorage/package.json | 16 +- .../storage/Microsoft.BlobStorage/routes.tsp | 32 +- 4 files changed, 534 insertions(+), 496 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 6829a828a2eb..51f6a56f7d47 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -38,7 +38,7 @@ model BlockLookupList { } /** Represents an array of signed identifiers */ -model SignedIdentifiers is Array; +alias SignedIdentifiers = Array; /** The signed identifier. */ model SignedIdentifier { @@ -84,39 +84,45 @@ model FilterBlobItem { } /** The filter blobs includes. */ -enum FilterBlobsIncludes { +union FilterBlobsIncludes { /** The filter includes no versions. */ - none, + None: "none", /** The filter includes n versions. */ - versions + Versions: "versions", + /** Extensible */ + string } /** The account kind. */ -enum AccountKind { +union AccountKind { /** The storage account is a general-purpose account. */ - Storage, + Storage: "Storage", /** The storage account is a blob storage account. */ - BlobStorage, + BlobStorage: "BlobStorage", /** The storage account is a storage V2 account. */ - StorageV2, + StorageV2: "StorageV2", /** The storage account is a file storage account. */ - FileStorage, + FileStorage: "FileStorage", /** The storage account is a block blob storage account. */ - BlockBlobStorage + BlockBlobStorage: "BlockBlobStorage", + /** Extensible */ + string } /** The SKU types */ -enum SkuName { +union SkuName { /** The standard LRS SKU. */ - Standard_LRS, + StandardLRS: "Standard_LRS", /** The standard GRS SKU. */ - Standard_GRS, + StandardGRS: "tandard_GRS", /** The standard RAGRS SKU. */ - Standard_RAGRS, + StandardRAGRS: "Standard_RAGRS", /** The standard ZRS SKU. */ - Standard_ZRS, + StandardZRS: "Standard_ZRS", /** The premium LRS SKU. */ - Premium_LRS + PremiumLRS: "Premium_LRS", + /** Extensible */ + string } /** The list container segement response */ @@ -238,13 +244,15 @@ model GeoReplication { } /** The geo replication status. */ -enum GeoReplicationStatus { +union GeoReplicationStatus { /** The geo replication is live. */ - live, + Live: "live", /** The geo replication is bootstrap. */ - bootstrap, + Bootstrap: "bootstrap", /** The geo replication is unavailable. */ - unavailable + Unavailable: "unavailable", + /** Extensible */ + string } /** Key information */ @@ -281,53 +289,63 @@ model UserDelegationKey { } /** The public access types. */ -enum PublicAccessType { +union PublicAccessType { /** Blob access. */ - blob, + Blob: "blob", /** Container access. */ - container, + Container: "container", + /** Extensible */ + string } /** The copy status. */ -enum CopyStatus { +union CopyStatus { /** The copy operation is pending. */ - pending, + Pending: "pending", /** The copy operation succeeded. */ - success, + Success: "success", /** The copy operation failed. */ - failed, + Failed: "failed", /** The copy operation is aborted. */ - aborted, + Aborted: "aborted", + /** Extensible */ + string } /** The lease duration. */ -enum LeaseDuration { +union LeaseDuration { /** The lease is of infinite duration. */ - infinite, + Infinite: "infinite", /** The lease is of fixed duration. */ - fixed, + Fixed: "fixed", + /** Extensible */ + string } /** The lease state. */ -enum LeaseState { +union LeaseState { /** The lease is available. */ - available, + Available: "available", /** The lease is currently leased. */ - leased, + Leased: "leased", /** The lease is expired. */ - expired, + Expired: "expired", /** The lease is breaking. */ - breaking, + Breaking: "breaking", /** The lease is broken. */ - broken, + Broken: "broken", + /** Extensible */ + string } /** The lease status. */ -enum LeaseStatus { +union LeaseStatus { /** The lease is unlocked. */ - unlocked, + Unlocked: "unlocked", /** The lease is locked. */ - locked, + Locked: "locked", + /** Extensible */ + string } /** Represents an access policy. */ @@ -343,47 +361,51 @@ model AccessPolicy { } /** The access tiers. */ -enum AccessTier { +union AccessTier { /** The hot P4 tier. */ - P4, + P4: "P4", /** The hot P6 tier. */ - P6, + P6: "P6", /** The hot P10 tier. */ - P10, + P10: "P10", /** The hot P15 tier. */ - P15, + P15: "P15", /** The hot P20 tier. */ - P20, + P20: "P20", /** The hot P30 tier. */ - P30, + P30: "P30", /** The hot P40 tier. */ - P40, + P40: "P40", /** The hot P50 tier. */ - P50, + P50: "P50", /** The hot P60 tier. */ - P60, + P60: "P60", /** The hot P70 tier. */ - P70, + P70: "P70", /** The hot P80 tier. */ - P80, + P80: "P80", /** The hot access tier. */ - Hot, + Hot: "Hot", /** The cool access tier. */ - Cool, + Cool: "Cool", /** The archive access tier. */ - Archive, + Archive: "Archive", + /** Extensible */ + string } /** The archive status. */ -enum ArchiveStatus { +union ArchiveStatus { /** The archive status is rehydrating pending to hot. */ - `rehydrate-pending-to-hot`, + RehydratePendingToHot: "rehydrate-pending-to-hot", /** The archive status is rehydrating pending to cool. */ - `rehydrate-pending-to-cool`, + RehydratePendingToCool: "rehydrate-pending-to-cool", /** The archive status is rehydrating pending to archive. */ - `rehydrate-pending-to-archive`, + RehydratePendingToArchive: "rehydrate-pending-to-archive", /** The archive status is rehydrating pending to expired. */ - `rehydrate-pending-to-expired`, + RehydratePendingToExpired: "rehydrate-pending-to-expired", + /** Extensible */ + string } /** An Azure Storage Blob */ @@ -561,32 +583,38 @@ model BlobPropertiesInternal { } /** The immutability policy mode. */ -enum BlobImmutabilityPolicyMode { +union BlobImmutabilityPolicyMode { /** The immutability policy is mutable. */ - Mutable, + Mutable: "Mutable", /** The immutability policy is locked. */ - Locked, + Locked: "Locked", /** The immutability policy is unlocked. */ - Unlocked + Unlocked: "Unlocked", + /** Extensible */ + string } /** The blob type. */ -enum BlobType { +union BlobType { /** The blob is a block blob. */ - BlockBlob, + BlockBlob: "BlockBlob", /** The blob is a page blob. */ - PageBlob, + PageBlob: "PageBlob", /** The blob is an append blob. */ - AppendBlob + AppendBlob: "AppendBlob", + /** Extensible */ + string } /** The rehydrate priority. */ @Xml.name("RehydratePriority") -enum RehydratePriority { +union RehydratePriority { /** The rehydrate priority is high. */ - High, + High: "High", /** The rehydrate priority is standard. */ - Standard + Standard: "Standard", + /** Extensible */ + string } /** The blob metadata. */ @@ -774,11 +802,11 @@ model ClearRange { } /** The blob tags body parameter. */ -model BlobTagsBodyParameter { +alias BlobTagsBodyParameter = { /** The blob tags. */ @body tags: BlobTags; -} +}; /** Represents blob tags. */ @Xml.name("Tags") @@ -788,9 +816,11 @@ model BlobTags { } /** The query request, note only SQL supported */ -enum QueryRequestTypeSqlOnly { +union QueryRequestTypeSqlOnly { /** The SQL request query type. */ - SQL + SQL: "SQL", + /** Extensible */ + string } /** Groups the set of query request settings. */ @@ -887,1061 +917,1071 @@ model ParquetConfiguration is Record; /** The query format type. */ @Xml.name("Type") -enum QueryType { +union QueryType { /** The query format type is delimited. */ - delimited, + Delimited: "delimited", /** The query format type is JSON. */ - json, + JSON: "json", /** The query format type is Apache Arrow. */ - arrow, + Arrow: "arrow", /** The query format type is Parquet. */ - parquet + Parquet: "parquet", + /** Extensible */ + string } /// Parameters /** The blob content MD5 response header. */ -model BlobContentMd5ResponseHeader { +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 */ @clientName("BlobContentMD5") @header("x-ms-blob-content-md5") blobContentMd5: string; -} +}; /** The query request body parameter. */ -model QueryRequestParameter { +alias QueryRequestParameter = { /** The query request */ @body queryRequest: QueryRequest; -} +}; /** The blob append offset response header. */ -model BlobAppendOffsetResponseHeader { +alias BlobAppendOffsetResponseHeader = { /** This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes. */ @clientName("BlobAppendOffset") @header("x-ms-blob-append-offset") blobAppendOffset: int64; -} +}; /** The blob condition append position parameter. */ -model BlobConditionAppendPosParameter { +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). */ @clientName("appendPosition") @header("x-ms-blob-condition-appendpos") blobConditionAppendPosition: int64; -} +}; /** The blob condition max size parameter. */ -model BlobConditionMaxSizeParameter { +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). */ @clientName("maxSize") @header("x-ms-blob-condition-maxsize") blobConditionMaxSize: int64; -} +}; /** The sequence number action parameter. */ -model SequenceNumberActionParameter { +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 */ @clientName("sequenceNumberAction") @header("x-ms-sequence-number-action") sequenceNumberAction: SequenceNumberActionType; -} +}; /** The sequence number actions. */ -enum SequenceNumberActionType { +union SequenceNumberActionType { /** Increment the sequence number. */ - increment, + Increment: "increment", /** Set the maximum for the sequence number. */ - max, + Max: "max", /** Update the sequence number. */ - update + Update: "update", + /** Extensible */ + string } /** The sequence number parameter. */ -model SequenceNumberParameter { +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. */ @clientName("blobSequenceNumber") @header("x-ms-blob-sequence-number") blobSequenceNumber : int64; -} +}; /** The blob content length required parameter. */ -model BlobContentLengthRequired { +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. */ @clientName("blobContentLength") @header("x-ms-blob-content-length") blobContentLength: int64; -} +}; /** The previous snapshot parameter. */ -model PrevSnapshotParameter { +alias PrevSnapshotParameter = { /** 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; -} +}; /** The previous snapshot URL parameter. */ -model PrevSnapshotUrlParameter { +alias PrevSnapshotUrlParameter = { /** 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. */ @clientName("prevSnapshotUrl") @header("x-ms-previous-snapshot-url") previousSnapshotUrl: string; -} - - +}; /** The is immutable storage with versioning enable response header. */ -model IsImmutableStorageWithVersioningEnabledResponseHeader { +alias IsImmutableStorageWithVersioningEnabledResponseHeader = { /** Indicates whether version level worm is enabled on a container */ @clientName("IsImmutableStorageWithVersioningEnabled") @header("x-ms-immutable-storage-with-versioning-enabled") immutableStorageWithVersioningEnabled: boolean; - -} +}; /** The deny encryption scope override response header. */ -model DenyEncryptionScopeOverrideResponseHeader { +alias DenyEncryptionScopeOverrideResponseHeader = { /** 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("DenyEncryptionScopeOverride") @header("x-ms-deny-encryption-scope-override") denyEncryptionScopeOverride: boolean; -} +}; /** The default encryption scope response header. */ -model DefaultEncryptionScopeResponseHeader { +alias DefaultEncryptionScopeResponseHeader = { /** The default encryption scope for the container. */ @clientName("DefaultEncryptionScope") @header("x-ms-default-encryption-scope") defaultEncryptionScope: string; -} +}; /** The has legal hold response header. */ -model HasLegalHoldResponseHeader { +alias HasLegalHoldResponseHeader = { /** Indicates if a blob has a legal hold. */ @clientName("HasLegalHold") @header("x-ms-legal-hold") legalHold: boolean; -} +}; /** The has immutability policy response header. */ -model HasImmutabilityPolicyResponseHeader { +alias HasImmutabilityPolicyResponseHeader = { /** Indicates if a blob has an active immutability policy. */ @clientName("HasImmutabilityPolicy") @header("x-ms-has-immutability-policy") hasImmutabilityPolicy: boolean; -} +}; /** The public access response header. */ -model PublicAccessResponseHeader { +alias PublicAccessResponseHeader = { /** The public access setting for the container. */ @clientName("PublicAccess") @header("x-ms-blob-public-access") publicAccess: PublicAccessType; -} +}; /** The rehydrate priority response header. */ -model RehydratePriorityResponseHeader { +alias RehydratePriorityResponseHeader = { /** If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard. */ @clientName("RehydratePriority") @header("x-ms-rehydrate-priority") rehydratePriority: RehydratePriority; -} +}; /** The expires on response header. */ -model ExpiresOnResponseHeader { +alias ExpiresOnResponseHeader = { /** UTC date/time value generated by the service that indicates the time at which the blob will expire. */ @clientName("ExpiresOn") @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("x-ms-expiry-time") expiryTime: utcDateTime; -} +}; /** The access tier change time response header. */ -model AccessTierChangeTimeResponseHeader { +alias AccessTierChangeTimeResponseHeader = { /** The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set. */ @encode("date-time-rfc1123") @clientName("AccessTierChangeTime") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("x-ms-access-tier-change-time") accessTierChangeTime: utcDateTime; -} +}; /** The archive status response header. */ -model ArchiveStatusResponseHeader { +alias ArchiveStatusResponseHeader = { /** 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. */ @clientName("ArchiveStatus") @header("x-ms-archive-status") archiveStatus: ArchiveStatus; -} +}; /** The access tier inferred response header. */ -model AccessTierInferredResponseHeader { +alias AccessTierInferredResponseHeader = { /** 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. */ @clientName("AccessTierInferred") @header("x-ms-access-tier-inferred") accessTierInferred: boolean; -} +}; /** The access tier response header. */ -model AccessTierResponseHeader { +alias AccessTierResponseHeader = { /** 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. */ @clientName("AccessTier") @header("x-ms-access-tier") accessTier: AccessTier; -} +}; /** The destination snapshot response header. */ -model DestinationSnapshotResponseHeader { +alias DestinationSnapshotResponseHeader = { /** 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. */ @clientName("DestinationSnapshot") @header("x-ms-copy-destination-snapshot") copyDestinationSnapshot: string; -} +}; /** The is incremental copy response header. */ -model IsIncrementalCopyResponseHeader { +alias IsIncrementalCopyResponseHeader = { /** Included if the blob is incremental copy blob. */ @clientName("IsIncrementalCopy") @header("x-ms-incremental-copy") incrementalCopy: boolean; -} +}; /** The immutability policy expires on response header. */ -model ImmutabilityPolicyExpiresOnResponseHeader { +alias ImmutabilityPolicyExpiresOnResponseHeader = { /** UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire. */ @clientName("ImmutabilityPolicyExpiresOn") @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("x-ms-immutability-policy-until-date") immutabilityPolicyUntilDate: utcDateTime; -} +}; /** The last accessed response header. */ -model LastAccessedResponseHeader { +alias LastAccessedResponseHeader = { /** UTC date/time value generated by the service that indicates the time at which the blob was last read or written to */ @clientName("LastAccessed") @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("x-ms-last-access-time") lastAccessTime: utcDateTime; -} +}; /** The is sealed response header. */ -model IsSealedResponseHeader { +alias IsSealedResponseHeader = { /** If this blob has been sealed */ @clientName("IsSealed") @header("x-ms-blob-sealed") blobSealed: boolean; -} +}; /** The tag count response header. */ -model TagCountResponseHeader { +alias TagCountResponseHeader = { /** The number of tags associated with the blob */ @clientName("TagCount") @header("x-ms-tag-count") tagCount: int64; -} +}; /** The blob committed block count response header. */ -model BlobCommittedBlockCountResponseHeader { +alias BlobCommittedBlockCountResponseHeader = { /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ @clientName("BlobCommittedBlockCount") @header("x-ms-blob-committed-block-count") blobCommittedBlockCount: int32; -} +}; /** The accept ranges response header. */ -model AcceptRangesResponseHeader { +alias AcceptRangesResponseHeader = { /** Indicates that the service supports requests for partial blob content. */ @header("Accept-Ranges") acceptRanges: string; -} +}; /** The is current version response header. */ -model IsCurrentVersionResponseHeader { +alias IsCurrentVersionResponseHeader = { /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ @clientName("IsCurrentVersion") @header("x-ms-is-current-version") isCurrentVersion: boolean; -} +}; /** The lease status response header. */ -model LeaseStatusResponseHeader { +alias LeaseStatusResponseHeader = { /** The lease status of the blob. */ @clientName("LeaseStatus") @header("x-ms-lease-status") leaseStatus: LeaseStatus; -} +}; /** The lease state response header. */ -model LeaseStateResponseHeader { +alias LeaseStateResponseHeader = { /** Lease state of the blob. */ @clientName("LeaseState") @header("x-ms-lease-state") leaseState: LeaseState; -} +}; /** The lease duration response header. */ -model LeaseDurationResponseHeader { +alias LeaseDurationResponseHeader = { /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ @clientName("LeaseDuration") @header("x-ms-lease-duration") leaseDuration: LeaseDuration; -} +}; /** The copy source response header. */ -model CopySourceResponseHeader { +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. */ @clientName("CopySource") @header("x-ms-copy-source") copySource: string; -} +}; /** The copy progress response header. */ -model CopyProgressResponseHeader { +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 */ @clientName("CopyProgress") @header("x-ms-copy-progress") copyProgress: string; -} +}; /** The copy status description response header. */ -model CopyStatusDescriptionResponseHeader { +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 */ @clientName("CopyStatusDescription") @header("x-ms-copy-status-description") copyStatusDescription: string; -} +}; /** The copy completion time response header. */ -model CopyCompletionTimeResponseHeader { +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. */ @clientName("CopyCompletionTime") @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("x-ms-copy-completion-time") copyCompletionTime: utcDateTime; -} +}; /** The blob type response header. */ -model BlobTypeResponseHeader { +alias BlobTypeResponseHeader = { /** The type of the blob. */ @clientName("BlobType") @header("x-ms-blob-type") blobType: BlobType; -} +}; /** The object replication policy response header. */ -model ObjectReplicationPolicyIdResponseHeader { +alias ObjectReplicationPolicyIdResponseHeader = { /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ @clientName("ObjectReplicationPolicyId") @header("x-ms-or-policy-id") objectReplicationPolicyId: string; -} +}; /** The range required put page from URL parameter. */ -model RangeRequiredPutPageFromUrlParameter { +alias RangeRequiredPutPageFromUrlParameter = { /** 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. */ @clientName("range") @header("x-ms-range") range: string; -} +}; /** The source range required put page from URL parameter. */ -model SourceRangeRequiredPutPageFromUrlParameter { +alias SourceRangeRequiredPutPageFromUrlParameter = { /** 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. */ @clientName("sourceRange") @header("x-ms-source-range") sourceRange: string; -} +}; /** The if seuqnce number equal to parameter. */ -model IfSequenceNumberEqualToParameter { +alias IfSequenceNumberEqualToParameter = { /** Specify this header value to operate only on a blob if it has the specified sequence number. */ @clientName("ifSequenceNumberEqualTo") @header("x-ms-if-sequence-number-eq") ifSequenceNumberEqualTo?: int64; -} +}; /** THe if sequence number less than parameter. */ -model IfSequenceNumberLessThanParameter { +alias IfSequenceNumberLessThanParameter = { /** Specify this header value to operate only on a blob if it has a sequence number less than the specified. */ @clientName("ifSequenceNumberLessThan") @header("x-ms-if-sequence-number-lt") ifSequenceNumberLessThan?: int64; -} +}; /** The if sequence number less than or equal to parameter. */ -model IfSequenceNumberLessThanOrEqualToParameter { +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. */ @clientName("ifSequenceNumberLessThanOrEqualTo") @header("x-ms-if-sequence-number-le") ifSequenceNumberLessThanOrEqualTo?: int64; -} +}; /** The blob content-length response header. */ -model BlobContentLengthResponseHeader { +alias BlobContentLengthResponseHeader = { /** The size of the blob in bytes. */ @clientName("blobContentLength") @header("x-ms-blob-content-length") blobContentLength: int64; -} +}; /** The block list type parameter. */ -model BlockListTypeParameter { +alias BlockListTypeParameter = { /** Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together. */ @query @clientName("listType") blocklisttype: BlockListType; -} +}; /** The block list types. */ -enum BlockListType { +union BlockListType { /** The list of committed blocks. */ - committed, + Committed: "committed", /** The list of uncommitted blocks. */ - uncommitted, + Uncomitted: "uncommitted", /** Both lists together. */ - all + All: "all", + /** Extensible */ + string } /** The blob blocks body parameter. */ -model BlobBlocksParameter { +alias BlobBlocksParameter = { /** Blob Blocks. */ @body blocks: BlockLookupList; -} - - +}; /** The source content CRC64 parameter. */ -model SourceContentCrc64Parameter { +alias SourceContentCrc64Parameter = { /** Specify the crc64 calculated for the range of bytes that must be read from the copy source. */ @clientName("sourceContentCrc64") @header("x-ms-source-content-crc64") sourceContentCrc64?: string; -} +}; /** The source range parameter. */ -model SourceRangeParameter { +alias SourceRangeParameter = { /** Bytes of source data in the specified range. */ @clientName("sourceRange") @header("x-ms-source-range") sourceRange: string; -} +}; /** The source URL parameter. */ -model SourceUrlParameter { +alias SourceUrlParameter = { /** Specify a URL to the copy source. */ @clientName("sourceUrl") @header("x-ms-source-url") sourceUrl: string; -} +}; /** The Block ID parameter. */ -model BlockIdParameter { +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 is hierarchical namespace enabled response header. */ -model IsHierarchicalNamespaceEnabledResponseHeader { +alias IsHierarchicalNamespaceEnabledResponseHeader = { /** Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled. */ @clientName("IsHierarchicalNamespaceEnabled") @header("x-ms-is-hns-enabled") isHierarchicalNamespaceEnabled: boolean; -} +}; /** The account kind response header. */ -model AccountKindResponseHeader { +alias AccountKindResponseHeader = { /** Identifies the account kind */ @clientName("AccountKind") @header("x-ms-account-kind") accountKind: AccountKind; -} +}; /** The SKU name response header. */ -model SkuNameResponseHeader { +alias SkuNameResponseHeader = { /** Identifies the sku name of the account */ @clientName("SkuName") @header("x-ms-sku-name") skuName: SkuName; -} +}; /** The access tier required parameter. */ -model AccessTierRequiredParameter { +alias AccessTierRequiredParameter = { /** Indicates the tier to be set on the blob. */ @clientName("AccessTier") @header("x-ms-access-tier") accessTier: AccessTier; -} +}; /** The copy ID parameter. */ -model CopyIdParameter { +alias CopyIdParameter = { /** The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation. */ @clientName("CopyId") @header("x-ms-copy-id") copyId: string; -} +}; /** The content CRC 64 response header. */ -model ContentCrc64ResponseHeader { +alias ContentCrc64ResponseHeader = { /** This response header is returned so that the client can check for the integrity of the copied content. */ @clientName("ContentCrc64") @header("x-ms-content-crc64") contentCrc64: string; -} +}; /** The copy status response header. */ -model CopyStatusResponseHeader { +alias CopyStatusResponseHeader = { /** State of the copy operation identified by x-ms-copy-id. */ @clientName("CopyStatus") @header("x-ms-copy-status") copyStatus: CopyStatus; -} +}; /** The copy ID response header. */ -model CopyIdResponseHeader { +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. */ @clientName("CopyId") @header("x-ms-copy-id") copyId: string; -} +}; /** The seal blob parameter. */ -model SealBlobParameter { +alias SealBlobParameter = { /** Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer. */ @clientName("SealBlob") @header("x-ms-seal-blob") sealBlob?: boolean; -} +}; /** The source if unmodified since parameter. */ -model SourceIfUnmodifiedSinceParameter { +alias SourceIfUnmodifiedSinceParameter = { /** Specify this header value to operate only on a blob if it has not been modified since the specified date/time. */ @clientName("sourceIfUnmodifiedSince") @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("x-ms-source-if-unmodified-since") sourceIfUnmodifiedSince?: utcDateTime; -} +}; /** The rehydrate priority parameter. */ -model RehydratePriorityParameter { +alias RehydratePriorityParameter = { /** Optional: Indicates the priority with which to rehydrate an archived blob. */ @clientName("rehydratePriority") @header("x-ms-rehydrate-priority") rehydratePriority?: RehydratePriority; -} +}; /** The snapshot response header. */ -model SnapshotResponseHeader { +alias SnapshotResponseHeader = { /** Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot. */ @clientName("Snapshot") @header("x-ms-snapshot") snapshot: string; -} +}; /** The lease time response header. */ -model LeaseTimeResponseHeader { +alias LeaseTimeResponseHeader = { /** Approximate time remaining in the lease period, in seconds. */ @clientName("LeaseTime") @header("x-ms-lease-time") leaseTime: int32; -} +}; /** The lease break period parameter. */ -model LeaseBreakPeriodParameter { +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. */ @clientName("breakPeriod") @header("x-ms-lease-break-period") leaseBreakPeriod?: int32; -} +}; /** The lease ID required parameter. */ -model LeaseIdRequiredParameter { +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. */ @clientName("leaseId") @header("x-ms-lease-id") leaseId: string; -} +}; /** The lease ID response header. */ -model LeaseIdResponseHeader { +alias LeaseIdResponseHeader = { /** Uniquely identifies a blobs' lease */ @clientName("LeaseId") @header("x-ms-lease-id") leaseId: string; -} +}; /** The encryption scope response header. */ -model EncryptionScopeResponseHeader { +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 */ @clientName("EncryptionScope") @header("x-ms-encryption-scope") encryptionScope: string; -} +}; /** The encryption key SHA256 response header. */ -model EncryptionKeySha256ResponseHeader { +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. */ @clientName("EncryptionKeySha256") @header("x-ms-encryption-key-sha256") encryptionKeySha256: string; -} +}; /** The is server encrypted response header. */ -model IsServerEncryptedResponseHeader { +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. */ -model LegalHoldResponseHeader { +alias LegalHoldResponseHeader = { /** Specifies the legal hold status to set on the blob. */ @clientName("legalHold") @header("x-ms-legal-hold") legalHold: boolean; -} +}; /** The legal hold required parameter. */ -model LegalHoldRequiredParameter { +alias LegalHoldRequiredParameter = { /** Required. Specifies the legal hold status to set on the blob. */ @clientName("legalHold") @header("x-ms-legal-hold") legalHold: boolean; -} +}; /** The immutability policy mode response header. */ -model ImmutabilityPolicyModeResponseHeader { +alias ImmutabilityPolicyModeResponseHeader = { /** Indicates the immutability policy mode of the blob. */ @clientName("ImmutabilityPolicyMode") @header("x-ms-immutability-policy-mode") immutabilityPolicyMode: BlobImmutabilityPolicyMode; -} +}; /** The immutability policy expiration response header. */ -model ImmutabilityPolicyExpiryResponseHeader { +alias ImmutabilityPolicyExpiryResponseHeader = { /** Indicates the time the immutability policy will expire. */ @encode("date-time-rfc1123") @clientName("ImmutabilityPolicyExpiry") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("x-ms-immutability-policy-until-date") immutabilityPolicyUntilDate: utcDateTime; -} +}; /** The blob sequence number response header. */ -model BlobSequenceNumberResponseHeader { +alias BlobSequenceNumberResponseHeader = { /** The current sequence number for a page blob. This header is not returned for block blobs or append blobs. */ @clientName("BlobSequenceNumber") @header("x-ms-blob-sequence-number") blobSequenceNumber: int64; -} +}; /** The blob expiration time parameter. */ -model BlobExpiryTimeParameter { +alias BlobExpiryTimeParameter = { /** The time to set the blob to expiry. */ @clientName("ExpiresOn") @header("x-ms-expiry-time") expiryTime: string; -} +}; /** The blob expiration options parameter. */ -model BlobExpiryOptionsParameter { +alias BlobExpiryOptionsParameter = { /** Required. Indicates mode of the expiry time */ @clientName("ExpiryOptions") @header("x-ms-expiry-option") expiryOptions: BlobExpiryOptions; -} +}; /** The blob expiration options. */ -enum BlobExpiryOptions { +union BlobExpiryOptions { /** Never expire. */ - NeverExpire, + NeverExpire: "NeverExpire", /** Relative to creation time. */ - RelativeToCreation, + RelativeToCreation: "RelativeToCreation", /** Relative to now. */ - RelativeToNow, + RelativeToNow: "RelativeToNow", /** Absolute time. */ - Absolute + Absolute: "Absolute", + /** Extensible */ + string } /** The Content-Language response header. */ -model ContentLanguageResponseHeader { +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. */ -model ContentDispositionResponseHeader { +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. */ -model CacheControlResponseHeader { +alias CacheControlResponseHeader = { /** This header is returned if it was previously specified for the blob. */ @header("Cache-Control") cacheControl: string; -} +}; /** The Content-Encoding response header. */ -model ContentEncodingResponseParameter { +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. */ -model ContentRangeResponseHeader { +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. */ -model ContentMd5ResponseHeader { +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. */ -model ContentLengthResponseHeader { +alias ContentLengthResponseHeader = { /** The number of bytes present in the response body. */ @header("Content-Length") contentLength: int64; -} +}; /** The version ID response header. */ -model VersionIdResponseHeader { +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. */ @clientName("VersionId") @header("x-ms-version-id") versionId: string; -} +}; /** The version response header. */ -model VersionResponseHeader { +alias VersionResponseHeader = { /** 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. */ @clientName("Version") @header("x-ms-version") version: string; -} +}; /** The creation time response header. */ -model CreationTimeResponseHeader { +alias CreationTimeResponseHeader = { /** Returns the date and time the blob was created. */ @encode("date-time-rfc1123") @clientName("CreationTime") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("x-ms-creation-time") creationTime: utcDateTime; -} +}; /** The last modified response header */ -model LastModifiedResponseHeader { +alias LastModifiedResponseHeader = { /** The date/time that the container was last modified. */ @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("Last-Modified") lastModified: utcDateTime; -} +}; /** The request ID response header. */ -model RequestIdResponseHeader { +alias RequestIdResponseHeader = { /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */ @clientName("RequestId") @header("x-ms-request-id") requestId: string; -} +}; /** The client request ID response header. */ -model ClientRequestIdResponseHeader { +alias ClientRequestIdResponseHeader = { /** If a client request id header is sent in the request, this header will be present in the response with the same value. */ @clientName("ClientRequestId") @header("x-ms-client-request-id") clientRequestId?: string; -} +}; /** The Date response header */ -model DateResponseHeader { +alias DateResponseHeader = { /** UTC date/time value generated by the service that indicates the time at which the response was initiated */ @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("Date") date: utcDateTime; -} +}; /** The ETag response header */ -model EtagResponseHeader { +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. */ -model CopySourceTagsParameter { +alias CopySourceTagsParameter = { /** Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags. */ @clientName("copySourceTags") @header("x-ms-copy-source-tags") copySourceTags?: string; -} +}; /** The blob copy source tags types. */ -enum BlobCopySourceTags { +union BlobCopySourceTags { /** The replace blob source tags option. */ - REPLACE, + Replace: "REPLACE", /** The copy blob source tags option. */ - COPY + Copy: "COPY", + /** Extensible */ + string } /** The copy source authorization header parameter */ -model CopySourceAuthorizationParameter { +alias CopySourceAuthorizationParameter = { /** Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source. */ @header("x-ms-copy-source-authorization") @clientName("copySourceAuthorization") copySourceAuthorization?: string; -} +}; /** The copy source blob properties parameter. */ -model CopySourceBlobPropertiesParameter { +alias CopySourceBlobPropertiesParameter = { /** Optional, default is true. Indicates if properties from the source blob should be copied. */ @header("x-ms-copy-source-blob-properties") @clientName("copySourceBlobProperties") copySourceBlobProperties?: boolean; -} +}; /** The copy source header parameter. */ -model CopySourceParameter { +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") @clientName("copySource") copySource: string; -} +}; /** The source content MD5 header parameter. */ -model SourceContentMd5Parameter { +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") @clientName("sourceContentMD5") sourceContentMd5?: string; -} +}; /** The source if tags parameter. */ -model SourceIfTagsParameter { +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") @clientName("sourceIfTags") sourceIfTags?: string; -} +}; /** The source if match parameter. */ -model SourceIfMatchParameter { +alias SourceIfMatchParameter = { /** Specify an ETag value to operate only on blobs with a matching value. */ @header("x-ms-source-if-match") @clientName("sourceIfMatch") sourceIfMatch?: string; -} +}; /** The source if none match parameter. */ -model SourceIfNoneMatchParameter { +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") @clientName("sourceIfNoneMatch") sourceIfNoneMatch?: string; -} +}; /** The source if modified since parameter. */ -model SourceIfModifiedSinceParameter { +alias SourceIfModifiedSinceParameter = { /** 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-modified-since") @clientName("sourceIfModifiedSince") @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" sourceIfModifiedSince?: utcDateTime; -} +}; /** The content CRC64 parameter. */ -model ContentCrc64Parameter { +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. */ -model AccessTierOptionalParameter { +alias AccessTierOptionalParameter = { /** Optional. The tier to be set on the blob. */ @clientName("tier") @header("x-ms-access-tier") accessTier?: AccessTier; -} +}; /** The content MD5 parameter. */ -model ContentMd5Parameter { +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. */ -model LegalHoldOptionalParameter { +alias LegalHoldOptionalParameter = { /** Specified if a legal hold should be set on the blob. */ @clientName("legalHold") @header("x-ms-legal-hold") legalHold?: boolean; -} +}; /** The immutability policy mode parameter. */ -model ImmutabilityPolicyModeParameter { +alias ImmutabilityPolicyModeParameter = { /** Specifies the immutability policy mode to set on the blob. */ @clientName("immutabilityPolicyMode") @header("x-ms-immutability-policy-mode") immutabilityPolicyMode?: BlobImmutabilityPolicyMode; -} +}; /** The immutability policy expiration parameter. */ -model ImmutabilityPolicyExpiryParameter { +alias ImmutabilityPolicyExpiryParameter = { /** Specifies the date time when the blobs immutability policy is set to expire. */ @clientName("immutabilityPolicyExpiry") @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("x-ms-immutability-policy-until-date") immutabilityPolicyExpiry?: string; -} +}; /** The blobs tags header parameter. */ -model BlobTagsHeaderParameter { +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. */ -model BlobSequenceNumberParameter { +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. */ @clientName("blobSequenceNumber") @header("x-ms-blob-sequence-number") blobSequenceNumber?: int64; -} +}; /** The blob content length parameter. */ -model BlobContentLengthRequiredParameter { +alias BlobContentLengthRequiredParameter = { /** 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. */ @clientName("blobContentLength") @header("x-ms-blob-content-length") blobContentLength: int64; -} +}; /** The encryption scope parameter. */ -model EncryptionScopeParameter { +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. */ @clientName("encryptionScope") @header("x-ms-encryption-scope") encryptionScope?: string; -} +}; /** The blob content disposition parameter. */ -model BlobContentDispositionParameter { +alias BlobContentDispositionParameter = { /** Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request. */ @clientName("blobContentDisposition") @header("x-ms-blob-content-disposition") blobContentDisposition?: string; -} +}; /** The blob cache control parameter. */ -model BlobCacheControlParameter { +alias BlobCacheControlParameter = { /** Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request. */ @clientName("blobCacheControl") @header("x-ms-blob-cache-control") blobCacheControl?: string; -} +}; /** The blob content MD5 parameter. */ -model BlobContentMd5Parameter { +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. */ @clientName("blobContentMD5") @header("x-ms-blob-content-md5") blobContentMd5?: string; -} +}; /** The blob content type parameter. */ -model BlobContentLanguageParameter { +alias BlobContentLanguageParameter = { /** Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request. */ @clientName("blobContentLanguage") @header("x-ms-blob-content-language") blobContentLanguage?: string; -} +}; /** The blob content type parameter. */ -model BlobContentEncodingParameter { +alias BlobContentEncodingParameter = { /** Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request. */ @clientName("blobContentEncoding") @header("x-ms-blob-content-encoding") blobContentEncoding?: string; -} +}; /** The blob content type parameter. */ -model BlobContentTypeParameter { +alias BlobContentTypeParameter = { /** Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request. */ @clientName("blobContentType") @header("x-ms-blob-content-type") blobContentType?: string; -} +}; /** The optional premium page blob access tier parameter. */ model PremiumPageBlobAccessTierOptional { /** Optional. Indicates the tier to be set on the page blob. */ @clientName("tier") @header("x-ms-access-tier") accessTier?: PremiumPageBlobAccessTier; -} +}; /** The premium page blob access tier types. */ -enum PremiumPageBlobAccessTier { +union PremiumPageBlobAccessTier { /** The premium page blob access tier is P4. */ - P4, + P4: "P4", /** The premium page blob access tier is P6. */ - P6, + P6: "P6", /** The premium page blob access tier is P10. */ - P10, + P10: "P10", /** The premium page blob access tier is P15. */ - P15, + P15: "P15", /** The premium page blob access tier is P20. */ - P20, + P20: "P20", /** The premium page blob access tier is P30. */ - P30, + P30: "P30", /** The premium page blob access tier is P40. */ - P40, + P40: "P40", /** The premium page blob access tier is P50. */ - P50, + P50: "P50", /** The premium page blob access tier is P60. */ - P60, + P60: "P60", /** The premium page blob access tier is P70. */ - P70, + P70: "P70", /** The premium page blob access tier is P80. */ - P80 + P80: "P80", + /** Extensible */ + string } /** The blob name parameter. */ -model BlobNameParameter { +alias BlobNameParameter = { /** 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 blob delete type parameter. */ -model BlobDeleteTypeParameter { +alias BlobDeleteTypeParameter = { /** Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled. */ @query @clientName("blobDeleteType") deletetype?: DeleteSnapshotsOptionType; -} +}; /** The type of blob deletions. */ -enum BlobDeleteType { +union BlobDeleteType { /** Permanently delete the blob. */ - Permanent, + Permanent: "Permanent", + /** Extensible */ + string } /** The delete snapshot parameter. */ -model DeleteSnapshotsParameter { +alias DeleteSnapshotsParameter = { /** 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 */ @clientName("deleteSnapshots") @header("x-ms-delete-snapshots") deleteSnapshots?: DeleteSnapshotsOptionType; -} +}; /** The delete snapshots option type. */ -enum DeleteSnapshotsOptionType { +union DeleteSnapshotsOptionType { /** The delete snapshots include option is not specified. */ - none, + Nonne: "none", /** The delete snapshots include option is include. */ - include, -} + Include: "include", + /** Extensible */ + string +}; /** The encryption algorithm parameter. */ -model EncryptionAlgorithmParameter { +alias EncryptionAlgorithmParameter = { /** Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256. */ @clientName("encryptionAlgorithm") @header("x-ms-encryption-algorithm") encryptionAlgorithm?: string; -} +}; /** The encryption key SHA256 hash parameter. */ -model EncryptionKeySha256Parameter { +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. */ @clientName("encryptionKeySha256") @header("x-ms-encryption-key-sha256") encryptionKeySha256?: string; -} - +}; /** The encryption key parameter. */ -model EncryptionKeyParameter { +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. */ @clientName("encryptionKey") @header("x-ms-encryption-key") encryptionKey?: string; -} +}; /** The If-Tags parameters. */ -model IfTagsParameter { +alias IfTagsParameter = { /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ @clientName("ifTags") @header("x-ms-if-tags") ifTags?: string; -} +}; /** The If-Match parameter. */ -model IfMatchParameter { +alias IfMatchParameter = { /** A condition that must be met in order for the request to be processed. */ @clientName("ifMatch") @header("If-Match") ifMatch?: string; -} +}; /** The If-None-Match parameter. */ -model IfNoneMatchParameter { +alias IfNoneMatchParameter = { /** A condition that must be met in order for the request to be processed. */ @clientName("ifNoneMatch") @header("If-None-Match") ifNoneMatch?: string; -} +}; /** The get range content CRC64 parameter. */ -model GetRangeContentCrc64Parameter { +alias GetRangeContentCrc64Parameter = { /** 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") rangeContentCrc64?: boolean; -} +}; /** The get range content MD5 parameter. */ -model GetRangeContentMd5Parameter { +alias GetRangeContentMd5Parameter = { /** Optional. When this header is set to true and specified together with the Range header, 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") rangeContentMd5?: boolean; -} +}; /** The range parameter. */ -model RangeParameter { +alias RangeParameter = { /** Return only the bytes of the blob in the specified range. */ @clientName("range") @header("x-ms-range") range?: string; -} +}; /** The version ID parameter. */ -model VersionIdParameter { +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. */ @header @clientName("versionId") versionid: string; -} +}; /** The snapshot parameter. */ -model SnapshotParameter { +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 { @@ -2000,220 +2040,220 @@ model ListBlobsHierarchySegmentResponse { } /** The delimiter parameter. */ -model DelimiterParameter { +alias DelimiterParameter = { /** 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; -} +}; /** The list blob includes parameter. */ -model ListBlobsInclude { +alias ListBlobsIncludeParameter = { /** Include this parameter to specify one or more datasets to include in the response. */ @query({ format: "csv" }) include?: ListBlobsIncludes[]; -} +}; /** The list blob includes parameter values. */ -enum ListBlobsIncludes { +union ListBlobsIncludes { /** The include copies. */ - copies, + Copies: "copies", /** The include deleted blobs. */ - deleted, + Deleted: "deleted", /** The include metadata. */ - metadata, + Metadata: "metadata", /** The include snapshots. */ - snapshots, + Snapshots: "snapshots", /** The include uncommitted blobs. */ - uncommittedblobs, + UncommittedBlobs: "uncommittedblobs", /** The include versions. */ - versions, + Versions: "versions", /** The include tags. */ - tags, + Tags: "tags", /** The include immutable policy. */ - immutabilitypolicy, + ImmutabilityPolicy: "immutabilitypolicy", /** The include legal hold. */ - legalhold, + LegalHold: "legalhold", /** The include deleted with versions. */ - deletedwithversions + DeletedWithVersions: "deletedwithversions", + /** Extensible */ + string } /** The lease duration parameter. */ -model LeaseDurationParameter { +alias LeaseDurationParameter = { /** 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. */ @clientName("duration") @header("x-ms-lease-duration") leaseDuration: int32; -} +}; /** The source lease ID header parameter. */ -model SourceLeaseIdParameter { +alias SourceLeaseIdParameter = { /** A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ @clientName("sourceLeaseId") @header("x-ms-source-lease-id") sourceLeaseId?: string; -} +}; /** The source container name header parameter. */ -model SourceContainerNameParameter { +alias SourceContainerNameParameter = { /** Required. Specifies the name of the container to rename. */ @clientName("SourceContainerName") @header("x-ms-source-container-name") sourceContainerName: string; -} +}; /** The deleted container name header. */ -model DeletedContainerNameParameter { +alias DeletedContainerNameParameter = { /** Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore. */ @clientName("DeletedContainerName") @header("x-ms-deleted-container-name") deletedContainerName?: string; -} +}; /** The deleted container version header. */ -model DeletedContainerVersionParameter { +alias DeletedContainerVersionParameter = { /** Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore. */ @clientName("DeletedContainerVersion") @header("x-ms-deleted-container-version") deletedContainerVersion?: string; -} +}; /** The container ACL parameter. */ -model ContainerAclParameter { +alias ContainerAclParameter = { + #suppress "@azure-tools/typespec-azure-core/request-body-problem" "Existing API" /** The access control list for the container. */ @body acl: SignedIdentifiers; -} +}; /** The container name header */ -model ContainerNameParameter { +alias ContainerNameParameter = { /** The name of the container. */ @path containerName: string; -} +}; /** The If-Unmodified-Since header. */ -model IfUnmodifiedSinceParameter { +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. */ @encode("date-time-rfc1123") @clientName("ifUnmodifiedSince") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("If-Unmodified-Since") ifUnmodifiedSince?: utcDateTime; -} +}; /** The If-Modified-Since header. */ -model IfModifiedSinceParameter { +alias IfModifiedSinceParameter = { /** A date-time value. A request is made under the condition that the resource has been modified since the specified date-time. */ @encode("date-time-rfc1123") @clientName("ifModifiedSince") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("If-Modified-Since") ifModifiedSince?: utcDateTime; -} +}; /** The lease ID parameter. */ -model LeaseIdOptionalParameter { +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 deny encryption scope override parameter. */ -model DenyEncryptionScopeOverrideParameter { +alias DenyEncryptionScopeOverrideParameter = { /** Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container. */ @header("x-ms-deny-encryption-scope-override") denyEncryptionScopeOverride?: boolean; -} +}; /** The default encryption scope parameter. */ -model DefaultEncryptionScopeParameter { +alias DefaultEncryptionScopeParameter = { /** 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; -} +}; /** The blob public access parameter. */ -model BlobPublicAccessParameter { +alias BlobPublicAccessParameter = { /** Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'. */ @clientName("access") @header("x-ms-blob-public-access") publicAccess?: PublicAccessType; -} +}; // TODO: Figure out how to better represent this -/** The metadata parameter. */ +/** 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. */ +// @header("x-ms-meta") meta?: string; #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" -model MetadataParameter is Record { - /** 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. */ - @header("x-ms-meta") meta?: string; -} +alias MetadataParameter = Record; + +// TODO: Figure out how to better represent this +/** 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. */ +// @header("x-ms-meta") meta?: string; +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" +alias MetadataResponseHeader = Record; /** The filter blobs include parameter. */ -model FilterBlobsInclude { +alias FilterBlobsIncludeParameter = { /** Include this parameter to specify one or more datasets to include in the response. */ @query({ format: "csv" }) include?: FilterBlobsIncludes[]; -} +}; /** The filter blobs where parameter. */ -model FilterBlobsWhere { +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. */ -model ContentLengthParameter { +alias ContentLengthParameter = { /** The length of the request. */ @header("Content-Length") contentLength: int64; -} +}; /** The max results parameter. */ -model MaxResultsParameter { +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 maxresults?: int32; -} +}; /** The marker parameter. */ -model MarkerParameter { +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. */ @query marker?: string; -} +}; /** The prefix parameter. */ -model PrefixParameter { +alias PrefixParameter = { /** Filters the results to return only containers whose name begins with the specified prefix. */ @query prefix?: string; -} +}; /** The client request ID parameter. */ -model ClientRequestIdParameter { +alias ClientRequestIdParameter = { /** 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. */ @clientName("requestId") @header("x-ms-client-request-id") clientRequestId?: string; -} +}; /** The timeout parameter. */ -model TimeoutParameter { +alias TimeoutParameter = { @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") @query timeout?: int32; -} +}; /** The API version parameter. */ -model ApiVersionParameter { +alias ApiVersionParameter = { /** Specifies the version of the operation to use for this request. */ @header("x-ms-version") version: string; -} +}; /** The required lease ID header. */ -model ProposedLeaseIdRequired { +alias ProposedLeaseIdRequiredParameter = { /** Required. The proposed lease ID for the container. */ @header("x-ms-proposed-lease-id") proposedLeaseId: string; -} +}; /** The optional lease ID header. */ -model ProposedLeaseIdOptional { +alias ProposedLeaseIdOptionalParameter = { /** Optional. The proposed lease ID for the container. */ @header("x-ms-proposed-lease-id") proposedLeaseId?: string; -} - -/** The lease ID required header. */ -model LeaseIdRequired { - /** Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ - @clientName("leaseId") - @header("x-ms-lease-id") leaseId: string; -} +}; /** The body parameter. */ -model BodyParameter { +alias BodyParameter = { /** The body of the request. */ @body body: bytes; -} +}; diff --git a/specification/storage/Microsoft.BlobStorage/package-lock.json b/specification/storage/Microsoft.BlobStorage/package-lock.json index 7310db2e6595..c2dfa5ea8a86 100644 --- a/specification/storage/Microsoft.BlobStorage/package-lock.json +++ b/specification/storage/Microsoft.BlobStorage/package-lock.json @@ -1,21 +1,21 @@ { - "name": "Microsoft.BlobStorage", + "name": "azure-storage-blob", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "Microsoft.BlobStorage", + "name": "azure-storage-blob", "version": "0.1.0", "dependencies": { - "@azure-tools/typespec-autorest": "0.41.1", - "@azure-tools/typespec-azure-core": "0.41.0", - "@azure-tools/typespec-client-generator-core": "~0.41.1", + "@azure-tools/typespec-autorest": "latest", + "@azure-tools/typespec-azure-core": "latest", + "@azure-tools/typespec-client-generator-core": "latest", "@typespec/compiler": "latest", - "@typespec/openapi": "^0.55.0", - "@typespec/openapi3": "^0.55.0", - "@typespec/rest": "^0.55.0", - "@typespec/xml": "^0.55.0" + "@typespec/openapi": "latest", + "@typespec/openapi3": "latest", + "@typespec/rest": "latest", + "@typespec/xml": "latest" } }, "node_modules/@azure-tools/typespec-autorest": { diff --git a/specification/storage/Microsoft.BlobStorage/package.json b/specification/storage/Microsoft.BlobStorage/package.json index e6b5f61bf40d..c2d6d3834703 100644 --- a/specification/storage/Microsoft.BlobStorage/package.json +++ b/specification/storage/Microsoft.BlobStorage/package.json @@ -1,16 +1,16 @@ { - "name": "Microsoft.BlobStorage", + "name": "azure-storage-blob", "version": "0.1.0", "type": "module", "dependencies": { - "@azure-tools/typespec-autorest": "0.41.1", - "@azure-tools/typespec-azure-core": "0.41.0", - "@azure-tools/typespec-client-generator-core": "~0.41.1", + "@azure-tools/typespec-autorest": "latest", + "@azure-tools/typespec-azure-core": "latest", + "@azure-tools/typespec-client-generator-core": "latest", "@typespec/compiler": "latest", - "@typespec/openapi": "^0.55.0", - "@typespec/openapi3": "^0.55.0", - "@typespec/rest": "^0.55.0", - "@typespec/xml": "^0.55.0" + "@typespec/openapi": "latest", + "@typespec/openapi3": "latest", + "@typespec/rest": "latest", + "@typespec/xml": "latest" }, "private": true diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index dcb2eb312603..f0ecbabb88ee 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -161,8 +161,6 @@ interface BlobServiceBatch { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - - ...RequestIdResponseHeader; ...VersionResponseHeader; } | StorageError; @@ -176,8 +174,8 @@ interface FilterBlobsService { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" getBlobs( - ...FilterBlobsWhere; - ...FilterBlobsInclude; + ...FilterBlobsWhereParameter; + ...FilterBlobsIncludeParameter; ...TimeoutParameter; ...MarkerParameter; ...MaxResultsParameter; @@ -203,7 +201,7 @@ interface BlobServiceContainer { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" createContainer( ...ContainerNameParameter; - // TODO: ...MetadataParameter; + // TODO: x-ms-meta headers ...BlobPublicAccessParameter; ...DefaultEncryptionScopeParameter; ...DenyEncryptionScopeOverrideParameter; @@ -447,8 +445,8 @@ interface BlobListService { ...ContainerNameParameter; ...MarkerParameter; ...MaxResultsParameter; - ...FilterBlobsWhere; - ...FilterBlobsInclude; + ...FilterBlobsWhereParameter; + ...FilterBlobsIncludeParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; @@ -478,7 +476,7 @@ interface ContainerLeaseService { ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; - ...ProposedLeaseIdOptional; + ...ProposedLeaseIdOptionalParameter; ...IfModifiedSinceParameter; ...IfUnmodifiedSinceParameter; ): { @@ -505,7 +503,7 @@ interface ContainerReleaseLeaseService { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" releaseLease( ...ContainerNameParameter; - ...LeaseIdRequired; + ...LeaseIdRequiredParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; @@ -534,7 +532,7 @@ interface ContainerRenewLeaseService { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" renewLease( ...ContainerNameParameter; - ...LeaseIdRequired; + ...LeaseIdRequiredParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; @@ -590,8 +588,8 @@ interface ContainerChangeLeaseService { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" changeLease( ...ContainerNameParameter; - ...LeaseIdRequired; - ...ProposedLeaseIdRequired; + ...LeaseIdRequiredParameter; + ...ProposedLeaseIdRequiredParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; @@ -621,13 +619,13 @@ interface ContainerListBlobsService { ...PrefixParameter; ...MarkerParameter; ...MaxResultsParameter; - ...ListBlobsInclude; + ...ListBlobsIncludeParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: ListBlobsFlatSegmentResponse; // TODO: XML + @body body: ListBlobsFlatSegmentResponse; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -648,7 +646,7 @@ interface ContainerListBlobsHierarchyService { ...PrefixParameter; ...MarkerParameter; ...MaxResultsParameter; - ...ListBlobsInclude; + ...ListBlobsIncludeParameter; ...TimeoutParameter; ...ApiVersionParameter; ...ClientRequestIdParameter; @@ -1311,7 +1309,7 @@ interface BlobLeaseAcquireService { ...ApiVersionParameter; ...ClientRequestIdParameter; ...LeaseDurationParameter; - ...ProposedLeaseIdOptional; + ...ProposedLeaseIdOptionalParameter; ...IfModifiedSinceParameter; ...IfUnmodifiedSinceParameter; ...IfMatchParameter; @@ -1410,7 +1408,7 @@ interface BlobLeaseChangeService { ...ApiVersionParameter; ...ClientRequestIdParameter; ...LeaseIdRequiredParameter; - ...ProposedLeaseIdOptional; + ...ProposedLeaseIdOptionalParameter; ...IfModifiedSinceParameter; ...IfUnmodifiedSinceParameter; ...IfMatchParameter; From 0ec8fa1af89f8f56d686be695ce99cec9fe55ec8 Mon Sep 17 00:00:00 2001 From: Matthew Podwysocki Date: Fri, 23 Aug 2024 11:38:18 -0400 Subject: [PATCH 029/129] Update blob path parameter --- .../storage/Microsoft.BlobStorage/routes.tsp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index f0ecbabb88ee..0d42b6be0a0f 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -47,7 +47,7 @@ interface BlobServiceProperties { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: StorageServiceProperties; // TODO: XML + @body body: StorageServiceProperties; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -68,7 +68,7 @@ interface BlobServiceStatistics { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: StorageServiceStats; // TODO: XML + @body body: StorageServiceStats; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -318,7 +318,7 @@ interface BlobServiceContainerAccessPolicy { ...LeaseIdOptionalParameter; ): { @statusCode statusCode: 200; - @body body: SignedIdentifiers; // TODO: XML + @body body: SignedIdentifiers; ...PublicAccessResponseHeader; ...EtagResponseHeader; @@ -452,7 +452,7 @@ interface BlobListService { ...ClientRequestIdParameter; ): { @statusCode statusCode: 200; - @body body: FilterBlobSegment; // TODO: XML + @body body: FilterBlobSegment; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -683,7 +683,7 @@ interface ContainerAccountInfoService { } | StorageError; } -@route("/{containerName}/{blob}") +@route("/{containerName}/{+blob}") interface BlobService { /** 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. */ @get @@ -1830,7 +1830,7 @@ interface BlobBlockListService { ...IfTagsParameter; ): { @statusCode statusCode: 200; - @body body: BlockLookupList; // TODO: XML + @body body: BlockLookupList; ...LastModifiedResponseHeader; ...EtagResponseHeader; @@ -2051,7 +2051,7 @@ interface PageBlobDiffService { ...MaxResultsParameter; ): { @statusCode statusCode: 200; - @body body: PageList; // TODO: XML + @body body: PageList; ...LastModifiedResponseHeader; ...EtagResponseHeader; From 8b8e8617fae4c63ad3813a150f00ecffb73e5705 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Mon, 30 Sep 2024 14:45:55 -0700 Subject: [PATCH 030/129] tsp format --- .../storage/Microsoft.BlobStorage/main.tsp | 5 + .../storage/Microsoft.BlobStorage/models.tsp | 700 ++++-- .../storage/Microsoft.BlobStorage/routes.tsp | 1997 ++++++++--------- 3 files changed, 1493 insertions(+), 1209 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index 7883f3abc59f..c839bbab9be9 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -35,18 +35,23 @@ enum Versions { @useDependency(Azure.Core.Versions.v1_0_Preview_1) @doc("The 2020-10-02-preview version of the Azure.Storage.Blob service.") `2020-10-02-preview`, + @doc("The 2020-12-06-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2020-12-06-preview`, + @doc("The 2021-02-12-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-02-12-preview`, + @doc("The 2021-04-10-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-04-10-preview`, + @doc("The 2021-08-06-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-08-06-preview`, + @doc("The 2021-12-02-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-12-02-preview`, diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 51f6a56f7d47..ec536d12008d 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -13,8 +13,8 @@ using Azure.ClientGenerator.Core; @useDependency(Azure.Core.Versions.v1_0_Preview_1) namespace Azure.Storage.Blob; -@error /** The error response. */ +@error model StorageError { /** The error message. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API" @@ -28,13 +28,18 @@ model StorageError { model BlockLookupList { /** The committed blocks */ @Xml.unwrapped - @Xml.name("Committed") committed: string[]; + @Xml.name("Committed") + committed: string[]; + /** The uncommitted blocks */ @Xml.unwrapped - @Xml.name("Uncommitted") uncommitted: string[]; + @Xml.name("Uncommitted") + uncommitted: string[]; + /** The latest blocks */ @Xml.unwrapped - @Xml.name("Latest") latest: string[]; + @Xml.name("Latest") + latest: string[]; } /** Represents an array of signed identifiers */ @@ -44,6 +49,7 @@ alias SignedIdentifiers = Array; 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; } @@ -52,7 +58,8 @@ model SignedIdentifier { model FilterBlobSegment { /** The service endpoint. */ @Xml.attribute - @Xml.name("ServiceEndpoint") serviceEndpoint: string; + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; /** The filter for the blobs. */ @Xml.name("Where") where: string; @@ -87,42 +94,54 @@ model FilterBlobItem { union FilterBlobsIncludes { /** The filter includes no versions. */ None: "none", + /** The filter includes n versions. */ Versions: "versions", + /** Extensible */ - string + 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 + string, } /** The SKU types */ union SkuName { /** The standard LRS SKU. */ StandardLRS: "Standard_LRS", + /** The standard GRS SKU. */ StandardGRS: "tandard_GRS", + /** The standard RAGRS SKU. */ StandardRAGRS: "Standard_RAGRS", + /** The standard ZRS SKU. */ StandardZRS: "Standard_ZRS", + /** The premium LRS SKU. */ PremiumLRS: "Premium_LRS", + /** Extensible */ - string + string, } /** The list container segement response */ @@ -130,7 +149,8 @@ union SkuName { model ListContainersSegmentResponse { /** The service endpoint. */ @Xml.attribute - @Xml.name("ServiceEndpoint") serviceEndpoint: string; + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; /** The prefix of the containers. */ @Xml.name("Prefix") prefix?: string; @@ -170,14 +190,16 @@ model ContainerItem { /** The properties of a container. */ model ContainerProperties { /** The date-time the container was created in RFC1123 format. */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @Xml.name("Creation-Time") creationTime?: utcDateTime; + @encode("date-time-rfc1123") + @Xml.name("Creation-Time") + creationTime?: utcDateTime; /** The date-time the container was last modified in RFC1123 format. */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @Xml.name("Last-Modified") lastModified: utcDateTime; + @encode("date-time-rfc1123") + @Xml.name("Last-Modified") + lastModified: utcDateTime; /** The ETag of the container. */ @Xml.name("ETag") eTag: string; @@ -202,31 +224,35 @@ model ContainerProperties { /** Whether to prevent encryption scope override. */ @clientName("PreventEncryptionScopeOverride") - @Xml.name("DenyEncryptionScopeOverride") denyEncryptionScopeOverride?: boolean; + @Xml.name("DenyEncryptionScopeOverride") + denyEncryptionScopeOverride?: boolean; /** The has legal hold status of the container. */ @Xml.name("HasLegalHold") hasLegalHold?: boolean; /** The deleted time of the container. */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @Xml.name("DeletedTime") deletedTime?: utcDateTime; + @encode("date-time-rfc1123") + @Xml.name("DeletedTime") + deletedTime?: utcDateTime; /** The remaining retention days of the container. */ @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; /** Whether immutable storage with versioning is enabled. */ @clientName("IsImmutableStorageWithVersioningEnabled") - @Xml.name("ImmutableStorageWithVersioningEnabled") immutableStorageWithVersioningEnabled?: boolean; + @Xml.name("ImmutableStorageWithVersioningEnabled") + immutableStorageWithVersioningEnabled?: boolean; } /** The metadata of a container. */ -@Xml.name("Metadata") #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" +@Xml.name("Metadata") model ContainerMetadata is Record { /** Whether the metadata is encrypted. */ @Xml.attribute - @Xml.name("Encrypted") encrypted: string; + @Xml.name("Encrypted") + encrypted: string; } /** Stats for the storage service. */ @@ -239,6 +265,7 @@ model StorageServiceStats { model GeoReplication { /** The georeplication status. */ @Xml.name("Status") status: GeoReplicationStatus; + /** The last sync time. */ @Xml.name("LastSyncTime") lastSyncTime: string; } @@ -247,19 +274,22 @@ model GeoReplication { union GeoReplicationStatus { /** The geo replication is live. */ Live: "live", + /** The geo replication is bootstrap. */ Bootstrap: "bootstrap", + /** The geo replication is unavailable. */ Unavailable: "unavailable", + /** Extensible */ - string + 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; } @@ -292,70 +322,85 @@ model UserDelegationKey { union PublicAccessType { /** Blob access. */ Blob: "blob", + /** Container access. */ Container: "container", + /** Extensible */ - string + 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 + string, } /** The lease duration. */ union LeaseDuration { /** The lease is of infinite duration. */ Infinite: "infinite", + /** The lease is of fixed duration. */ Fixed: "fixed", + /** Extensible */ - string + 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 + string, } /** The lease status. */ union LeaseStatus { /** The lease is unlocked. */ Unlocked: "unlocked", + /** The lease is locked. */ Locked: "locked", + /** Extensible */ - string + 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; } @@ -364,48 +409,66 @@ model AccessPolicy { 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", + /** Extensible */ - string + 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. */ RehydratePendingToArchive: "rehydrate-pending-to-archive", + /** The archive status is rehydrating pending to expired. */ RehydratePendingToExpired: "rehydrate-pending-to-expired", + /** Extensible */ - string + string, } /** An Azure Storage Blob */ @@ -436,7 +499,8 @@ model BlobItemInternal { @Xml.name("BlobTags") blobTags?: BlobTag[]; /** The object replication metadata of the blob. */ - @Xml.name("ObjectReplicationMetadata") objectReplicationMetadata?: ObjectReplicationMetadata; + @Xml.name("ObjectReplicationMetadata") + objectReplicationMetadata?: ObjectReplicationMetadata; /** Whether the blog has versions only. */ @Xml.name("HasVersionsOnly") hasVersionsOnly?: boolean; @@ -446,14 +510,16 @@ model BlobItemInternal { @Xml.name("Properties") model BlobPropertiesInternal { /** The date-time the blob was created in RFC1123 format. */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @Xml.name("Creation-Time") creationTime?: utcDateTime; + @encode("date-time-rfc1123") + @Xml.name("Creation-Time") + creationTime?: utcDateTime; /** The date-time the blob was last modified in RFC1123 format. */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @Xml.name("Last-Modified") lastModified: utcDateTime; + @encode("date-time-rfc1123") + @Xml.name("Last-Modified") + lastModified: utcDateTime; /** The blog ETag. */ @Xml.name("ETag") eTag: string; @@ -507,9 +573,10 @@ model BlobPropertiesInternal { @Xml.name("CopyProgress") copyProgress?: string; /** The copy completion time of the blob. */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @Xml.name("CopyCompletionTime") copyCompletionTime?: utcDateTime; + @encode("date-time-rfc1123") + @Xml.name("CopyCompletionTime") + copyCompletionTime?: utcDateTime; /** The copy status description of the blob. */ @Xml.name("CopyStatusDescription") copyStatusDescription?: string; @@ -524,9 +591,10 @@ model BlobPropertiesInternal { @Xml.name("DestinationSnapshot") destinationSnapshot?: string; /** The time the blob was deleted. */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @Xml.name("DeletedTime") deletedTime?: utcDateTime; + @encode("date-time-rfc1123") + @Xml.name("DeletedTime") + deletedTime?: utcDateTime; /** The remaining retention days of the blob. */ @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; @@ -544,39 +612,45 @@ model BlobPropertiesInternal { @Xml.name("EncryptionScope") encryptionScope?: string; /** The access tier change time of the blob. */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @Xml.name("AccessTierChangeTime") accessTierChangeTime?: utcDateTime; + @encode("date-time-rfc1123") + @Xml.name("AccessTierChangeTime") + accessTierChangeTime?: utcDateTime; /** The number of tags for the blob. */ @Xml.name("TagCount") tagCount?: int32; - @clientName("ExpiresOn") /** The expire time of the blob. */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @Xml.name("Expiry-Time") expiryTime?: utcDateTime; + @clientName("ExpiresOn") + @encode("date-time-rfc1123") + @Xml.name("Expiry-Time") + expiryTime?: utcDateTime; - @clientName("IsSealed") /** Whether the blob is sealed. */ - @Xml.name("Sealed") sealed?: boolean; + @clientName("IsSealed") + @Xml.name("Sealed") + sealed?: boolean; /** The rehydrate priority of the blob. */ @Xml.name("RehydratePriority") rehydratePriority?: RehydratePriority; /** The last access time of the blob. */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @Xml.name("LastAccessTime") lastAccessTime?: utcDateTime; + @encode("date-time-rfc1123") + @Xml.name("LastAccessTime") + lastAccessTime?: utcDateTime; /** The immutability policy until time of the blob. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @clientName("ImmutabilityPolicyExpiresOn") @encode("date-time-rfc1123") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @Xml.name("ImmutabilityPolicyUntilDate") immutabilityPolicyUntilDate?: utcDateTime; + @Xml.name("ImmutabilityPolicyUntilDate") + immutabilityPolicyUntilDate?: utcDateTime; /** The immutability policy mode of the blob. */ - @Xml.name("ImmutabilityPolicyMode") immutabilityPolicyMode?: BlobImmutabilityPolicyMode; + @Xml.name("ImmutabilityPolicyMode") + immutabilityPolicyMode?: BlobImmutabilityPolicyMode; /** Whether the blob is under legal hold. */ @Xml.name("LegalHold") legalHold?: boolean; @@ -586,24 +660,30 @@ model BlobPropertiesInternal { 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 + 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 + string, } /** The rehydrate priority. */ @@ -611,10 +691,12 @@ union BlobType { union RehydratePriority { /** The rehydrate priority is high. */ High: "High", + /** The rehydrate priority is standard. */ Standard: "Standard", + /** Extensible */ - string + string, } /** The blob metadata. */ @@ -622,13 +704,15 @@ union RehydratePriority { model BlobMetadata is Record { /** Whether the blob metadata is encrypted. */ @Xml.attribute - @Xml.name("Encrypted") encrypted: string; + @Xml.name("Encrypted") + encrypted: string; } /** The blob tags. */ model BlobTag { /** The key of the tag. */ @Xml.name("Key") key: string; + /** The value of the tag. */ @Xml.name("Value") value: string; } @@ -642,16 +726,22 @@ model ObjectReplicationMetadata is Record; 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; } @@ -660,6 +750,7 @@ model StorageServiceProperties { model StaticWebsite { /** The index document. */ @Xml.name("IndexDocument") indexDocument?: string; + /** The error document. */ @Xml.name("ErrorDocument") errorDocument?: string; } @@ -668,12 +759,16 @@ model StaticWebsite { 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") maxAgeInSeconds: int32; } @@ -682,12 +777,16 @@ model CorsRule { 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; + /** The service properties of the metrics. */ @Xml.name("ServiceProperties") serviceProperties?: MetricsServiceProperties; } @@ -696,6 +795,7 @@ model Metrics { model MetricsServiceProperties { /** The hour metrics properties. */ @Xml.name("HourMetrics") hourMetrics: MetricsProperties; + /** The minute metrics properties. */ @Xml.name("MinuteMetrics") minuteMetrics: MetricsProperties; } @@ -704,8 +804,10 @@ model MetricsServiceProperties { model MetricsProperties { /** Whether to include API in the metrics. */ @Xml.name("Enabled") enabled: boolean; + /** The version of the metrics properties. */ @Xml.name("Version") version: string; + /** The retention policy of the metrics. */ @Xml.name("RetentionPolicy") retentionPolicy: RetentionPolicy; } @@ -714,12 +816,16 @@ model MetricsProperties { 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; } @@ -728,8 +834,10 @@ model Logging { model RetentionPolicy { /** Whether to enable the retention policy. */ @Xml.name("Enabled") enabled: boolean; + /** The number of days to retain the logs. */ @Xml.name("Days") days: int32; + /** Whether to allow permanent delete. */ @Xml.name("AllowPermanentDelete") allowPermanentDelete: boolean; } @@ -741,11 +849,13 @@ model RetentionPolicy { model ListBlobsFlatSegmentResponse { /** The service endpoint. */ @Xml.attribute - @Xml.name("ServiceEndpoint") serviceEndpoint: string; + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; /** The container name. */ @Xml.attribute - @Xml.name("ContainerName") containerName: string; + @Xml.name("ContainerName") + containerName: string; /** The prefix of the blobs. */ @Xml.name("Prefix") rrefix?: string; @@ -819,8 +929,9 @@ model BlobTags { union QueryRequestTypeSqlOnly { /** The SQL request query type. */ SQL: "SQL", + /** Extensible */ - string + string, } /** Groups the set of query request settings. */ @@ -851,10 +962,12 @@ model QueryFormat { @Xml.name("Type") type: QueryType; /** The delimited text configuration. */ - @Xml.name("DelimitedTextConfiguration") delimitedTextConfiguration?: DelimitedTextConfiguration; + @Xml.name("DelimitedTextConfiguration") + delimitedTextConfiguration?: DelimitedTextConfiguration; /** The JSON text configuration. */ - @Xml.name("JsonTextConfiguration") jsonTextConfiguration?: JsonTextConfiguration; + @Xml.name("JsonTextConfiguration") + jsonTextConfiguration?: JsonTextConfiguration; /** The Apache Arrow configuration. */ @Xml.name("ArrowConfiguration") arrowConfiguration?: ArrowConfiguration; @@ -902,10 +1015,13 @@ model ArrowConfiguration { 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; } @@ -920,24 +1036,28 @@ model ParquetConfiguration is Record; 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 + string, } - /// Parameters /** 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 */ @clientName("BlobContentMD5") - @header("x-ms-blob-content-md5") blobContentMd5: string; + @header("x-ms-blob-content-md5") + blobContentMd5: string; }; /** The query request body parameter. */ @@ -951,54 +1071,63 @@ alias QueryRequestParameter = { alias BlobAppendOffsetResponseHeader = { /** This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes. */ @clientName("BlobAppendOffset") - @header("x-ms-blob-append-offset") blobAppendOffset: int64; + @header("x-ms-blob-append-offset") + blobAppendOffset: int64; }; /** 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). */ @clientName("appendPosition") - @header("x-ms-blob-condition-appendpos") blobConditionAppendPosition: int64; + @header("x-ms-blob-condition-appendpos") + blobConditionAppendPosition: 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). */ @clientName("maxSize") - @header("x-ms-blob-condition-maxsize") blobConditionMaxSize: int64; + @header("x-ms-blob-condition-maxsize") + blobConditionMaxSize: 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 */ @clientName("sequenceNumberAction") - @header("x-ms-sequence-number-action") sequenceNumberAction: SequenceNumberActionType; + @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 + 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. */ @clientName("blobSequenceNumber") - @header("x-ms-blob-sequence-number") blobSequenceNumber : int64; + @header("x-ms-blob-sequence-number") + blobSequenceNumber: int64; }; /** 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. */ @clientName("blobContentLength") - @header("x-ms-blob-content-length") blobContentLength: int64; + @header("x-ms-blob-content-length") + blobContentLength: int64; }; /** The previous snapshot parameter. */ @@ -1012,148 +1141,168 @@ alias PrevSnapshotParameter = { alias PrevSnapshotUrlParameter = { /** 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. */ @clientName("prevSnapshotUrl") - @header("x-ms-previous-snapshot-url") previousSnapshotUrl: string; + @header("x-ms-previous-snapshot-url") + previousSnapshotUrl: string; }; /** The is immutable storage with versioning enable response header. */ alias IsImmutableStorageWithVersioningEnabledResponseHeader = { /** Indicates whether version level worm is enabled on a container */ @clientName("IsImmutableStorageWithVersioningEnabled") - @header("x-ms-immutable-storage-with-versioning-enabled") immutableStorageWithVersioningEnabled: boolean; + @header("x-ms-immutable-storage-with-versioning-enabled") + immutableStorageWithVersioningEnabled: boolean; }; /** The deny encryption scope override response header. */ alias DenyEncryptionScopeOverrideResponseHeader = { /** 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("DenyEncryptionScopeOverride") - @header("x-ms-deny-encryption-scope-override") denyEncryptionScopeOverride: boolean; + @header("x-ms-deny-encryption-scope-override") + denyEncryptionScopeOverride: boolean; }; /** The default encryption scope response header. */ alias DefaultEncryptionScopeResponseHeader = { /** The default encryption scope for the container. */ @clientName("DefaultEncryptionScope") - @header("x-ms-default-encryption-scope") defaultEncryptionScope: string; + @header("x-ms-default-encryption-scope") + defaultEncryptionScope: string; }; /** The has legal hold response header. */ alias HasLegalHoldResponseHeader = { /** Indicates if a blob has a legal hold. */ @clientName("HasLegalHold") - @header("x-ms-legal-hold") legalHold: boolean; + @header("x-ms-legal-hold") + legalHold: boolean; }; /** The has immutability policy response header. */ alias HasImmutabilityPolicyResponseHeader = { /** Indicates if a blob has an active immutability policy. */ @clientName("HasImmutabilityPolicy") - @header("x-ms-has-immutability-policy") hasImmutabilityPolicy: boolean; + @header("x-ms-has-immutability-policy") + hasImmutabilityPolicy: boolean; }; /** The public access response header. */ alias PublicAccessResponseHeader = { /** The public access setting for the container. */ @clientName("PublicAccess") - @header("x-ms-blob-public-access") publicAccess: PublicAccessType; + @header("x-ms-blob-public-access") + publicAccess: PublicAccessType; }; /** The rehydrate priority response header. */ alias RehydratePriorityResponseHeader = { /** If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard. */ @clientName("RehydratePriority") - @header("x-ms-rehydrate-priority") rehydratePriority: RehydratePriority; + @header("x-ms-rehydrate-priority") + rehydratePriority: RehydratePriority; }; /** The expires on response header. */ alias ExpiresOnResponseHeader = { /** UTC date/time value generated by the service that indicates the time at which the blob will expire. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @clientName("ExpiresOn") @encode("date-time-rfc1123") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("x-ms-expiry-time") expiryTime: utcDateTime; + @header("x-ms-expiry-time") + expiryTime: utcDateTime; }; /** The access tier change time response header. */ alias AccessTierChangeTimeResponseHeader = { /** 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("date-time-rfc1123") @clientName("AccessTierChangeTime") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("x-ms-access-tier-change-time") accessTierChangeTime: utcDateTime; + @header("x-ms-access-tier-change-time") + accessTierChangeTime: utcDateTime; }; /** The archive status response header. */ alias ArchiveStatusResponseHeader = { /** 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. */ @clientName("ArchiveStatus") - @header("x-ms-archive-status") archiveStatus: ArchiveStatus; + @header("x-ms-archive-status") + archiveStatus: ArchiveStatus; }; /** The access tier inferred response header. */ alias AccessTierInferredResponseHeader = { /** 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. */ @clientName("AccessTierInferred") - @header("x-ms-access-tier-inferred") accessTierInferred: boolean; + @header("x-ms-access-tier-inferred") + accessTierInferred: boolean; }; /** The access tier response header. */ alias AccessTierResponseHeader = { /** 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. */ @clientName("AccessTier") - @header("x-ms-access-tier") accessTier: AccessTier; + @header("x-ms-access-tier") + accessTier: AccessTier; }; /** The destination snapshot response header. */ alias DestinationSnapshotResponseHeader = { /** 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. */ @clientName("DestinationSnapshot") - @header("x-ms-copy-destination-snapshot") copyDestinationSnapshot: string; + @header("x-ms-copy-destination-snapshot") + copyDestinationSnapshot: string; }; /** The is incremental copy response header. */ alias IsIncrementalCopyResponseHeader = { /** Included if the blob is incremental copy blob. */ @clientName("IsIncrementalCopy") - @header("x-ms-incremental-copy") incrementalCopy: boolean; + @header("x-ms-incremental-copy") + incrementalCopy: boolean; }; /** 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("date-time-rfc1123") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("x-ms-immutability-policy-until-date") immutabilityPolicyUntilDate: utcDateTime; + @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" @clientName("LastAccessed") @encode("date-time-rfc1123") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("x-ms-last-access-time") lastAccessTime: utcDateTime; + @header("x-ms-last-access-time") + lastAccessTime: utcDateTime; }; /** The is sealed response header. */ alias IsSealedResponseHeader = { /** If this blob has been sealed */ @clientName("IsSealed") - @header("x-ms-blob-sealed") blobSealed: boolean; + @header("x-ms-blob-sealed") + blobSealed: boolean; }; /** The tag count response header. */ alias TagCountResponseHeader = { /** The number of tags associated with the blob */ @clientName("TagCount") - @header("x-ms-tag-count") tagCount: int64; + @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. */ @clientName("BlobCommittedBlockCount") - @header("x-ms-blob-committed-block-count") blobCommittedBlockCount: int32; + @header("x-ms-blob-committed-block-count") + blobCommittedBlockCount: int32; }; /** The accept ranges response header. */ @@ -1166,114 +1315,130 @@ alias AcceptRangesResponseHeader = { alias IsCurrentVersionResponseHeader = { /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ @clientName("IsCurrentVersion") - @header("x-ms-is-current-version") isCurrentVersion: boolean; + @header("x-ms-is-current-version") + isCurrentVersion: boolean; }; /** The lease status response header. */ alias LeaseStatusResponseHeader = { /** The lease status of the blob. */ @clientName("LeaseStatus") - @header("x-ms-lease-status") leaseStatus: LeaseStatus; + @header("x-ms-lease-status") + leaseStatus: LeaseStatus; }; /** The lease state response header. */ alias LeaseStateResponseHeader = { /** Lease state of the blob. */ @clientName("LeaseState") - @header("x-ms-lease-state") leaseState: LeaseState; + @header("x-ms-lease-state") + leaseState: LeaseState; }; /** The lease duration response header. */ alias LeaseDurationResponseHeader = { /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ @clientName("LeaseDuration") - @header("x-ms-lease-duration") leaseDuration: LeaseDuration; + @header("x-ms-lease-duration") + leaseDuration: LeaseDuration; }; /** 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. */ @clientName("CopySource") - @header("x-ms-copy-source") copySource: string; + @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 */ @clientName("CopyProgress") - @header("x-ms-copy-progress") copyProgress: string; + @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 */ @clientName("CopyStatusDescription") - @header("x-ms-copy-status-description") copyStatusDescription: string; + @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" @clientName("CopyCompletionTime") @encode("date-time-rfc1123") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("x-ms-copy-completion-time") copyCompletionTime: utcDateTime; + @header("x-ms-copy-completion-time") + copyCompletionTime: utcDateTime; }; /** The blob type response header. */ alias BlobTypeResponseHeader = { /** The type of the blob. */ @clientName("BlobType") - @header("x-ms-blob-type") blobType: BlobType; + @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. */ @clientName("ObjectReplicationPolicyId") - @header("x-ms-or-policy-id") objectReplicationPolicyId: string; + @header("x-ms-or-policy-id") + objectReplicationPolicyId: string; }; /** The range required put page from URL parameter. */ alias RangeRequiredPutPageFromUrlParameter = { /** 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. */ @clientName("range") - @header("x-ms-range") range: string; + @header("x-ms-range") + range: string; }; /** The source range required put page from URL parameter. */ alias SourceRangeRequiredPutPageFromUrlParameter = { /** 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. */ @clientName("sourceRange") - @header("x-ms-source-range") sourceRange: string; + @header("x-ms-source-range") + sourceRange: string; }; /** The if seuqnce number equal to parameter. */ alias IfSequenceNumberEqualToParameter = { /** Specify this header value to operate only on a blob if it has the specified sequence number. */ @clientName("ifSequenceNumberEqualTo") - @header("x-ms-if-sequence-number-eq") ifSequenceNumberEqualTo?: int64; + @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. */ @clientName("ifSequenceNumberLessThan") - @header("x-ms-if-sequence-number-lt") ifSequenceNumberLessThan?: int64; + @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. */ @clientName("ifSequenceNumberLessThanOrEqualTo") - @header("x-ms-if-sequence-number-le") ifSequenceNumberLessThanOrEqualTo?: int64; + @header("x-ms-if-sequence-number-le") + ifSequenceNumberLessThanOrEqualTo?: int64; }; /** The blob content-length response header. */ alias BlobContentLengthResponseHeader = { /** The size of the blob in bytes. */ @clientName("blobContentLength") - @header("x-ms-blob-content-length") blobContentLength: int64; + @header("x-ms-blob-content-length") + blobContentLength: int64; }; /** The block list type parameter. */ @@ -1288,12 +1453,15 @@ alias BlockListTypeParameter = { union BlockListType { /** The list of committed blocks. */ Committed: "committed", + /** The list of uncommitted blocks. */ Uncomitted: "uncommitted", + /** Both lists together. */ All: "all", + /** Extensible */ - string + string, } /** The blob blocks body parameter. */ @@ -1306,21 +1474,24 @@ alias BlobBlocksParameter = { alias SourceContentCrc64Parameter = { /** Specify the crc64 calculated for the range of bytes that must be read from the copy source. */ @clientName("sourceContentCrc64") - @header("x-ms-source-content-crc64") sourceContentCrc64?: string; + @header("x-ms-source-content-crc64") + sourceContentCrc64?: string; }; /** The source range parameter. */ alias SourceRangeParameter = { /** Bytes of source data in the specified range. */ @clientName("sourceRange") - @header("x-ms-source-range") sourceRange: string; + @header("x-ms-source-range") + sourceRange: string; }; /** The source URL parameter. */ alias SourceUrlParameter = { /** Specify a URL to the copy source. */ @clientName("sourceUrl") - @header("x-ms-source-url") sourceUrl: string; + @header("x-ms-source-url") + sourceUrl: string; }; /** The Block ID parameter. */ @@ -1335,200 +1506,230 @@ alias BlockIdParameter = { alias IsHierarchicalNamespaceEnabledResponseHeader = { /** Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled. */ @clientName("IsHierarchicalNamespaceEnabled") - @header("x-ms-is-hns-enabled") isHierarchicalNamespaceEnabled: boolean; + @header("x-ms-is-hns-enabled") + isHierarchicalNamespaceEnabled: boolean; }; /** The account kind response header. */ alias AccountKindResponseHeader = { /** Identifies the account kind */ @clientName("AccountKind") - @header("x-ms-account-kind") accountKind: AccountKind; + @header("x-ms-account-kind") + accountKind: AccountKind; }; /** The SKU name response header. */ alias SkuNameResponseHeader = { /** Identifies the sku name of the account */ @clientName("SkuName") - @header("x-ms-sku-name") skuName: SkuName; + @header("x-ms-sku-name") + skuName: SkuName; }; /** The access tier required parameter. */ alias AccessTierRequiredParameter = { /** Indicates the tier to be set on the blob. */ @clientName("AccessTier") - @header("x-ms-access-tier") accessTier: AccessTier; + @header("x-ms-access-tier") + accessTier: AccessTier; }; /** The copy ID parameter. */ alias CopyIdParameter = { /** The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation. */ @clientName("CopyId") - @header("x-ms-copy-id") copyId: string; + @header("x-ms-copy-id") + copyId: string; }; /** 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. */ @clientName("ContentCrc64") - @header("x-ms-content-crc64") contentCrc64: string; + @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. */ @clientName("CopyStatus") - @header("x-ms-copy-status") copyStatus: CopyStatus; + @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. */ @clientName("CopyId") - @header("x-ms-copy-id") copyId: string; + @header("x-ms-copy-id") + copyId: string; }; /** The seal blob parameter. */ alias SealBlobParameter = { /** Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer. */ @clientName("SealBlob") - @header("x-ms-seal-blob") sealBlob?: boolean; + @header("x-ms-seal-blob") + sealBlob?: boolean; }; /** 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" @clientName("sourceIfUnmodifiedSince") @encode("date-time-rfc1123") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("x-ms-source-if-unmodified-since") sourceIfUnmodifiedSince?: utcDateTime; + @header("x-ms-source-if-unmodified-since") + sourceIfUnmodifiedSince?: utcDateTime; }; /** The rehydrate priority parameter. */ alias RehydratePriorityParameter = { /** Optional: Indicates the priority with which to rehydrate an archived blob. */ @clientName("rehydratePriority") - @header("x-ms-rehydrate-priority") rehydratePriority?: RehydratePriority; + @header("x-ms-rehydrate-priority") + rehydratePriority?: RehydratePriority; }; /** The snapshot response header. */ alias SnapshotResponseHeader = { /** Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot. */ @clientName("Snapshot") - @header("x-ms-snapshot") snapshot: string; + @header("x-ms-snapshot") + snapshot: string; }; /** The lease time response header. */ alias LeaseTimeResponseHeader = { /** Approximate time remaining in the lease period, in seconds. */ @clientName("LeaseTime") - @header("x-ms-lease-time") leaseTime: int32; + @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. */ @clientName("breakPeriod") - @header("x-ms-lease-break-period") leaseBreakPeriod?: int32; + @header("x-ms-lease-break-period") + leaseBreakPeriod?: int32; }; /** 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. */ @clientName("leaseId") - @header("x-ms-lease-id") leaseId: string; + @header("x-ms-lease-id") + leaseId: string; }; /** The lease ID response header. */ alias LeaseIdResponseHeader = { /** Uniquely identifies a blobs' lease */ @clientName("LeaseId") - @header("x-ms-lease-id") leaseId: string; + @header("x-ms-lease-id") + leaseId: 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 */ @clientName("EncryptionScope") - @header("x-ms-encryption-scope") encryptionScope: string; + @header("x-ms-encryption-scope") + encryptionScope: 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. */ @clientName("EncryptionKeySha256") - @header("x-ms-encryption-key-sha256") encryptionKeySha256: string; + @header("x-ms-encryption-key-sha256") + encryptionKeySha256: 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; + @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. */ @clientName("legalHold") - @header("x-ms-legal-hold") legalHold: boolean; + @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. */ @clientName("legalHold") - @header("x-ms-legal-hold") legalHold: boolean; + @header("x-ms-legal-hold") + legalHold: boolean; }; /** The immutability policy mode response header. */ alias ImmutabilityPolicyModeResponseHeader = { /** Indicates the immutability policy mode of the blob. */ @clientName("ImmutabilityPolicyMode") - @header("x-ms-immutability-policy-mode") immutabilityPolicyMode: BlobImmutabilityPolicyMode; + @header("x-ms-immutability-policy-mode") + immutabilityPolicyMode: BlobImmutabilityPolicyMode; }; /** The immutability policy expiration response header. */ alias ImmutabilityPolicyExpiryResponseHeader = { /** Indicates the time the immutability policy will expire. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @clientName("ImmutabilityPolicyExpiry") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("x-ms-immutability-policy-until-date") immutabilityPolicyUntilDate: utcDateTime; + @header("x-ms-immutability-policy-until-date") + immutabilityPolicyUntilDate: utcDateTime; }; /** 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. */ @clientName("BlobSequenceNumber") - @header("x-ms-blob-sequence-number") blobSequenceNumber: int64; + @header("x-ms-blob-sequence-number") + blobSequenceNumber: int64; }; /** The blob expiration time parameter. */ alias BlobExpiryTimeParameter = { /** The time to set the blob to expiry. */ @clientName("ExpiresOn") - @header("x-ms-expiry-time") expiryTime: string; + @header("x-ms-expiry-time") + expiryTime: string; }; /** The blob expiration options parameter. */ alias BlobExpiryOptionsParameter = { /** Required. Indicates mode of the expiry time */ @clientName("ExpiryOptions") - @header("x-ms-expiry-option") expiryOptions: BlobExpiryOptions; + @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 + string, } /** The Content-Language response header. */ @@ -1577,53 +1778,60 @@ alias ContentLengthResponseHeader = { 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. */ @clientName("VersionId") - @header("x-ms-version-id") versionId: string; + @header("x-ms-version-id") + versionId: string; }; /** The version response header. */ alias VersionResponseHeader = { /** 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. */ @clientName("Version") - @header("x-ms-version") version: string; + @header("x-ms-version") + version: 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("date-time-rfc1123") @clientName("CreationTime") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("x-ms-creation-time") creationTime: utcDateTime; + @header("x-ms-creation-time") + creationTime: utcDateTime; }; /** The last modified response header */ alias LastModifiedResponseHeader = { /** The date/time that the container was last modified. */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("Last-Modified") lastModified: utcDateTime; + @encode("date-time-rfc1123") + @header("Last-Modified") + lastModified: utcDateTime; }; /** The request ID response header. */ alias RequestIdResponseHeader = { /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */ @clientName("RequestId") - @header("x-ms-request-id") requestId: string; + @header("x-ms-request-id") + requestId: string; }; /** The client request ID response header. */ alias ClientRequestIdResponseHeader = { /** If a client request id header is sent in the request, this header will be present in the response with the same value. */ @clientName("ClientRequestId") - @header("x-ms-client-request-id") clientRequestId?: string; + @header("x-ms-client-request-id") + clientRequestId?: string; }; /** The Date response header */ alias DateResponseHeader = { /** UTC date/time value generated by the service that indicates the time at which the response was initiated */ - @encode("date-time-rfc1123") #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("Date") date: utcDateTime; + @encode("date-time-rfc1123") + @header("Date") + date: utcDateTime; }; /** The ETag response header */ @@ -1636,17 +1844,20 @@ alias EtagResponseHeader = { alias CopySourceTagsParameter = { /** Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags. */ @clientName("copySourceTags") - @header("x-ms-copy-source-tags") copySourceTags?: string; + @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 + string, } /** The copy source authorization header parameter */ @@ -1708,10 +1919,10 @@ alias SourceIfNoneMatchParameter = { /** 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") @clientName("sourceIfModifiedSince") @encode("date-time-rfc1123") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" sourceIfModifiedSince?: utcDateTime; }; @@ -1719,149 +1930,177 @@ alias SourceIfModifiedSinceParameter = { alias ContentCrc64Parameter = { /** Specify the transactional crc64 for the body, to be validated by the service. */ @clientName("transactionalContentCrc64") - @header("x-ms-content-crc64") contentCrc64?: string; + @header("x-ms-content-crc64") + contentCrc64?: string; }; /** The access tier optional parameter. */ alias AccessTierOptionalParameter = { /** Optional. The tier to be set on the blob. */ @clientName("tier") - @header("x-ms-access-tier") accessTier?: AccessTier; + @header("x-ms-access-tier") + accessTier?: 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; + @header("Content-MD5") + contentMd5?: string; }; /** The legal hold optional parameter. */ alias LegalHoldOptionalParameter = { /** Specified if a legal hold should be set on the blob. */ @clientName("legalHold") - @header("x-ms-legal-hold") legalHold?: boolean; + @header("x-ms-legal-hold") + legalHold?: boolean; }; /** The immutability policy mode parameter. */ alias ImmutabilityPolicyModeParameter = { /** Specifies the immutability policy mode to set on the blob. */ @clientName("immutabilityPolicyMode") - @header("x-ms-immutability-policy-mode") immutabilityPolicyMode?: BlobImmutabilityPolicyMode; + @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" @clientName("immutabilityPolicyExpiry") @encode("date-time-rfc1123") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("x-ms-immutability-policy-until-date") immutabilityPolicyExpiry?: string; + @header("x-ms-immutability-policy-until-date") + immutabilityPolicyExpiry?: string; }; /** 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; + @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. */ @clientName("blobSequenceNumber") - @header("x-ms-blob-sequence-number") blobSequenceNumber?: int64; + @header("x-ms-blob-sequence-number") + blobSequenceNumber?: int64; }; /** The blob content length parameter. */ alias BlobContentLengthRequiredParameter = { /** 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. */ @clientName("blobContentLength") - @header("x-ms-blob-content-length") blobContentLength: int64; + @header("x-ms-blob-content-length") + blobContentLength: 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. */ @clientName("encryptionScope") - @header("x-ms-encryption-scope") encryptionScope?: string; + @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. */ @clientName("blobContentDisposition") - @header("x-ms-blob-content-disposition") blobContentDisposition?: string; + @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. */ @clientName("blobCacheControl") - @header("x-ms-blob-cache-control") blobCacheControl?: string; + @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. */ @clientName("blobContentMD5") - @header("x-ms-blob-content-md5") blobContentMd5?: string; + @header("x-ms-blob-content-md5") + blobContentMd5?: string; }; /** 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. */ @clientName("blobContentLanguage") - @header("x-ms-blob-content-language") blobContentLanguage?: string; + @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. */ @clientName("blobContentEncoding") - @header("x-ms-blob-content-encoding") blobContentEncoding?: string; + @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. */ @clientName("blobContentType") - @header("x-ms-blob-content-type") blobContentType?: string; + @header("x-ms-blob-content-type") + blobContentType?: string; }; /** The optional premium page blob access tier parameter. */ model PremiumPageBlobAccessTierOptional { /** Optional. Indicates the tier to be set on the page blob. */ @clientName("tier") - @header("x-ms-access-tier") accessTier?: PremiumPageBlobAccessTier; -}; + @header("x-ms-access-tier") + accessTier?: PremiumPageBlobAccessTier; +} /** 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 + string, } /** The blob name parameter. */ @@ -1886,67 +2125,77 @@ alias BlobDeleteTypeParameter = { union BlobDeleteType { /** Permanently delete the blob. */ Permanent: "Permanent", + /** Extensible */ - string + string, } /** The delete snapshot parameter. */ alias DeleteSnapshotsParameter = { /** 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 */ @clientName("deleteSnapshots") - @header("x-ms-delete-snapshots") deleteSnapshots?: DeleteSnapshotsOptionType; + @header("x-ms-delete-snapshots") + deleteSnapshots?: DeleteSnapshotsOptionType; }; /** The delete snapshots option type. */ union DeleteSnapshotsOptionType { /** The delete snapshots include option is not specified. */ Nonne: "none", + /** The delete snapshots include option is include. */ Include: "include", + /** Extensible */ - string -}; + 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. */ @clientName("encryptionAlgorithm") - @header("x-ms-encryption-algorithm") encryptionAlgorithm?: string; + @header("x-ms-encryption-algorithm") + encryptionAlgorithm?: 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. */ @clientName("encryptionKeySha256") - @header("x-ms-encryption-key-sha256") encryptionKeySha256?: string; + @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. */ @clientName("encryptionKey") - @header("x-ms-encryption-key") encryptionKey?: string; + @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. */ @clientName("ifTags") - @header("x-ms-if-tags") ifTags?: string; + @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. */ @clientName("ifMatch") - @header("If-Match") ifMatch?: string; + @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. */ @clientName("ifNoneMatch") - @header("If-None-Match") ifNoneMatch?: string; + @header("If-None-Match") + ifNoneMatch?: string; }; /** The get range content CRC64 parameter. */ @@ -1965,7 +2214,8 @@ alias GetRangeContentMd5Parameter = { alias RangeParameter = { /** Return only the bytes of the blob in the specified range. */ @clientName("range") - @header("x-ms-range") range?: string; + @header("x-ms-range") + range?: string; }; /** The version ID parameter. */ @@ -1987,7 +2237,8 @@ alias SnapshotParameter = { model BlobName { /** Whether the blob name is encoded. */ @Xml.attribute - @Xml.name("Encoded") encoded: boolean; + @Xml.name("Encoded") + encoded: boolean; /** The blob name. */ @Xml.unwrapped content: string; @@ -2014,11 +2265,13 @@ model BlobHierarchyListSegment { model ListBlobsHierarchySegmentResponse { /** The service endpoint. */ @Xml.attribute - @Xml.name("ServiceEndpoint") serviceEndpoint: string; + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; /** The container name. */ @Xml.attribute - @Xml.name("ContainerName") containerName: string; + @Xml.name("ContainerName") + containerName: string; /** The delimiter of the blobs. */ @Xml.name("Delimiter") delimiter?: string; @@ -2048,74 +2301,92 @@ alias DelimiterParameter = { /** The list blob includes parameter. */ alias ListBlobsIncludeParameter = { /** Include this parameter to specify one or more datasets to include in the response. */ - @query({ format: "csv" }) include?: ListBlobsIncludes[]; + @query({ + format: "csv", + }) + include?: ListBlobsIncludes[]; }; /** The list blob includes parameter values. */ union ListBlobsIncludes { /** The include copies. */ Copies: "copies", + /** 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 + string, } /** The lease duration parameter. */ alias LeaseDurationParameter = { /** 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. */ @clientName("duration") - @header("x-ms-lease-duration") leaseDuration: int32; + @header("x-ms-lease-duration") + leaseDuration: int32; }; /** The source lease ID header parameter. */ alias SourceLeaseIdParameter = { /** A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ @clientName("sourceLeaseId") - @header("x-ms-source-lease-id") sourceLeaseId?: string; + @header("x-ms-source-lease-id") + sourceLeaseId?: string; }; /** The source container name header parameter. */ alias SourceContainerNameParameter = { /** Required. Specifies the name of the container to rename. */ @clientName("SourceContainerName") - @header("x-ms-source-container-name") sourceContainerName: string; + @header("x-ms-source-container-name") + sourceContainerName: string; }; /** The deleted container name header. */ alias DeletedContainerNameParameter = { /** Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore. */ @clientName("DeletedContainerName") - @header("x-ms-deleted-container-name") deletedContainerName?: string; + @header("x-ms-deleted-container-name") + deletedContainerName?: string; }; /** The deleted container version header. */ alias DeletedContainerVersionParameter = { /** Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore. */ @clientName("DeletedContainerVersion") - @header("x-ms-deleted-container-version") deletedContainerVersion?: string; + @header("x-ms-deleted-container-version") + deletedContainerVersion?: string; }; /** The container ACL parameter. */ alias ContainerAclParameter = { - #suppress "@azure-tools/typespec-azure-core/request-body-problem" "Existing API" /** The access control list for the container. */ + #suppress "@azure-tools/typespec-azure-core/request-body-problem" "Existing API" @body acl: SignedIdentifiers; }; @@ -2130,19 +2401,21 @@ alias ContainerNameParameter = { /** 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("date-time-rfc1123") @clientName("ifUnmodifiedSince") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("If-Unmodified-Since") ifUnmodifiedSince?: utcDateTime; + @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("date-time-rfc1123") @clientName("ifModifiedSince") - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @header("If-Modified-Since") ifModifiedSince?: utcDateTime; + @header("If-Modified-Since") + ifModifiedSince?: utcDateTime; }; /** The lease ID parameter. */ @@ -2154,7 +2427,8 @@ alias LeaseIdOptionalParameter = { /** The deny encryption scope override parameter. */ alias DenyEncryptionScopeOverrideParameter = { /** Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container. */ - @header("x-ms-deny-encryption-scope-override") denyEncryptionScopeOverride?: boolean; + @header("x-ms-deny-encryption-scope-override") + denyEncryptionScopeOverride?: boolean; }; /** The default encryption scope parameter. */ @@ -2167,25 +2441,29 @@ alias DefaultEncryptionScopeParameter = { alias BlobPublicAccessParameter = { /** Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'. */ @clientName("access") - @header("x-ms-blob-public-access") publicAccess?: PublicAccessType; + @header("x-ms-blob-public-access") + publicAccess?: PublicAccessType; }; // TODO: Figure out how to better represent this /** 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. */ -// @header("x-ms-meta") meta?: string; +// @header("x-ms-meta") meta?: string; #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" alias MetadataParameter = Record; // TODO: Figure out how to better represent this /** 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. */ -// @header("x-ms-meta") meta?: string; +// @header("x-ms-meta") meta?: string; #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" alias MetadataResponseHeader = Record; /** The filter blobs include parameter. */ alias FilterBlobsIncludeParameter = { /** Include this parameter to specify one or more datasets to include in the response. */ - @query({ format: "csv" }) include?: FilterBlobsIncludes[]; + @query({ + format: "csv", + }) + include?: FilterBlobsIncludes[]; }; /** The filter blobs where parameter. */ @@ -2223,13 +2501,15 @@ alias PrefixParameter = { alias ClientRequestIdParameter = { /** 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. */ @clientName("requestId") - @header("x-ms-client-request-id") clientRequestId?: string; + @header("x-ms-client-request-id") + clientRequestId?: 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 timeout?: int32; + @query + timeout?: int32; }; /** The API version parameter. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 0d42b6be0a0f..39afd6ce75d9 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -17,38 +17,37 @@ using Azure.ClientGenerator.Core; @route("/?restype=service&comp=properties") interface BlobServiceProperties { /** Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. */ - @put - @operationId("Service_SetProperties") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @operationId("Service_SetProperties") setServiceProperties( /** The storage service properties that specifies the analytics and CORS rules to set on the Blob service. */ - @body body: StorageServiceProperties; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + @body body: StorageServiceProperties, + + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 202; - ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; } | StorageError; /** Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. */ - @operationId("Service_GetProperties") - @get #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @operationId("Service_GetProperties") + @get getServiceProperties( - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: StorageServiceProperties; - ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -57,15 +56,15 @@ interface BlobServiceProperties { @route("/?restype=service&comp=stats") interface BlobServiceStatistics { - /** 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. */ - @operationId("Service_GetStatistics") - @get + /** 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" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @operationId("Service_GetStatistics") + @get getStatistics( - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: StorageServiceStats; @@ -79,17 +78,17 @@ interface BlobServiceStatistics { @route("/?comp=list") interface BlobServiceListContainerSegments { /** The List Containers Segment operation returns a list of the containers under the specified account */ - @get - @operationId("Service_ListContainersSegment") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @get + @operationId("Service_ListContainersSegment") getContainers( - ...PrefixParameter; - ...TimeoutParameter; - ...MarkerParameter; - ...MaxResultsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...PrefixParameter, + ...TimeoutParameter, + ...MarkerParameter, + ...MaxResultsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: ListContainersSegmentResponse; @@ -102,18 +101,20 @@ interface BlobServiceListContainerSegments { @route("/?restype=service&comp=userdelegationkey") interface BlobServiceUserDelegationKey { /** The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS. */ - @post - @operationId("Service_GetUserDelegationKey") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @post + @operationId("Service_GetUserDelegationKey") getUserDelegationKey( /** The user delegation key info. */ - @body body: KeyInfo; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + @body body: KeyInfo, + + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; + /** The user delegation key. */ @body body: UserDelegationKey; @@ -126,16 +127,13 @@ interface BlobServiceUserDelegationKey { @route("/?restype=account&comp=properties") interface BlobServiceAccountProperties { /** Returns the sku name and account kind. */ - @get - @operationId("Service_GetAccountInfo") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" - getAccountInfo( - ...ApiVersionParameter; - ): { + @get + @operationId("Service_GetAccountInfo") + getAccountInfo(...ApiVersionParameter): { @statusCode statusCode: 200; - ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -149,16 +147,16 @@ interface BlobServiceAccountProperties { @route("/?comp=batch") interface BlobServiceBatch { /** The Batch operation allows multiple API calls to be embedded into a single HTTP request. */ - @post - @operationId("Service_SubmitBatch") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @post + @operationId("Service_SubmitBatch") submitBatch( - ...ContentLengthParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContentLengthParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...RequestIdResponseHeader; @@ -169,18 +167,18 @@ interface BlobServiceBatch { @route("/?comp=blobs") interface FilterBlobsService { /** The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression. */ - @get - @operationId("Service_FilterBlobs") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @get + @operationId("Service_FilterBlobs") getBlobs( - ...FilterBlobsWhereParameter; - ...FilterBlobsIncludeParameter; - ...TimeoutParameter; - ...MarkerParameter; - ...MaxResultsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...FilterBlobsWhereParameter, + ...FilterBlobsIncludeParameter, + ...TimeoutParameter, + ...MarkerParameter, + ...MaxResultsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: FilterBlobSegment; @@ -194,20 +192,22 @@ interface FilterBlobsService { @route("/{containerName}?restype=container") interface BlobServiceContainer { /** Creates a new container under the specified account. If the container with the same name already exists, the operation fails. */ - @put - @operationId("Container_Create") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @operationId("Container_Create") createContainer( - ...ContainerNameParameter; + ...ContainerNameParameter, + // TODO: x-ms-meta headers - ...BlobPublicAccessParameter; - ...DefaultEncryptionScopeParameter; - ...DenyEncryptionScopeOverrideParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...BlobPublicAccessParameter, + + ...DefaultEncryptionScopeParameter, + ...DenyEncryptionScopeOverrideParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; @@ -219,22 +219,23 @@ interface BlobServiceContainer { } | StorageError; /** returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs */ - @get - @operationId("Container_GetProperties") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @get + @operationId("Container_GetProperties") getContainerProperties( - ...ContainerNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...LeaseIdOptionalParameter; + ...ContainerNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...LeaseIdOptionalParameter, ): { @statusCode statusCode: 200; - + // TODO: x-ms-meta headers ...EtagResponseHeader; + ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -252,22 +253,21 @@ interface BlobServiceContainer { } | StorageError; /** operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection */ - @delete - @operationId("Container_Delete") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @delete + @operationId("Container_Delete") deleteContainer( - ...ContainerNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...LeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; + ...ContainerNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...LeaseIdOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, ): { @statusCode statusCode: 202; - ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -278,20 +278,22 @@ interface BlobServiceContainer { @route("/{containerName}?restype=container&comp=metadata") interface BlobServiceContainerMetadata { /** operation sets one or more user-defined name-value pairs for the specified container. */ - @put - @operationId("Container_SetMetadata") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Container_SetMetadata") setContainerMetadata( - ...ContainerNameParameter; + ...ContainerNameParameter, + // TODO: ...MetadataParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...IfModifiedSinceParameter; - ...LeaseIdOptionalParameter; + ...TimeoutParameter, + + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...IfModifiedSinceParameter, + ...LeaseIdOptionalParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; @@ -306,20 +308,19 @@ interface BlobServiceContainerMetadata { @route("/{containerName}?restype=container&comp=acl") interface BlobServiceContainerAccessPolicy { /** gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly. */ - @get - @operationId("Container_GetAccessPolicy") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @get + @operationId("Container_GetAccessPolicy") getContainerccessPolicy( - ...ContainerNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...LeaseIdOptionalParameter; + ...ContainerNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...LeaseIdOptionalParameter, ): { @statusCode statusCode: 200; @body body: SignedIdentifiers; - ...PublicAccessResponseHeader; ...EtagResponseHeader; ...LastModifiedResponseHeader; @@ -330,24 +331,23 @@ interface BlobServiceContainerAccessPolicy { } | StorageError; /** sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly. */ - @put - @operationId("Container_SetAccessPolicy") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Container_SetAccessPolicy") setContainerAccessPolicy( - ...ContainerNameParameter; - ...ContainerAclParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...LeaseIdOptionalParameter; + ...ContainerNameParameter, + ...ContainerAclParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...LeaseIdOptionalParameter, ): { @statusCode statusCode: 200; - ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; @@ -360,22 +360,21 @@ interface BlobServiceContainerAccessPolicy { @route("/{containerName}?restype=container&comp=undelete") interface ContainerRestoreService { /** Restores a previously-deleted container. */ - @put - @operationId("Container_Undelete") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Container_Undelete") undeleteContainer( - ...ContainerNameParameter; - ...DeletedContainerNameParameter; - ...DeletedContainerVersionParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...DeletedContainerNameParameter, + ...DeletedContainerVersionParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; - ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -386,22 +385,21 @@ interface ContainerRestoreService { @route("/{containerName}?restype=container&comp=rename") interface ContainerRenameService { /** Renames an existing container. */ - @put - @operationId("Container_Rename") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Container_Rename") renameContainer( - ...ContainerNameParameter; - ...SourceContainerNameParameter; - ...SourceLeaseIdParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...SourceContainerNameParameter, + ...SourceLeaseIdParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; - ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -412,23 +410,23 @@ interface ContainerRenameService { @route("/{containerName}?restype=container&comp=batch") interface ContainerBatchService { /** The Batch operation allows multiple API calls to be embedded into a single HTTP request. */ - @post - @operationId("Container_SubmitBatch") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @post + @operationId("Container_SubmitBatch") submitBatch( /** The batch request content */ - ...BodyParameter; - ...ContainerNameParameter; - ...ContentLengthParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...BodyParameter, + + ...ContainerNameParameter, + ...ContentLengthParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 202; @body body: bytes; - ...RequestIdResponseHeader; ...VersionResponseHeader; } | StorageError; @@ -437,23 +435,22 @@ interface ContainerBatchService { @route("/{containerName}?restype=container&comp=blobs") interface BlobListService { /** 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. */ - @get - @operationId("Container_FilterBlobs") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @get + @operationId("Container_FilterBlobs") getBlobs( - ...ContainerNameParameter; - ...MarkerParameter; - ...MaxResultsParameter; - ...FilterBlobsWhereParameter; - ...FilterBlobsIncludeParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...MarkerParameter, + ...MaxResultsParameter, + ...FilterBlobsWhereParameter, + ...FilterBlobsIncludeParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: FilterBlobSegment; - ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -464,24 +461,23 @@ interface BlobListService { @route("/{containerName}?comp=lease&restype=container&acquire") interface ContainerLeaseService { /** [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 */ - @put - @operationId("Container_AcquireLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Container_AcquireLease") acquireLease( - ...ContainerNameParameter; - ...LeaseDurationParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...ProposedLeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; + ...ContainerNameParameter, + ...LeaseDurationParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...ProposedLeaseIdOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, ): { @statusCode statusCode: 201; - ...LeaseIdResponseHeader; ...EtagResponseHeader; ...LastModifiedResponseHeader; @@ -495,23 +491,22 @@ interface ContainerLeaseService { @route("/{containerName}?comp=lease&restype=container&release") interface ContainerReleaseLeaseService { /** [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 */ - @put - @operationId("Container_ReleaseLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Container_ReleaseLease") releaseLease( - ...ContainerNameParameter; - ...LeaseIdRequiredParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; + ...ContainerNameParameter, + ...LeaseIdRequiredParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, ): { @statusCode statusCode: 200; - ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ClientRequestIdResponseHeader; @@ -524,20 +519,20 @@ interface ContainerReleaseLeaseService { @route("/{containerName}?comp=lease&restype=container&renew") interface ContainerRenewLeaseService { /** [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 */ - @put - @operationId("Container_RenewLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Container_RenewLease") renewLease( - ...ContainerNameParameter; - ...LeaseIdRequiredParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; + ...ContainerNameParameter, + ...LeaseIdRequiredParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, ): { @statusCode statusCode: 200; ...LeaseIdResponseHeader; @@ -553,19 +548,19 @@ interface ContainerRenewLeaseService { @route("/{containerName}?comp=lease&restype=container&break") interface ConatinerBreakLeaseService { /** [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 */ - @put - @operationId("Container_BreakLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @operationId("Container_BreakLease") breakLease( - ...ContainerNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...LeaseBreakPeriodParameter; + ...ContainerNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...LeaseBreakPeriodParameter, ): { @statusCode statusCode: 202; ...LeaseTimeResponseHeader; @@ -580,21 +575,21 @@ interface ConatinerBreakLeaseService { @route("/{containerName}?comp=lease&restype=container&change") interface ContainerChangeLeaseService { /** [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 */ - @put - @operationId("Container_ChangeLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Container_ChangeLease") changeLease( - ...ContainerNameParameter; - ...LeaseIdRequiredParameter; - ...ProposedLeaseIdRequiredParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; + ...ContainerNameParameter, + ...LeaseIdRequiredParameter, + ...ProposedLeaseIdRequiredParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, ): { @statusCode statusCode: 200; ...LeaseIdResponseHeader; @@ -610,19 +605,19 @@ interface ContainerChangeLeaseService { @route("/{containerName}?restype=container&comp=list&flat") interface ContainerListBlobsService { /** [Update] The List Blobs operation returns a list of the blobs under the specified container */ - @get - @operationId("Container_ListBlobFlatSegment") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @get + @operationId("Container_ListBlobFlatSegment") getBlobs( - ...ContainerNameParameter; - ...PrefixParameter; - ...MarkerParameter; - ...MaxResultsParameter; - ...ListBlobsIncludeParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...PrefixParameter, + ...MarkerParameter, + ...MaxResultsParameter, + ...ListBlobsIncludeParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: ListBlobsFlatSegmentResponse; @@ -636,24 +631,23 @@ interface ContainerListBlobsService { @route("/{containerName}?restype=container&comp=list&hierarchy") interface ContainerListBlobsHierarchyService { /** [Update] The List Blobs operation returns a list of the blobs under the specified container */ - @get - @operationId("Container_ListBlobHierarchySegment") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @get + @operationId("Container_ListBlobHierarchySegment") getBlobs( - ...ContainerNameParameter; - ...DelimiterParameter; - ...PrefixParameter; - ...MarkerParameter; - ...MaxResultsParameter; - ...ListBlobsIncludeParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...DelimiterParameter, + ...PrefixParameter, + ...MarkerParameter, + ...MaxResultsParameter, + ...ListBlobsIncludeParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: ListBlobsHierarchySegmentResponse; - ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -663,16 +657,13 @@ interface ContainerListBlobsHierarchyService { @route("/{containerName}?restype=account&comp=properties") interface ContainerAccountInfoService { - /** Returns the sku name and account kind */ - @get - @operationId("Container_GetAccountInfo") + /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" - getAccountInfo( - ...ContainerNameParameter; - ...ApiVersionParameter; - ): { + @get + @operationId("Container_GetAccountInfo") + getAccountInfo(...ContainerNameParameter, ...ApiVersionParameter): { @statusCode statusCode: 200; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -686,32 +677,32 @@ interface ContainerAccountInfoService { @route("/{containerName}/{+blob}") interface BlobService { /** 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. */ - @get - @operationId("Blob_Download") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Blob_Download") downloadBlob( - ...ContainerNameParameter; - ...BlobNameParameter; - ...SnapshotParameter; - ...VersionIdParameter; - ...TimeoutParameter; - ...RangeParameter; - ...LeaseIdOptionalParameter; - ...GetRangeContentMd5Parameter; - ...GetRangeContentCrc64Parameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...ClientRequestIdParameter; - ...ApiVersionParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...SnapshotParameter, + ...VersionIdParameter, + ...TimeoutParameter, + ...RangeParameter, + ...LeaseIdOptionalParameter, + ...GetRangeContentMd5Parameter, + ...GetRangeContentCrc64Parameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...ClientRequestIdParameter, + ...ApiVersionParameter, ): { @statusCode statusCode: 200 | 206; ...BodyParameter; @@ -719,6 +710,7 @@ interface BlobService { // TODO: x-ms-meta headers // TODO: x-ms-or headers ...LastModifiedResponseHeader; + ...CreationTimeResponseHeader; ...ObjectReplicationPolicyIdResponseHeader; ...ContentRangeResponseHeader; @@ -752,39 +744,40 @@ interface BlobService { ...ImmutabilityPolicyExpiresOnResponseHeader; ...ImmutabilityPolicyModeResponseHeader; ...LegalHoldResponseHeader; - ...ContentLengthResponseHeader; ...EtagResponseHeader; } | 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. */ - @head - @operationId("Blob_GetProperties") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @head + @operationId("Blob_GetProperties") getBlobProperties( - ...ContainerNameParameter; - ...BlobNameParameter; - ...SnapshotParameter; - ...VersionIdParameter; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ClientRequestIdParameter; - ...ApiVersionParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...SnapshotParameter, + ...VersionIdParameter, + ...LeaseIdOptionalParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ClientRequestIdParameter, + ...ApiVersionParameter, ): { @statusCode statusCode: 200; + // TODO: x-ms-meta headers // TODO: x-ms-or headers ...LastModifiedResponseHeader; + ...CreationTimeResponseHeader; ...ObjectReplicationPolicyIdResponseHeader; ...BlobTypeResponseHeader; @@ -832,28 +825,28 @@ interface BlobService { ...LegalHoldResponseHeader; } | StorageError; - @delete /** 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). */ - @operationId("Blob_Delete") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @delete + @operationId("Blob_Delete") deleteBlob( - ...ContainerNameParameter; - ...BlobNameParameter; - ...SnapshotParameter; - ...VersionIdParameter; - ...TimeoutParameter; - ...LeaseIdOptionalParameter; - ...DeleteSnapshotsParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...BlobDeleteTypeParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...SnapshotParameter, + ...VersionIdParameter, + ...TimeoutParameter, + ...LeaseIdOptionalParameter, + ...DeleteSnapshotsParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...BlobDeleteTypeParameter, ): { @statusCode statusCode: 202; ...ClientRequestIdResponseHeader; @@ -866,44 +859,44 @@ interface BlobService { @route("/{containerName}/{blob}?PageBlob") interface PageBlobService { /** The Create operation creates a new page blob. */ - @put - @operationId("PageBlob_Create") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @operationId("PageBlob_Create") createPageBlob( // TODO: Metadata - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ContentLengthParameter; - ...PremiumPageBlobAccessTierOptional; - ...BlobContentTypeParameter; - ...BlobContentEncodingParameter; - ...BlobContentLanguageParameter; - ...BlobContentMd5Parameter; - ...BlobCacheControlParameter; - ...LeaseIdOptionalParameter; - ...BlobContentDispositionParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...BlobContentLengthRequiredParameter; - ...BlobSequenceNumberParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...BlobTagsHeaderParameter; - ...ImmutabilityPolicyExpiryParameter; - ...LegalHoldOptionalParameter; + ...ContainerNameParameter, + + ...BlobNameParameter, + ...TimeoutParameter, + ...ContentLengthParameter, + ...PremiumPageBlobAccessTierOptional, + ...BlobContentTypeParameter, + ...BlobContentEncodingParameter, + ...BlobContentLanguageParameter, + ...BlobContentMd5Parameter, + ...BlobCacheControlParameter, + ...LeaseIdOptionalParameter, + ...BlobContentDispositionParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...BlobContentLengthRequiredParameter, + ...BlobSequenceNumberParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...BlobTagsHeaderParameter, + ...ImmutabilityPolicyExpiryParameter, + ...LegalHoldOptionalParameter, ): { @statusCode statusCode: 201; - ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; @@ -920,43 +913,43 @@ interface PageBlobService { @route("/{containerName}/{blob}?AppendBlob") interface AppendBlobService { - @put /** The Create operation creates a new append blob. */ - @operationId("AppendBlob_Create") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @operationId("AppendBlob_Create") createAppendBlob( // TODO: Metadata - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ContentLengthParameter; - ...BlobContentTypeParameter; - ...BlobContentEncodingParameter; - ...BlobContentLanguageParameter; - ...BlobContentMd5Parameter; - ...BlobCacheControlParameter; - ...LeaseIdOptionalParameter; - ...BlobContentDispositionParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...BlobTagsHeaderParameter; - ...ImmutabilityPolicyExpiryParameter; - ...ImmutabilityPolicyModeParameter; - ...LegalHoldOptionalParameter; + ...ContainerNameParameter, + + ...BlobNameParameter, + ...TimeoutParameter, + ...ContentLengthParameter, + ...BlobContentTypeParameter, + ...BlobContentEncodingParameter, + ...BlobContentLanguageParameter, + ...BlobContentMd5Parameter, + ...BlobCacheControlParameter, + ...LeaseIdOptionalParameter, + ...BlobContentDispositionParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...BlobTagsHeaderParameter, + ...ImmutabilityPolicyExpiryParameter, + ...ImmutabilityPolicyModeParameter, + ...LegalHoldOptionalParameter, ): { @statusCode statusCode: 201; - ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; @@ -974,47 +967,47 @@ interface AppendBlobService { @route("/{containerName}/{blob}?BlockBlob") interface BlockBlobService { /** 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. */ - @put - @operationId("BlockBlob_Upload") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("BlockBlob_Upload") uploadBlockBlob( // TODO: Metadata - ...ContainerNameParameter; - ...BlobNameParameter; - ...BodyParameter; - ...TimeoutParameter; - ...ContentMd5Parameter; - ...BlobContentTypeParameter; - ...BlobContentEncodingParameter; - ...BlobContentLanguageParameter; - ...BlobContentMd5Parameter; - ...BlobCacheControlParameter; - ...LeaseIdOptionalParameter; - ...BlobContentDispositionParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...AccessTierOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...BlobTagsHeaderParameter; - ...ImmutabilityPolicyExpiryParameter; - ...ImmutabilityPolicyModeParameter; - ...LegalHoldOptionalParameter; - ...ContentCrc64Parameter; + ...ContainerNameParameter, + + ...BlobNameParameter, + ...BodyParameter, + ...TimeoutParameter, + ...ContentMd5Parameter, + ...BlobContentTypeParameter, + ...BlobContentEncodingParameter, + ...BlobContentLanguageParameter, + ...BlobContentMd5Parameter, + ...BlobCacheControlParameter, + ...LeaseIdOptionalParameter, + ...BlobContentDispositionParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...AccessTierOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...BlobTagsHeaderParameter, + ...ImmutabilityPolicyExpiryParameter, + ...ImmutabilityPolicyModeParameter, + ...LegalHoldOptionalParameter, + ...ContentCrc64Parameter, ): { @statusCode statusCode: 201; - ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; @@ -1030,54 +1023,54 @@ interface BlockBlobService { } @route("/{containerName}/{blob}?BlockBlob&fromUrl") -interface BlockBlobFromUrlService{ - @put +interface BlockBlobFromUrlService { /** 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. */ - @operationId("BlockBlob_PutBlobFromUrl") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("BlockBlob_PutBlobFromUrl") putBlockBlobFromUrl( // TODO: Metadata - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ContentMd5Parameter; - ...ContentLengthParameter; - ...BlobContentTypeParameter; - ...BlobContentEncodingParameter; - ...BlobContentLanguageParameter; - ...BlobContentMd5Parameter; - ...BlobCacheControlParameter; - ...LeaseIdOptionalParameter; - ...BlobContentDispositionParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...AccessTierOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...SourceIfModifiedSinceParameter; - ...SourceIfMatchParameter; - ...SourceIfNoneMatchParameter; - ...SourceIfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...SourceContentMd5Parameter; - ...BlobTagsHeaderParameter; - ...CopySourceParameter; - ...CopySourceBlobPropertiesParameter; - ...CopySourceAuthorizationParameter; - ...CopySourceTagsParameter; + ...ContainerNameParameter, + + ...BlobNameParameter, + ...TimeoutParameter, + ...ContentMd5Parameter, + ...ContentLengthParameter, + ...BlobContentTypeParameter, + ...BlobContentEncodingParameter, + ...BlobContentLanguageParameter, + ...BlobContentMd5Parameter, + ...BlobCacheControlParameter, + ...LeaseIdOptionalParameter, + ...BlobContentDispositionParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...AccessTierOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...SourceIfModifiedSinceParameter, + ...SourceIfMatchParameter, + ...SourceIfNoneMatchParameter, + ...SourceIfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...SourceContentMd5Parameter, + ...BlobTagsHeaderParameter, + ...CopySourceParameter, + ...CopySourceBlobPropertiesParameter, + ...CopySourceAuthorizationParameter, + ...CopySourceTagsParameter, ): { @statusCode statusCode: 201; - ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; @@ -1091,17 +1084,17 @@ interface BlockBlobFromUrlService{ @route("/{containerName}/{blob}?comp=undelete") interface BlobUndeleteService { - @post /** "Undelete a blob that was previously soft deleted" */ - @operationId("Blob_Undelete") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @post + @operationId("Blob_Undelete") undeleteBlob( - ...ContainerNameParameter; - ...BlobNameParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...ClientRequestIdResponseHeader; @@ -1113,19 +1106,19 @@ interface BlobUndeleteService { @route("/{containerName}/{blob}?comp=expiry") interface BlobExpirationService { - @post /** "Set the expiration time of a blob" */ - @operationId("Blob_SetExpiry") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @post + @operationId("Blob_SetExpiry") setBlobExpiry( - ...ContainerNameParameter; - ...BlobNameParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...BlobExpiryOptionsParameter; - ...BlobExpiryTimeParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...BlobExpiryOptionsParameter, + ...BlobExpiryTimeParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; @@ -1140,30 +1133,30 @@ interface BlobExpirationService { @route("/{containerName}/{blob}?comp=properties&SetHTTPHeaders") interface BlobSetHttpHeadersService { /** The Set HTTP Headers operation sets system properties on the blob. */ - @put - @operationId("Blob_SetHTTPHeaders") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Blob_SetHTTPHeaders") setHttpHeaders( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...BlobCacheControlParameter; - ...BlobContentTypeParameter; - ...BlobContentMd5Parameter; - ...BlobContentEncodingParameter; - ...BlobContentLanguageParameter; - ...LeaseIdOptionalParameter; - ...BlobContentDispositionParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...BlobCacheControlParameter, + ...BlobContentTypeParameter, + ...BlobContentMd5Parameter, + ...BlobContentEncodingParameter, + ...BlobContentLanguageParameter, + ...LeaseIdOptionalParameter, + ...BlobContentDispositionParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; @@ -1179,21 +1172,21 @@ interface BlobSetHttpHeadersService { @route("/{containerName}/{blob}?comp=immutabilityPolicies") interface BlobSetImmutabilityPolicyService { /** "Set the immutability policy of a blob" */ - @put - @operationId("Blob_SetImmutabilityPolicy") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Blob_SetImmutabilityPolicy") setImmutabilityPolicy( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...IfUnmodifiedSinceParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...ImmutabilityPolicyExpiryParameter; - ...ImmutabilityPolicyModeParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...IfUnmodifiedSinceParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...ImmutabilityPolicyExpiryParameter, + ...ImmutabilityPolicyModeParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; @@ -1207,17 +1200,17 @@ interface BlobSetImmutabilityPolicyService { } | StorageError; /** The Delete Immutability Policy operation deletes the immutability policy on the blob. */ - @delete - @operationId("Blob_DeleteImmutabilityPolicy") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @delete + @operationId("Blob_DeleteImmutabilityPolicy") deleteImmutabilityPolicy( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...ClientRequestIdResponseHeader; @@ -1230,19 +1223,19 @@ interface BlobSetImmutabilityPolicyService { @route("/{containerName}/{blob}?comp=legalhold") interface BlobLegalHoldService { /** The Set Legal Hold operation sets a legal hold on the blob. */ - @put - @operationId("Blob_SetLegalHold") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Blob_SetLegalHold") setLegalHold( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...LegalHoldRequiredParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...LegalHoldRequiredParameter, ): { @statusCode statusCode: 200; ...ClientRequestIdResponseHeader; @@ -1256,29 +1249,31 @@ interface BlobLegalHoldService { @route("/{containerName}/{blob}?comp=metadata") interface BlobSetMetadataService { /** The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs. */ - @put - @operationId("Blob_SetMetadata") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Blob_SetMetadata") setMetadata( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - // TODO: Metadata ...MetadataParameter; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + + // TODO: Metadata ...MetadataParameter; + ...LeaseIdOptionalParameter, + + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; @@ -1296,25 +1291,25 @@ interface BlobSetMetadataService { @route("/{containerName}/{blob}?comp=lease&acquire") interface BlobLeaseAcquireService { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ - @put - @operationId("Blob_AcquireLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Blob_AcquireLease") acquireLease( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...LeaseDurationParameter; - ...ProposedLeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...LeaseDurationParameter, + ...ProposedLeaseIdOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; @@ -1330,24 +1325,24 @@ interface BlobLeaseAcquireService { @route("/{containerName}/{blob}?comp=lease&release") interface BlobLeaseReleaseService { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ - @put - @operationId("Blob_ReleaseLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Blob_ReleaseLease") releaseLease( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...LeaseIdRequiredParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...LeaseIdRequiredParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; @@ -1362,24 +1357,24 @@ interface BlobLeaseReleaseService { @route("/{containerName}/{blob}?comp=lease&renew") interface BlobLeaseRenewService { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ - @put - @operationId("Blob_RenewLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Blob_RenewLease") renewLease( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...LeaseIdRequiredParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...LeaseIdRequiredParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; @@ -1395,25 +1390,25 @@ interface BlobLeaseRenewService { @route("/{containerName}/{blob}?comp=lease&change") interface BlobLeaseChangeService { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ - @put - @operationId("Blob_ChangeLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Blob_ChangeLease") changeLease( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...LeaseIdRequiredParameter; - ...ProposedLeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...LeaseIdRequiredParameter, + ...ProposedLeaseIdOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; @@ -1429,23 +1424,23 @@ interface BlobLeaseChangeService { @route("/{containerName}/{blob}?comp=lease&break") interface BlobLeaseBreakService { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ - @put - @operationId("Blob_BreakLease") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @operationId("Blob_BreakLease") breakLease( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...LeaseBreakPeriodParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...LeaseBreakPeriodParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, ): { @statusCode statusCode: 202; ...EtagResponseHeader; @@ -1461,28 +1456,30 @@ interface BlobLeaseBreakService { @route("/{containerName}/{blob}?comp=snapshot") interface BlobSnapshotService { /** The Create Snapshot operation creates a read-only snapshot of a blob */ - @put - @operationId("Blob_CreateSnapshot") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @operationId("Blob_CreateSnapshot") createSnapshot( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + // TODO: ...MetadataParameter; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...LeaseIdOptionalParameter, + + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; @@ -1499,37 +1496,39 @@ interface BlobSnapshotService { @route("/{containerName}/{blob}?comp=copy") interface BlobCopyService { /** The Start Copy From URL operation copies a blob or an internet resource to a new blob. */ - @put - @operationId("Blob_StartCopyFromURL") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @operationId("Blob_StartCopyFromURL") startCopyFromUrl( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + // TODO: ...MetadataParameter; - ...AccessTierOptionalParameter; - ...RehydratePriorityParameter; - ...SourceIfModifiedSinceParameter; - ...SourceIfUnmodifiedSinceParameter; - ...SourceIfMatchParameter; - ...SourceIfNoneMatchParameter; - ...SourceIfTagsParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...CopySourceParameter; - ...LeaseIdOptionalParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...BlobTagsHeaderParameter; - ...SealBlobParameter; - ...ImmutabilityPolicyExpiryParameter; - ...ImmutabilityPolicyModeParameter; - ...LegalHoldOptionalParameter; + ...AccessTierOptionalParameter, + + ...RehydratePriorityParameter, + ...SourceIfModifiedSinceParameter, + ...SourceIfUnmodifiedSinceParameter, + ...SourceIfMatchParameter, + ...SourceIfNoneMatchParameter, + ...SourceIfTagsParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...CopySourceParameter, + ...LeaseIdOptionalParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...BlobTagsHeaderParameter, + ...SealBlobParameter, + ...ImmutabilityPolicyExpiryParameter, + ...ImmutabilityPolicyModeParameter, + ...LegalHoldOptionalParameter, ): { @statusCode statusCode: 202; ...EtagResponseHeader; @@ -1547,38 +1546,40 @@ interface BlobCopyService { @route("/{containerName}/{blob}?comp=copy&sync") interface BlobCopySyncService { /** 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. */ - @put - @operationId("Blob_AbortCopyFromURL") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @operationId("Blob_AbortCopyFromURL") copyFromUrl( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + // TODO: ...MetadataParameter; - ...AccessTierOptionalParameter; - ...SourceIfModifiedSinceParameter; - ...SourceIfUnmodifiedSinceParameter; - ...SourceIfMatchParameter; - ...SourceIfNoneMatchParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...CopySourceParameter; - ...LeaseIdOptionalParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...SourceContentMd5Parameter; - ...BlobTagsHeaderParameter; - ...ImmutabilityPolicyExpiryParameter; - ...ImmutabilityPolicyModeParameter; - ...LegalHoldOptionalParameter; - ...CopySourceAuthorizationParameter; - ...EncryptionScopeParameter; - ...CopySourceTagsParameter; + ...AccessTierOptionalParameter, + + ...SourceIfModifiedSinceParameter, + ...SourceIfUnmodifiedSinceParameter, + ...SourceIfMatchParameter, + ...SourceIfNoneMatchParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...CopySourceParameter, + ...LeaseIdOptionalParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...SourceContentMd5Parameter, + ...BlobTagsHeaderParameter, + ...ImmutabilityPolicyExpiryParameter, + ...ImmutabilityPolicyModeParameter, + ...LegalHoldOptionalParameter, + ...CopySourceAuthorizationParameter, + ...EncryptionScopeParameter, + ...CopySourceTagsParameter, ): { @statusCode statusCode: 202; ...EtagResponseHeader; @@ -1598,18 +1599,18 @@ interface BlobCopySyncService { @route("/{containerName}/{blob}?comp=copy©id") interface BlobCopyAbortService { /** The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination blob with zero length and full metadata. */ - @put - @operationId("Blob_AbortCopyFromURL") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @put + @operationId("Blob_AbortCopyFromURL") abortCopyFromUrl( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...CopyIdParameter; - ...LeaseIdOptionalParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...CopyIdParameter, + ...LeaseIdOptionalParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 204; ...ClientRequestIdResponseHeader; @@ -1622,23 +1623,22 @@ interface BlobCopyAbortService { @route("/{containerName}/{blob}?comp=tier") interface BlobTierService { /** 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. */ - @put - @operationId("Blob_SetTier") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("Blob_SetTier") setTier( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...AccessTierRequiredParameter; - ...RehydratePriorityParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...LeaseIdOptionalParameter; - ...IfTagsParameter; - + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...AccessTierRequiredParameter, + ...RehydratePriorityParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...LeaseIdOptionalParameter, + ...IfTagsParameter, ): { @statusCode statusCode: 200; ...ClientRequestIdResponseHeader; @@ -1655,16 +1655,16 @@ interface BlobTierService { @route("/{containerName}/{blob}?restype=account&comp=properties") interface BlobAccountPropertiesService { /** Returns the sku name and account kind */ - @get - @operationId("Blob_GetAccountInfo") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @get + @operationId("Blob_GetAccountInfo") getAccountInfo( - ...ContainerNameParameter; - ...BlobNameParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...ClientRequestIdResponseHeader; @@ -1679,28 +1679,28 @@ interface BlobAccountPropertiesService { @route("/{containerName}/{blob}?comp=block") interface BlobBlockStageService { /** The Stage Block operation creates a new block to be committed as part of a blob */ - @put - @operationId("BlockBlob_StageBlock") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("BlockBlob_StageBlock") stageBlock( - ...BodyParameter; - ...ContainerNameParameter; - ...BlobNameParameter; - ...BlockIdParameter; - ...ContentLengthParameter; - ...ContentMd5Parameter; - ...TimeoutParameter; - ...ContentCrc64Parameter; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...BodyParameter, + ...ContainerNameParameter, + ...BlobNameParameter, + ...BlockIdParameter, + ...ContentLengthParameter, + ...ContentMd5Parameter, + ...TimeoutParameter, + ...ContentCrc64Parameter, + ...LeaseIdOptionalParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; ...ClientRequestIdResponseHeader; @@ -1711,41 +1711,41 @@ interface BlobBlockStageService { ...ContentCrc64ResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader + ...EncryptionScopeResponseHeader; } | StorageError; } @route("/{containerName}/{blob}?comp=block&fromURL") interface BlobBlockStageFromUrlService { /** 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. */ - @put - @operationId("BlockBlob_StageBlockFromURL") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("BlockBlob_StageBlockFromURL") stageBlockFromUrl( - ...ContainerNameParameter; - ...BlobNameParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...BlockIdParameter; - ...ContentLengthParameter; - ...SourceUrlParameter; - ...SourceRangeParameter; - ...SourceContentMd5Parameter; - ...SourceContentCrc64Parameter; - ...TimeoutParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...LeaseIdOptionalParameter; - ...SourceIfModifiedSinceParameter; - ...SourceIfUnmodifiedSinceParameter; - ...SourceIfMatchParameter; - ...SourceIfNoneMatchParameter; - ...CopySourceAuthorizationParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...BlockIdParameter, + ...ContentLengthParameter, + ...SourceUrlParameter, + ...SourceRangeParameter, + ...SourceContentMd5Parameter, + ...SourceContentCrc64Parameter, + ...TimeoutParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...LeaseIdOptionalParameter, + ...SourceIfModifiedSinceParameter, + ...SourceIfUnmodifiedSinceParameter, + ...SourceIfMatchParameter, + ...SourceIfNoneMatchParameter, + ...CopySourceAuthorizationParameter, ): { @statusCode statusCode: 201; ...ClientRequestIdResponseHeader; @@ -1763,42 +1763,44 @@ interface BlobBlockStageFromUrlService { @route("/{containerName}/{blob}?comp=blocklist") interface BlobBlockListService { /** 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. */ - @put - @operationId("BlockBlob_CommitBlockList") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("BlockBlob_CommitBlockList") commitBlockList( - ...BlobBlocksParameter; - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...BlobCacheControlParameter; - ...BlobContentTypeParameter; - ...BlobContentEncodingParameter; - ...BlobContentLanguageParameter; - ...BlobContentMd5Parameter; - ...ContentMd5Parameter; - ...ContentCrc64Parameter; + ...BlobBlocksParameter, + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...BlobCacheControlParameter, + ...BlobContentTypeParameter, + ...BlobContentEncodingParameter, + ...BlobContentLanguageParameter, + ...BlobContentMd5Parameter, + ...ContentMd5Parameter, + ...ContentCrc64Parameter, + // TODO: ...MetadataParameter; - ...BlobContentDispositionParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...AccessTierOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...BlobTagsHeaderParameter; - ...ImmutabilityPolicyExpiryParameter; - ...ImmutabilityPolicyModeParameter; - ...LegalHoldOptionalParameter; + ...BlobContentDispositionParameter, + + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...AccessTierOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...BlobTagsHeaderParameter, + ...ImmutabilityPolicyExpiryParameter, + ...ImmutabilityPolicyModeParameter, + ...LegalHoldOptionalParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; @@ -1815,26 +1817,24 @@ interface BlobBlockListService { } | StorageError; /** The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob. */ - @get - @operationId("BlockBlob_GetBlockList") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @get + @operationId("BlockBlob_GetBlockList") getBlockList( - ...ContainerNameParameter; - ...BlobNameParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...SnapshotParameter; - ...BlockListTypeParameter; - ...LeaseIdOptionalParameter; - ...IfTagsParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...SnapshotParameter, + ...BlockListTypeParameter, + ...LeaseIdOptionalParameter, + ...IfTagsParameter, ): { @statusCode statusCode: 200; @body body: BlockLookupList; - ...LastModifiedResponseHeader; ...EtagResponseHeader; - ...BlobContentLengthResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; @@ -1846,38 +1846,38 @@ interface BlobBlockListService { @route("/{containerName}/{blob}?comp=page&update") interface PageBlobUpdateService { /** The Upload Pages operation writes a range of pages to a page blob */ - @put - @operationId("PageBlob_UploadPages") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("PageBlob_UploadPages") uploadPages( /** The data to upload. */ - ...BodyParameter; - - ...ContainerNameParameter; - ...BlobNameParameter; - ...ContentLengthParameter; - ...ContentMd5Parameter; - ...ContentCrc64Parameter; - ...TimeoutParameter; - ...RangeParameter; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...IfSequenceNumberLessThanOrEqualToParameter; - ...IfSequenceNumberLessThanParameter; - ...IfSequenceNumberEqualToParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...BodyParameter, + + ...ContainerNameParameter, + ...BlobNameParameter, + ...ContentLengthParameter, + ...ContentMd5Parameter, + ...ContentCrc64Parameter, + ...TimeoutParameter, + ...RangeParameter, + ...LeaseIdOptionalParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...IfSequenceNumberLessThanOrEqualToParameter, + ...IfSequenceNumberLessThanParameter, + ...IfSequenceNumberEqualToParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; @@ -1898,29 +1898,29 @@ interface PageBlobUpdateService { @route("/{containerName}/{blob}?comp=page&clear") interface PageBlobClearService { /** The Clear Pages operation clears a range of pages from a page blob */ - @put - @operationId("PageBlob_ClearPages") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("PageBlob_ClearPages") clearPages( - ...ContainerNameParameter; - ...BlobNameParameter; - ...ContentLengthParameter; - ...TimeoutParameter; - ...RangeParameter; - ...LeaseIdOptionalParameter; - ...IfSequenceNumberLessThanOrEqualToParameter; - ...IfSequenceNumberLessThanParameter; - ...IfSequenceNumberEqualToParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...ContentLengthParameter, + ...TimeoutParameter, + ...RangeParameter, + ...LeaseIdOptionalParameter, + ...IfSequenceNumberLessThanOrEqualToParameter, + ...IfSequenceNumberLessThanParameter, + ...IfSequenceNumberEqualToParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; @@ -1936,41 +1936,41 @@ interface PageBlobClearService { @route("/{containerName}/{blob}?comp=page&update&fromUrl") interface BlobPageUpdateFromUrlService { /** The Upload Pages operation writes a range of pages to a page blob where the contents are read from a URL. */ - @put - @operationId("PageBlob_UploadPagesFromURL") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @operationId("PageBlob_UploadPagesFromURL") uploadPagesFromUrl( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ContentLengthParameter; - ...SourceUrlParameter; - ...SourceRangeRequiredPutPageFromUrlParameter; - ...SourceContentMd5Parameter; - ...SourceContentCrc64Parameter; - ...RangeRequiredPutPageFromUrlParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...LeaseIdOptionalParameter; - ...IfSequenceNumberLessThanOrEqualToParameter; - ...IfSequenceNumberLessThanParameter; - ...IfSequenceNumberEqualToParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...SourceIfModifiedSinceParameter; - ...SourceIfUnmodifiedSinceParameter; - ...SourceIfMatchParameter; - ...SourceIfNoneMatchParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...CopySourceAuthorizationParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ContentLengthParameter, + ...SourceUrlParameter, + ...SourceRangeRequiredPutPageFromUrlParameter, + ...SourceContentMd5Parameter, + ...SourceContentCrc64Parameter, + ...RangeRequiredPutPageFromUrlParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...LeaseIdOptionalParameter, + ...IfSequenceNumberLessThanOrEqualToParameter, + ...IfSequenceNumberLessThanParameter, + ...IfSequenceNumberEqualToParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...SourceIfModifiedSinceParameter, + ...SourceIfUnmodifiedSinceParameter, + ...SourceIfMatchParameter, + ...SourceIfNoneMatchParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...CopySourceAuthorizationParameter, ): { @statusCode statusCode: 202; ...EtagResponseHeader; @@ -1991,29 +1991,28 @@ interface BlobPageUpdateFromUrlService { @route("/{containerName}/{blob}?comp=pagelist") interface PageBlobListService { /** The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob. */ - @get - @operationId("PageBlob_GetPageRanges") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @get + @operationId("PageBlob_GetPageRanges") getPageRanges( - ...ContainerNameParameter; - ...BlobNameParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...SnapshotParameter; - ...RangeParameter; - ...LeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...MarkerParameter; - ...MaxResultsParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...SnapshotParameter, + ...RangeParameter, + ...LeaseIdOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...MarkerParameter, + ...MaxResultsParameter, ): { @statusCode statusCode: 200; @body body: PageList; - ...LastModifiedResponseHeader; ...EtagResponseHeader; ...BlobContentLengthResponseHeader; @@ -2027,32 +2026,31 @@ interface PageBlobListService { @route("/{containerName}/{blob}?comp=pagelist&diff") interface PageBlobDiffService { /** The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob or snapshot of a page blob. */ - @get - @operationId("PageBlob_GetPageRangesDiff") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @get + @operationId("PageBlob_GetPageRangesDiff") getPageRangesDiff( - ...ContainerNameParameter; - ...BlobNameParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...SnapshotParameter; - ...TimeoutParameter; - ...PrevSnapshotParameter; - ...PrevSnapshotUrlParameter; - ...RangeParameter; - ...LeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...MarkerParameter; - ...MaxResultsParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...SnapshotParameter, + ...TimeoutParameter, + ...PrevSnapshotParameter, + ...PrevSnapshotUrlParameter, + ...RangeParameter, + ...LeaseIdOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...MarkerParameter, + ...MaxResultsParameter, ): { @statusCode statusCode: 200; @body body: PageList; - ...LastModifiedResponseHeader; ...EtagResponseHeader; ...BlobContentLengthResponseHeader; @@ -2066,29 +2064,29 @@ interface PageBlobDiffService { @route("/{containerName}/{blob}?comp=properties&Resize") interface PageBlobResizeService { /** The Resize operation increases the size of the page blob to the specified size. */ - @put - @operationId("PageBlob_Resize") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("PageBlob_Resize") resize( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...BlobContentLengthRequiredParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...LeaseIdOptionalParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...BlobContentLengthRequiredParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; @@ -2104,26 +2102,26 @@ interface PageBlobResizeService { @route("/{containerName}/{blob}?comp=properties&UpdateSequenceNumber") interface PageBlobUpdateSequenceNumberService { /** 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. */ - @put - @operationId("PageBlob_UpdateSequenceNumber") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("PageBlob_UpdateSequenceNumber") updateSequenceNumber( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...LeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...SequenceNumberActionParameter; - ...SequenceNumberParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...LeaseIdOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...SequenceNumberActionParameter, + ...SequenceNumberParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; @@ -2139,24 +2137,24 @@ interface PageBlobUpdateSequenceNumberService { @route("/{containerName}/{blob}?comp=incrementalcopy") interface PageBlobIncrementalCopyService { /** 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. */ - @put - @operationId("PageBlob_CopyIncremental") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @operationId("PageBlob_CopyIncremental") incrementalCopy( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...LeaseIdOptionalParameter; - ...CopySourceParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...LeaseIdOptionalParameter, + ...CopySourceParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 202; ...EtagResponseHeader; @@ -2173,35 +2171,36 @@ interface PageBlobIncrementalCopyService { @route("/{containerName}/{blob}?comp=appendblock") interface AppendBlobAppendBlockService { /** The Append Block operation commits a new block of data to the end of an append blob. */ - @put - @operationId("AppendBlob_AppendBlock") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("AppendBlob_AppendBlock") appendBlock( /** The data to upload. */ - ...BodyParameter; - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ContentLengthParameter; - ...ContentMd5Parameter; - ...ContentCrc64Parameter; - ...LeaseIdOptionalParameter; - ...BlobConditionMaxSizeParameter; - ...BlobConditionAppendPosParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...BodyParameter, + + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ContentLengthParameter, + ...ContentMd5Parameter, + ...ContentCrc64Parameter, + ...LeaseIdOptionalParameter, + ...BlobConditionMaxSizeParameter, + ...BlobConditionAppendPosParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; @@ -2224,36 +2223,36 @@ interface AppendBlobAppendBlockService { @route("/{containerName}/{blob}?comp=appendblock&fromUrl") interface AppendBlockAppendBlockFromUrlService { /** 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. */ - @put - @operationId("AppendBlob_AppendBlockFromURL") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 + @operationId("AppendBlob_AppendBlockFromURL") appendBlockFromUrl( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ContentLengthParameter; - ...SourceUrlParameter; - ...SourceRangeParameter; - ...SourceContentMd5Parameter; - ...SourceContentCrc64Parameter; - ...LeaseIdOptionalParameter; - ...BlobConditionMaxSizeParameter; - ...BlobConditionAppendPosParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...CopySourceAuthorizationParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ContentLengthParameter, + ...SourceUrlParameter, + ...SourceRangeParameter, + ...SourceContentMd5Parameter, + ...SourceContentCrc64Parameter, + ...LeaseIdOptionalParameter, + ...BlobConditionMaxSizeParameter, + ...BlobConditionAppendPosParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...CopySourceAuthorizationParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; @@ -2274,26 +2273,26 @@ interface AppendBlockAppendBlockFromUrlService { @route("/{containerName}/{blob}?comp=seal") interface AppendBlobSealService { - /** The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version 2019-12-12 version or later.*/ - @put - @operationId("AppendBlob_Seal") + /** 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-operation-id" "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 + @operationId("AppendBlob_Seal") seal( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...LeaseIdOptionalParameter; - ...BlobConditionAppendPosParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...LeaseIdOptionalParameter, + ...BlobConditionAppendPosParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; @@ -2309,35 +2308,36 @@ interface AppendBlobSealService { @route("/{containerName}/{blob}?comp=query") interface BlobQueryService { /** The Query operation enables users to select/project on blob data by providing simple query expressions. */ - @post - @operationId("Blob_Query") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @post + @operationId("Blob_Query") query( - ...QueryRequestParameter; - ...ContainerNameParameter; - ...BlobNameParameter; - ...SnapshotParameter; - ...TimeoutParameter; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; - ...IfTagsParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; + ...QueryRequestParameter, + ...ContainerNameParameter, + ...BlobNameParameter, + ...SnapshotParameter, + ...TimeoutParameter, + ...LeaseIdOptionalParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, ): { @statusCode statusCode: 200 | 206; ...BodyParameter; + // TODO: MetadataResponseHeader; ...LastModifiedResponseHeader; + ...ContentLengthResponseHeader; - ...ContentRangeResponseHeader; ...EtagResponseHeader; ...ContentMd5ResponseHeader; @@ -2371,24 +2371,23 @@ interface BlobQueryService { @route("/{containerName}/{blob}?comp=tags") interface BlobTagsService { /** The Get Blob Tags operation enables users to get tags on a blob. */ - @get - @operationId("Blob_GetTags") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @get + @operationId("Blob_GetTags") getTags( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...SnapshotParameter; - ...VersionIdParameter; - ...LeaseIdOptionalParameter; - ...IfTagsParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...SnapshotParameter, + ...VersionIdParameter, + ...LeaseIdOptionalParameter, + ...IfTagsParameter, ): { @statusCode statusCode: 200; @body body: BlobTags; - ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; @@ -2396,22 +2395,22 @@ interface BlobTagsService { } | StorageError; /** The Set Tags operation enables users to set tags on a blob. */ - @put - @operationId("Blob_SetTags") #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @put + @operationId("Blob_SetTags") setTags( - ...ContainerNameParameter; - ...BlobNameParameter; - ...TimeoutParameter; - ...ApiVersionParameter; - ...ClientRequestIdParameter; - ...VersionIdParameter; - ...LeaseIdOptionalParameter; - ...ContentMd5Parameter; - ...ContentCrc64Parameter; - ...IfTagsParameter; - ...BlobTagsBodyParameter; + ...ContainerNameParameter, + ...BlobNameParameter, + ...TimeoutParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...VersionIdParameter, + ...LeaseIdOptionalParameter, + ...ContentMd5Parameter, + ...ContentCrc64Parameter, + ...IfTagsParameter, + ...BlobTagsBodyParameter, ): { @statusCode statusCode: 204; ...ClientRequestIdResponseHeader; From 298ec0b59c4f2f15bdb0ae2967bad38f459ae567 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Mon, 30 Sep 2024 14:49:54 -0700 Subject: [PATCH 031/129] fix blob path param --- specification/storage/Microsoft.BlobStorage/routes.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 39afd6ce75d9..69e38c52ce27 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -674,7 +674,7 @@ interface ContainerAccountInfoService { } | StorageError; } -@route("/{containerName}/{+blob}") +@route("/{containerName}/{blob}") interface BlobService { /** 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" From 48be60afc762a9413cbf462da13a7c1525b31f0d Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Mon, 30 Sep 2024 14:50:17 -0700 Subject: [PATCH 032/129] regen openapi --- .../stable/0000-00-00/openapi.json | 12110 ++++++++++------ 1 file changed, 7908 insertions(+), 4202 deletions(-) diff --git a/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json b/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json index 00943838d3a6..32b113e5c9d8 100644 --- a/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json +++ b/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json @@ -66,13 +66,28 @@ "description": "Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", "parameters": [ { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { @@ -109,13 +124,28 @@ "description": "Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", "parameters": [ { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { "name": "body", @@ -158,13 +188,28 @@ "description": "The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS.", "parameters": [ { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { "name": "body", @@ -212,25 +257,54 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -240,22 +314,49 @@ "format": "date-time-rfc1123", "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", "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-default-encryption-scope": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "The default encryption scope for the container." }, - "x-ms-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-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." }, - "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-has-immutability-policy": { + "type": "boolean", + "description": "Indicates if a blob has an active immutability policy." + }, + "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": "string", @@ -269,12 +370,12 @@ "modelAsString": true, "values": [ { - "name": "infinite", + "name": "Infinite", "value": "infinite", "description": "The lease is of infinite duration." }, { - "name": "fixed", + "name": "Fixed", "value": "fixed", "description": "The lease is of fixed duration." } @@ -296,27 +397,27 @@ "modelAsString": true, "values": [ { - "name": "available", + "name": "Available", "value": "available", "description": "The lease is available." }, { - "name": "leased", + "name": "Leased", "value": "leased", "description": "The lease is currently leased." }, { - "name": "expired", + "name": "Expired", "value": "expired", "description": "The lease is expired." }, { - "name": "breaking", + "name": "Breaking", "value": "breaking", "description": "The lease is breaking." }, { - "name": "broken", + "name": "Broken", "value": "broken", "description": "The lease is broken." } @@ -335,61 +436,29 @@ "modelAsString": true, "values": [ { - "name": "unlocked", + "name": "Unlocked", "value": "unlocked", "description": "The lease is unlocked." }, { - "name": "locked", + "name": "Locked", "value": "locked", "description": "The lease is locked." } ] } }, - "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-has-immutability-policy": { - "type": "boolean", - "description": "Indicates if a blob has an active immutability policy." - }, "x-ms-legal-hold": { "type": "boolean", "description": "Indicates if a blob has a legal hold." }, - "x-ms-default-encryption-scope": { + "x-ms-request-id": { "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." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-immutable-storage-with-versioning-enabled": { - "type": "boolean", - "description": "Indicates whether version level worm is enabled on a container" + "x-ms-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." } } }, @@ -406,31 +475,90 @@ "description": "Creates a new container under the specified account. If the container with the same name already exists, the operation fails.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobPublicAccessParameter" + "name": "x-ms-blob-public-access", + "in": "header", + "description": "Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'.", + "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": "publicAccess" }, { - "$ref": "#/parameters/DefaultEncryptionScopeParameter" + "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/DenyEncryptionScopeOverrideParameter" + "name": "x-ms-deny-encryption-scope-override", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container.", + "required": false, + "type": "boolean", + "x-ms-client-name": "denyEncryptionScopeOverride" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "201": { "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -451,11 +579,6 @@ "x-ms-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" } } }, @@ -472,22 +595,54 @@ "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ContentLengthParameter" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/BodyParameter" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "responses": { @@ -521,31 +676,72 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { + "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-client-request-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." @@ -557,11 +753,6 @@ "x-ms-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" } } }, @@ -580,61 +771,157 @@ "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.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/SnapshotParameter" + "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/VersionIdParameter" + "name": "versionid", + "in": "header", + "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": true, + "type": "string" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/RangeParameter" + "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/LeaseIdOptionalParameter" + "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/GetRangeContentMd5Parameter" + "name": "x-ms-range-get-content-md5", + "in": "header", + "description": "Optional. When this header is set to true and specified together with the Range header, 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": "rangeContentMd5" }, { - "$ref": "#/parameters/GetRangeContentCrc64Parameter" + "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": "rangeContentCrc64" }, { - "$ref": "#/parameters/EncryptionKeyParameter" + "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/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$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" } ], "responses": { @@ -645,43 +932,56 @@ "format": "byte" }, "headers": { - "Last-Modified": { + "Accept-Ranges": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "description": "Indicates that the service supports requests for partial blob content." }, - "x-ms-creation-time": { + "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-or-policy-id": { + "Content-Disposition": { "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 '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-Range": { + "Content-Encoding": { "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." + "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." }, - "Content-Encoding": { + "Content-Range": { "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "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." }, - "Cache-Control": { + "ETag": { "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "Content-Disposition": { + "Last-Modified": { "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": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "Content-Language": { - "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." + "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": { "type": "integer", @@ -723,10 +1023,6 @@ "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": { - "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": { "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." @@ -735,6 +1031,10 @@ "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.", @@ -749,92 +1049,149 @@ "modelAsString": true, "values": [ { - "name": "pending", + "name": "Pending", "value": "pending", "description": "The copy operation is pending." }, { - "name": "success", + "name": "Success", "value": "success", "description": "The copy operation succeeded." }, { - "name": "failed", + "name": "Failed", "value": "failed", "description": "The copy operation failed." }, { - "name": "aborted", + "name": "Aborted", "value": "aborted", "description": "The copy operation is aborted." } ] } }, - "x-ms-copy-source": { + "x-ms-copy-status-description": { "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." + "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-lease-duration": { + "x-ms-creation-time": { "type": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", + "format": "date-time-rfc1123", + "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": [ - "infinite", - "fixed" + "Mutable", + "Locked", + "Unlocked" ], "x-ms-enum": { - "name": "LeaseDuration", + "name": "BlobImmutabilityPolicyMode", "modelAsString": true, "values": [ { - "name": "infinite", - "value": "infinite", - "description": "The lease is of infinite duration." + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." }, { - "name": "fixed", - "value": "fixed", - "description": "The lease is of fixed duration." + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." } ] } }, - "x-ms-lease-state": { + "x-ms-immutability-policy-until-date": { "type": "string", - "description": "Lease state of the blob.", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { + "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-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-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-lease-duration": { + "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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", + "name": "Available", "value": "available", "description": "The lease is available." }, { - "name": "leased", + "name": "Leased", "value": "leased", "description": "The lease is currently leased." }, { - "name": "expired", + "name": "Expired", "value": "expired", "description": "The lease is expired." }, { - "name": "breaking", + "name": "Breaking", "value": "breaking", "description": "The lease is breaking." }, { - "name": "broken", + "name": "Broken", "value": "broken", "description": "The lease is broken." } @@ -853,112 +1210,42 @@ "modelAsString": true, "values": [ { - "name": "unlocked", + "name": "Unlocked", "value": "unlocked", "description": "The lease is unlocked." }, { - "name": "locked", + "name": "Locked", "value": "locked", "description": "The lease is locked." } ] } }, - "x-ms-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": { - "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-legal-hold": { "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." + "description": "Specifies the legal hold status to set on the blob." }, - "Accept-Ranges": { + "x-ms-or-policy-id": { "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "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." + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." }, "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-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-tag-count": { "type": "integer", "format": "int64", "description": "The number of tags associated with the blob" }, - "x-ms-blob-sealed": { - "type": "boolean", - "description": "If this blob has been sealed" - }, - "x-ms-last-access-time": { - "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": { - "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-version": { "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-legal-hold": { - "type": "boolean", - "description": "Specifies the legal hold status to set on the blob." - }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." + "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." }, - "ETag": { + "x-ms-version-id": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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." } } }, @@ -969,43 +1256,56 @@ "format": "byte" }, "headers": { - "Last-Modified": { + "Accept-Ranges": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "description": "Indicates that the service supports requests for partial blob content." }, - "x-ms-creation-time": { + "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-or-policy-id": { + "Content-Disposition": { "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 '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-Range": { + "Content-Encoding": { "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." + "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." }, - "Content-Encoding": { + "Content-Range": { "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "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." }, - "Cache-Control": { + "ETag": { "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "Content-Disposition": { + "Last-Modified": { "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": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "Content-Language": { - "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." + "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": { "type": "integer", @@ -1047,10 +1347,6 @@ "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": { - "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": { "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." @@ -1059,6 +1355,10 @@ "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.", @@ -1073,31 +1373,88 @@ "modelAsString": true, "values": [ { - "name": "pending", + "name": "Pending", "value": "pending", "description": "The copy operation is pending." }, { - "name": "success", + "name": "Success", "value": "success", "description": "The copy operation succeeded." }, { - "name": "failed", + "name": "Failed", "value": "failed", "description": "The copy operation failed." }, { - "name": "aborted", + "name": "Aborted", "value": "aborted", "description": "The copy operation is aborted." } ] } }, - "x-ms-copy-source": { + "x-ms-copy-status-description": { "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." + "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-rfc1123", + "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-rfc1123", + "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-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-lease-duration": { "type": "string", @@ -1111,12 +1468,12 @@ "modelAsString": true, "values": [ { - "name": "infinite", + "name": "Infinite", "value": "infinite", "description": "The lease is of infinite duration." }, { - "name": "fixed", + "name": "Fixed", "value": "fixed", "description": "The lease is of fixed duration." } @@ -1138,27 +1495,27 @@ "modelAsString": true, "values": [ { - "name": "available", + "name": "Available", "value": "available", "description": "The lease is available." }, { - "name": "leased", + "name": "Leased", "value": "leased", "description": "The lease is currently leased." }, { - "name": "expired", + "name": "Expired", "value": "expired", "description": "The lease is expired." }, { - "name": "breaking", + "name": "Breaking", "value": "breaking", "description": "The lease is breaking." }, { - "name": "broken", + "name": "Broken", "value": "broken", "description": "The lease is broken." } @@ -1177,112 +1534,42 @@ "modelAsString": true, "values": [ { - "name": "unlocked", + "name": "Unlocked", "value": "unlocked", "description": "The lease is unlocked." }, { - "name": "locked", + "name": "Locked", "value": "locked", "description": "The lease is locked." } ] } }, - "x-ms-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": { - "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-legal-hold": { "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." + "description": "Specifies the legal hold status to set on the blob." }, - "Accept-Ranges": { + "x-ms-or-policy-id": { "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "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." + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." }, "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-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-tag-count": { "type": "integer", "format": "int64", "description": "The number of tags associated with the blob" }, - "x-ms-blob-sealed": { - "type": "boolean", - "description": "If this blob has been sealed" - }, - "x-ms-last-access-time": { - "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": { - "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-version": { "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-legal-hold": { - "type": "boolean", - "description": "Specifies the legal hold status to set on the blob." - }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." + "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." }, - "ETag": { + "x-ms-version-id": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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." } } }, @@ -1299,94 +1586,245 @@ "description": "The Create operation creates a new page blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/ContentLengthParameter" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" }, { - "$ref": "#/parameters/BlobContentTypeParameter" + "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/BlobContentEncodingParameter" + "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/BlobContentLanguageParameter" + "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/BlobContentMd5Parameter" + "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", + "x-ms-client-name": "blobContentMd5" }, { - "$ref": "#/parameters/BlobCacheControlParameter" + "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/LeaseIdOptionalParameter" + "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/BlobContentDispositionParameter" + "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/EncryptionKeyParameter" + "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/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/EncryptionScopeParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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/BlobContentLengthRequiredParameter" + "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/BlobSequenceNumberParameter" + "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/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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/BlobTagsHeaderParameter" + "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": "blobTags" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/LegalHoldOptionalParameter" + "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" } ], "responses": { "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-rfc1123", + "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." @@ -1396,42 +1834,33 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, - "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-client-request-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." }, - "x-ms-request-id": { - "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-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-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" + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-encryption-key-sha256": { + "x-ms-version": { "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": "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-encryption-scope": { + "x-ms-version-id": { "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" + "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." } } }, @@ -1448,22 +1877,48 @@ "description": "\"Undelete a blob that was previously soft deleted\"", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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": "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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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-client-request-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." @@ -1475,11 +1930,6 @@ "x-ms-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" } } }, @@ -1496,55 +1946,175 @@ "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/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" - }, - { - "$ref": "#/parameters/SnapshotParameter" - }, - { - "$ref": "#/parameters/VersionIdParameter" - }, - { - "$ref": "#/parameters/TimeoutParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/DeleteSnapshotsParameter" + "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/IfModifiedSinceParameter" + "name": "versionid", + "in": "header", + "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": true, + "type": "string" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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" + }, + { + "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": [ + "none", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": true, + "values": [ + { + "name": "Nonne", + "value": "none", + "description": "The delete snapshots include option is not specified." + }, + { + "name": "Include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] + }, + "x-ms-client-name": "deleteSnapshots" }, { - "$ref": "#/parameters/IfMatchParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfTagsParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "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/BlobDeleteTypeParameter" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" + }, + { + "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": [ + "none", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": true, + "values": [ + { + "name": "Nonne", + "value": "none", + "description": "The delete snapshots include option is not specified." + }, + { + "name": "Include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] + } } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { + "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-client-request-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." @@ -1556,11 +2126,6 @@ "x-ms-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" } } }, @@ -1577,325 +2142,173 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/SnapshotParameter" + "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/VersionIdParameter" + "name": "versionid", + "in": "header", + "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": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/EncryptionKeyParameter" + "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/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$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" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { - "Last-Modified": { + "Accept-Ranges": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "description": "Indicates that the service supports requests for partial blob content." }, - "x-ms-creation-time": { + "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-or-policy-id": { + "Content-Disposition": { "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 '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-blob-type": { + "Content-Encoding": { "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." - } - ] - } + "description": "This header returns the value that was specified for the Content-Encoding request header" }, - "x-ms-copy-completion-time": { + "Content-Language": { "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." + "description": "This header returns the value that was specified for the Content-Language request header." }, - "x-ms-copy-status-description": { + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-MD5": { "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": "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-copy-id": { + "Date": { "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." + "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-copy-progress": { + "ETag": { "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" + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "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-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-incremental-copy": { - "type": "boolean", - "description": "Included if the blob is incremental copy blob." - }, - "x-ms-copy-destination-snapshot": { - "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": { - "type": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } - }, - "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." - } - ] - } - }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "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." - }, - "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": { - "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": { - "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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": { + "Last-Modified": { "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": { - "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-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-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" + "description": "The date/time that the container was last modified." }, "x-ms-access-tier": { "type": "string", @@ -1993,6 +2406,11 @@ ] } }, + "x-ms-access-tier-change-time": { + "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." + }, "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." @@ -2011,88 +2429,154 @@ "modelAsString": true, "values": [ { - "name": "rehydrate-pending-to-hot", + "name": "RehydratePendingToHot", "value": "rehydrate-pending-to-hot", "description": "The archive status is rehydrating pending to hot." }, { - "name": "rehydrate-pending-to-cool", + "name": "RehydratePendingToCool", "value": "rehydrate-pending-to-cool", "description": "The archive status is rehydrating pending to cool." }, { - "name": "rehydrate-pending-to-archive", + "name": "RehydratePendingToArchive", "value": "rehydrate-pending-to-archive", "description": "The archive status is rehydrating pending to archive." }, { - "name": "rehydrate-pending-to-expired", + "name": "RehydratePendingToExpired", "value": "rehydrate-pending-to-expired", "description": "The archive status is rehydrating pending to expired." } ] } }, - "x-ms-access-tier-change-time": { - "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." - }, - "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": { - "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-blob-committed-block-count": { "type": "integer", - "format": "int64", - "description": "The number of tags associated with the blob" - }, - "x-ms-expiry-time": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob will expire." + "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-rehydrate-priority": { + "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": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "description": "The type of the blob.", "enum": [ - "High", - "Standard" + "BlockBlob", + "PageBlob", + "AppendBlob" ], "x-ms-enum": { - "name": "RehydratePriority", + "name": "BlobType", "modelAsString": true, "values": [ { - "name": "High", - "value": "High", - "description": "The rehydrate priority is high." + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." }, { - "name": "Standard", - "value": "Standard", - "description": "The rehydrate priority is standard." + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." } ] } }, - "x-ms-last-access-time": { + "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 blob was last read or written to" + "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-immutability-policy-until-date": { + "x-ms-copy-completion-time": { "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": "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-destination-snapshot": { + "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-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-rfc1123", + "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-expiry-time": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob will expire." }, "x-ms-immutability-policy-mode": { "type": "string", @@ -2124,9 +2608,166 @@ ] } }, + "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 blob immutability policy will expire." + }, + "x-ms-incremental-copy": { + "type": "boolean", + "description": "Included if the blob is incremental copy 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-last-access-time": { + "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-lease-duration": { + "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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-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-rehydrate-priority": { + "type": "string", + "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." + } + ] + } + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-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": { + "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." } } }, @@ -2147,28 +2788,63 @@ "description": "operation sets one or more user-defined name-value pairs for the specified container.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -2189,11 +2865,6 @@ "x-ms-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" } } }, @@ -2212,28 +2883,69 @@ "description": "gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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" } ], "responses": { "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SignedIdentifiers" + "type": "array", + "items": { + "$ref": "#/definitions/SignedIdentifier" + } }, "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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.", @@ -2246,27 +2958,18 @@ "modelAsString": true, "values": [ { - "name": "blob", + "name": "Blob", "value": "blob", "description": "Blob access." }, { - "name": "container", + "name": "Container", "value": "container", "description": "Container access." } ] } }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, "x-ms-client-request-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." @@ -2278,11 +2981,6 @@ "x-ms-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" } } }, @@ -2301,34 +2999,84 @@ "description": "sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/ContainerAclParameter" + "name": "acl", + "in": "body", + "description": "The access control list for the container.", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SignedIdentifier" + } + } } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -2349,11 +3097,6 @@ "x-ms-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" } } }, @@ -2372,28 +3115,62 @@ "description": "Restores a previously-deleted container.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/DeletedContainerNameParameter" + "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" }, { - "$ref": "#/parameters/DeletedContainerVersionParameter" + "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" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "201": { "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "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-client-request-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." @@ -2405,11 +3182,6 @@ "x-ms-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" } } }, @@ -2428,28 +3200,62 @@ "description": "Renames an existing container.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SourceContainerNameParameter" + "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" }, { - "$ref": "#/parameters/SourceLeaseIdParameter" + "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" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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-client-request-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." @@ -2461,11 +3267,6 @@ "x-ms-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" } } }, @@ -2484,28 +3285,88 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/MarkerParameter" + "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/MaxResultsParameter" + "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" }, { - "$ref": "#/parameters/FilterBlobsWhere" + "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" }, { - "$ref": "#/parameters/FilterBlobsInclude" + "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": "FilterBlobsIncludes", + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { @@ -2515,6 +3376,11 @@ "$ref": "#/definitions/FilterBlobSegment" }, "headers": { + "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-client-request-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." @@ -2526,11 +3392,6 @@ "x-ms-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" } } }, @@ -2549,37 +3410,80 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseDurationParameter" + "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": true, + "type": "integer", + "format": "int32", + "x-ms-client-name": "leaseDuration" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/ProposedLeaseIdOptional" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" } ], "responses": { "201": { "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "x-ms-lease-id": { + "Date": { "type": "string", - "description": "Uniquely identifies a blobs' lease" + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, "ETag": { "type": "string", @@ -2594,6 +3498,10 @@ "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, "x-ms-request-id": { "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." @@ -2601,11 +3509,6 @@ "x-ms-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" } } }, @@ -2624,31 +3527,72 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdRequired" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -2669,11 +3613,6 @@ "x-ms-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" } } }, @@ -2692,34 +3631,71 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdRequired" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { - "x-ms-lease-id": { + "Date": { "type": "string", - "description": "Uniquely identifies a blobs' lease" + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, "ETag": { "type": "string", @@ -2734,6 +3710,10 @@ "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, "x-ms-request-id": { "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." @@ -2741,11 +3721,6 @@ "x-ms-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" } } }, @@ -2764,35 +3739,72 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/LeaseBreakPeriodParameter" + "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": "leaseBreakPeriod" } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { - "x-ms-lease-time": { - "type": "integer", - "format": "int32", - "description": "Approximate time remaining in the lease period, in seconds." + "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" }, "ETag": { "type": "string", @@ -2807,14 +3819,14 @@ "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-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" } } }, @@ -2833,37 +3845,79 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdRequired" + "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/ProposedLeaseIdRequired" + "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" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { - "x-ms-lease-id": { + "Date": { "type": "string", - "description": "Uniquely identifies a blobs' lease" + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, "ETag": { "type": "string", @@ -2874,23 +3928,22 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, + "x-ms-client-request-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." + }, + "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-client-request-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." - }, "x-ms-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" } } }, @@ -2909,28 +3962,136 @@ "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/PrefixParameter" + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/MarkerParameter" + "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/MaxResultsParameter" + "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" }, { - "$ref": "#/parameters/ListBlobsInclude" + "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": [ + "copies", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludes", + "modelAsString": true, + "values": [ + { + "name": "Copies", + "value": "copies", + "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" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { @@ -2940,6 +4101,11 @@ "$ref": "#/definitions/ListBlobsFlatSegmentResponse" }, "headers": { + "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-client-request-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." @@ -2951,11 +4117,6 @@ "x-ms-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" } } }, @@ -2974,31 +4135,143 @@ "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/DelimiterParameter" + "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" }, { - "$ref": "#/parameters/PrefixParameter" + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/MarkerParameter" + "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/MaxResultsParameter" + "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" }, { - "$ref": "#/parameters/ListBlobsInclude" + "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": [ + "copies", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludes", + "modelAsString": true, + "values": [ + { + "name": "Copies", + "value": "copies", + "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" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { @@ -3008,6 +4281,11 @@ "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" }, "headers": { + "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-client-request-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." @@ -3019,11 +4297,6 @@ "x-ms-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" } } }, @@ -3042,116 +4315,125 @@ "description": "Returns the sku name and account kind", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$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" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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-account-kind": { "type": "string", - "description": "Identifies the sku name of the account", + "description": "Identifies the account kind", "enum": [ - "Standard_LRS", - "Standard_GRS", - "Standard_RAGRS", - "Standard_ZRS", - "Premium_LRS" + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" ], "x-ms-enum": { - "name": "SkuName", + "name": "AccountKind", "modelAsString": true, "values": [ { - "name": "Standard_LRS", - "value": "Standard_LRS", - "description": "The standard LRS SKU." + "name": "Storage", + "value": "Storage", + "description": "The storage account is a general-purpose account." }, { - "name": "Standard_GRS", - "value": "Standard_GRS", - "description": "The standard GRS SKU." + "name": "BlobStorage", + "value": "BlobStorage", + "description": "The storage account is a blob storage account." }, { - "name": "Standard_RAGRS", - "value": "Standard_RAGRS", - "description": "The standard RAGRS SKU." + "name": "StorageV2", + "value": "StorageV2", + "description": "The storage account is a storage V2 account." }, { - "name": "Standard_ZRS", - "value": "Standard_ZRS", - "description": "The standard ZRS SKU." + "name": "FileStorage", + "value": "FileStorage", + "description": "The storage account is a file storage account." }, { - "name": "Premium_LRS", - "value": "Premium_LRS", - "description": "The premium LRS SKU." + "name": "BlockBlobStorage", + "value": "BlockBlobStorage", + "description": "The storage account is a block blob storage account." } ] } }, - "x-ms-account-kind": { + "x-ms-client-request-id": { "type": "string", - "description": "Identifies the account kind", + "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": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-sku-name": { + "type": "string", + "description": "Identifies the sku name of the account", "enum": [ - "Storage", - "BlobStorage", - "StorageV2", - "FileStorage", - "BlockBlobStorage" + "Standard_LRS", + "tandard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS" ], "x-ms-enum": { - "name": "AccountKind", + "name": "SkuName", "modelAsString": true, "values": [ { - "name": "Storage", - "value": "Storage", - "description": "The storage account is a general-purpose account." + "name": "StandardLRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." }, { - "name": "BlobStorage", - "value": "BlobStorage", - "description": "The storage account is a blob storage account." + "name": "StandardGRS", + "value": "tandard_GRS", + "description": "The standard GRS SKU." }, { - "name": "StorageV2", - "value": "StorageV2", - "description": "The storage account is a storage V2 account." + "name": "StandardRAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." }, { - "name": "FileStorage", - "value": "FileStorage", - "description": "The storage account is a file storage account." + "name": "StandardZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." }, { - "name": "BlockBlobStorage", - "value": "BlockBlobStorage", - "description": "The storage account is a block blob storage account." + "name": "PremiumLRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." } ] } + }, + "x-ms-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." } } }, @@ -3170,88 +4452,258 @@ "description": "The Create operation creates a new append blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" - }, - { - "$ref": "#/parameters/TimeoutParameter" - }, - { - "$ref": "#/parameters/ContentLengthParameter" - }, - { - "$ref": "#/parameters/BlobContentTypeParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobContentEncodingParameter" + "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/BlobContentLanguageParameter" + "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" }, { - "$ref": "#/parameters/BlobContentMd5Parameter" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/BlobCacheControlParameter" + "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/LeaseIdOptionalParameter" + "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/BlobContentDispositionParameter" + "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/EncryptionKeyParameter" + "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", + "x-ms-client-name": "blobContentMd5" }, { - "$ref": "#/parameters/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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/EncryptionScopeParameter" + "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/IfModifiedSinceParameter" + "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/IfUnmodifiedSinceParameter" + "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/IfMatchParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "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/IfTagsParameter" + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/BlobTagsHeaderParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + "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/ImmutabilityPolicyModeParameter" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" + }, + { + "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": "blobTags" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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/LegalHoldOptionalParameter" + "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" } ], "responses": { "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-rfc1123", + "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." @@ -3261,42 +4713,33 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, - "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-client-request-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." }, - "x-ms-request-id": { - "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-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-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" + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-encryption-key-sha256": { + "x-ms-version": { "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": "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-encryption-scope": { + "x-ms-version-id": { "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" + "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." } } }, @@ -3315,97 +4758,375 @@ "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.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" - }, - { - "$ref": "#/parameters/TimeoutParameter" - }, - { - "$ref": "#/parameters/ContentMd5Parameter" - }, - { - "$ref": "#/parameters/BlobContentTypeParameter" - }, - { - "$ref": "#/parameters/BlobContentEncodingParameter" - }, - { - "$ref": "#/parameters/BlobContentLanguageParameter" - }, - { - "$ref": "#/parameters/BlobContentMd5Parameter" - }, - { - "$ref": "#/parameters/BlobCacheControlParameter" - }, - { - "$ref": "#/parameters/LeaseIdOptionalParameter" - }, - { - "$ref": "#/parameters/BlobContentDispositionParameter" - }, - { - "$ref": "#/parameters/EncryptionKeyParameter" - }, - { - "$ref": "#/parameters/EncryptionKeySha256Parameter" - }, - { - "$ref": "#/parameters/EncryptionAlgorithmParameter" - }, - { - "$ref": "#/parameters/EncryptionScopeParameter" - }, - { - "$ref": "#/parameters/AccessTierOptionalParameter" - }, - { - "$ref": "#/parameters/IfModifiedSinceParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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/IfMatchParameter" + "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" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "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": "contentMd5" + }, + { + "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", + "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", + "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-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "accessTier" }, { - "$ref": "#/parameters/IfTagsParameter" + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/BlobTagsHeaderParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + "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/ImmutabilityPolicyModeParameter" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" + }, + { + "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": "blobTags" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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/LegalHoldOptionalParameter" + "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/ContentCrc64Parameter" + "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": "contentCrc64" }, { - "$ref": "#/parameters/BodyParameter" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "responses": { "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-rfc1123", + "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." @@ -3415,42 +5136,33 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, - "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-client-request-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." }, - "x-ms-request-id": { - "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-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-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" + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-encryption-key-sha256": { + "x-ms-version": { "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": "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-encryption-scope": { + "x-ms-version-id": { "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" + "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." } } }, @@ -3469,112 +5181,383 @@ "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/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" - }, - { - "$ref": "#/parameters/TimeoutParameter" - }, - { - "$ref": "#/parameters/ContentMd5Parameter" - }, - { - "$ref": "#/parameters/ContentLengthParameter" - }, - { - "$ref": "#/parameters/BlobContentTypeParameter" - }, - { - "$ref": "#/parameters/BlobContentEncodingParameter" - }, - { - "$ref": "#/parameters/BlobContentLanguageParameter" - }, - { - "$ref": "#/parameters/BlobContentMd5Parameter" - }, - { - "$ref": "#/parameters/BlobCacheControlParameter" - }, - { - "$ref": "#/parameters/LeaseIdOptionalParameter" - }, - { - "$ref": "#/parameters/BlobContentDispositionParameter" - }, - { - "$ref": "#/parameters/EncryptionKeyParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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" }, { - "$ref": "#/parameters/EncryptionScopeParameter" + "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": "contentMd5" }, { - "$ref": "#/parameters/AccessTierOptionalParameter" + "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", + "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", + "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-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "accessTier" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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/SourceIfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/SourceIfMatchParameter" + "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/SourceIfNoneMatchParameter" + "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/SourceIfTagsParameter" + "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/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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/SourceContentMd5Parameter" + "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/BlobTagsHeaderParameter" + "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": "blobTags" }, { - "$ref": "#/parameters/CopySourceParameter" + "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/CopySourceBlobPropertiesParameter" + "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/CopySourceAuthorizationParameter" + "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/CopySourceTagsParameter" + "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" } ], "responses": { "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." + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -3584,22 +5567,10 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, - "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-client-request-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." }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." @@ -3607,8 +5578,16 @@ "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-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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": "An unexpected error response.", @@ -3625,28 +5604,96 @@ "description": "\"Set the expiration time of a blob\"", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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": "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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/BlobExpiryOptionsParameter" + "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/BlobExpiryTimeParameter" + "name": "x-ms-expiry-time", + "in": "header", + "description": "The time to set the blob to expiry.", + "required": true, + "type": "string", + "x-ms-client-name": "expiryTime" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -3667,11 +5714,6 @@ "x-ms-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" } } }, @@ -3690,61 +5732,154 @@ "description": "The Set HTTP Headers operation sets system properties on the blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/BlobCacheControlParameter" + "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/BlobContentTypeParameter" + "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/BlobContentMd5Parameter" + "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", + "x-ms-client-name": "blobContentMd5" }, { - "$ref": "#/parameters/BlobContentEncodingParameter" + "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/BlobContentLanguageParameter" + "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/LeaseIdOptionalParameter" + "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/BlobContentDispositionParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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-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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -3770,11 +5905,6 @@ "x-ms-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" } } }, @@ -3793,34 +5923,108 @@ "description": "\"Set the immutability policy of a blob\"", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" - }, - { - "$ref": "#/parameters/TimeoutParameter" - }, - { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ApiVersionParameter" + "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/ClientRequestIdParameter" + "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" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ImmutabilityPolicyModeParameter" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -3834,24 +6038,6 @@ "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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-immutability-policy-until-date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Indicates the time the immutability policy will expire." - }, "x-ms-immutability-policy-mode": { "type": "string", "description": "Indicates the immutability policy mode of the blob.", @@ -3881,6 +6067,19 @@ } ] } + }, + "x-ms-immutability-policy-until-date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Indicates the time the immutability policy will expire." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." } } }, @@ -3899,25 +6098,56 @@ "description": "The Delete Immutability Policy operation deletes the immutability policy on the blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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-client-request-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." @@ -3929,11 +6159,6 @@ "x-ms-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" } } }, @@ -3952,32 +6177,72 @@ "description": "The Set Legal Hold operation sets a legal hold on the blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/LegalHoldRequiredParameter" + "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" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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-client-request-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." }, + "x-ms-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, "x-ms-request-id": { "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." @@ -3985,15 +6250,6 @@ "x-ms-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": { - "type": "boolean", - "description": "Specifies the legal hold status to set on the blob." } } }, @@ -4012,55 +6268,138 @@ "description": "The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/EncryptionKeyParameter" + "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/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/EncryptionScopeParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -4074,30 +6413,25 @@ "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-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-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" + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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": { + "x-ms-version": { "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" + "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." } } }, @@ -4116,46 +6450,115 @@ "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/LeaseDurationParameter" + "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": true, + "type": "integer", + "format": "int32", + "x-ms-client-name": "leaseDuration" }, { - "$ref": "#/parameters/ProposedLeaseIdOptional" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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" } ], "responses": { "201": { "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -4169,6 +6572,10 @@ "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, "x-ms-request-id": { "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." @@ -4176,15 +6583,6 @@ "x-ms-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-lease-id": { - "type": "string", - "description": "Uniquely identifies a blobs' lease" } } }, @@ -4203,43 +6601,106 @@ "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/LeaseIdRequiredParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -4260,11 +6721,6 @@ "x-ms-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" } } }, @@ -4283,43 +6739,106 @@ "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/LeaseIdRequiredParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -4333,6 +6852,10 @@ "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, "x-ms-request-id": { "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." @@ -4340,15 +6863,6 @@ "x-ms-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-lease-id": { - "type": "string", - "description": "Uniquely identifies a blobs' lease" } } }, @@ -4367,46 +6881,114 @@ "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/LeaseIdRequiredParameter" + "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/ProposedLeaseIdOptional" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -4420,6 +7002,10 @@ "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, "x-ms-request-id": { "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." @@ -4427,15 +7013,6 @@ "x-ms-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-lease-id": { - "type": "string", - "description": "Uniquely identifies a blobs' lease" } } }, @@ -4454,43 +7031,107 @@ "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/LeaseBreakPeriodParameter" + "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": "leaseBreakPeriod" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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" } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -4504,6 +7145,11 @@ "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-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." + }, "x-ms-request-id": { "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." @@ -4511,16 +7157,6 @@ "x-ms-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-lease-time": { - "type": "integer", - "format": "int32", - "description": "Approximate time remaining in the lease period, in seconds." } } }, @@ -4539,55 +7175,138 @@ "description": "The Create Snapshot operation creates a read-only snapshot of a blob", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/EncryptionKeyParameter" + "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/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/EncryptionScopeParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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-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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "201": { "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -4605,22 +7324,17 @@ "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-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." }, "x-ms-snapshot": { "type": "string", "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." }, - "Date": { + "x-ms-version": { "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." + "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." } } }, @@ -4639,82 +7353,351 @@ "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" - }, - { - "$ref": "#/parameters/TimeoutParameter" - }, - { - "$ref": "#/parameters/AccessTierOptionalParameter" - }, - { - "$ref": "#/parameters/RehydratePriorityParameter" - }, - { - "$ref": "#/parameters/SourceIfModifiedSinceParameter" - }, - { - "$ref": "#/parameters/SourceIfUnmodifiedSinceParameter" - }, - { - "$ref": "#/parameters/SourceIfMatchParameter" - }, - { - "$ref": "#/parameters/SourceIfNoneMatchParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SourceIfTagsParameter" + "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" + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "accessTier" + }, + { + "name": "x-ms-rehydrate-priority", + "in": "header", + "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", + "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" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "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/IfNoneMatchParameter" + "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/IfTagsParameter" + "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/CopySourceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/BlobTagsHeaderParameter" + "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/SealBlobParameter" + "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/ImmutabilityPolicyExpiryParameter" + "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/ImmutabilityPolicyModeParameter" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" + }, + { + "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": "blobTags" + }, + { + "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" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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/LegalHoldOptionalParameter" + "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" } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -4728,23 +7711,6 @@ "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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": { - "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-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." @@ -4763,27 +7729,39 @@ "modelAsString": true, "values": [ { - "name": "pending", + "name": "Pending", "value": "pending", "description": "The copy operation is pending." }, { - "name": "success", + "name": "Success", "value": "success", "description": "The copy operation succeeded." }, { - "name": "failed", + "name": "Failed", "value": "failed", "description": "The copy operation failed." }, { - "name": "aborted", + "name": "Aborted", "value": "aborted", "description": "The copy operation is aborted." } ] } + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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": { + "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." } } }, @@ -4802,85 +7780,343 @@ "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/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" - }, - { - "$ref": "#/parameters/TimeoutParameter" - }, - { - "$ref": "#/parameters/AccessTierOptionalParameter" - }, - { - "$ref": "#/parameters/SourceIfModifiedSinceParameter" - }, - { - "$ref": "#/parameters/SourceIfUnmodifiedSinceParameter" - }, - { - "$ref": "#/parameters/SourceIfMatchParameter" - }, - { - "$ref": "#/parameters/SourceIfNoneMatchParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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" + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "accessTier" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "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-rfc1123", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "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/IfTagsParameter" + "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/CopySourceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/SourceContentMd5Parameter" + "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/BlobTagsHeaderParameter" + "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/ImmutabilityPolicyExpiryParameter" + "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/ImmutabilityPolicyModeParameter" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" + }, + { + "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" + }, + { + "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": "blobTags" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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/LegalHoldOptionalParameter" + "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/CopySourceAuthorizationParameter" + "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/EncryptionScopeParameter" + "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/CopySourceTagsParameter" + "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" } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "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-rfc1123", + "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." @@ -4894,18 +8130,9 @@ "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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-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-copy-id": { "type": "string", @@ -4925,39 +8152,39 @@ "modelAsString": true, "values": [ { - "name": "pending", + "name": "Pending", "value": "pending", "description": "The copy operation is pending." }, { - "name": "success", + "name": "Success", "value": "success", "description": "The copy operation succeeded." }, { - "name": "failed", + "name": "Failed", "value": "failed", "description": "The copy operation failed." }, { - "name": "aborted", + "name": "Aborted", "value": "aborted", "description": "The copy operation is aborted." } ] } }, - "Content-MD5": { + "x-ms-encryption-scope": { "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." + "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-content-crc64": { + "x-ms-request-id": { "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-encryption-scope": { + "x-ms-version": { "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" + "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." } } }, @@ -4976,31 +8203,72 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/CopyIdParameter" + "name": "x-ms-copy-id", + "in": "header", + "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/LeaseIdOptionalParameter" + "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-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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "204": { "description": "There is no content to send for this request, but the headers may be useful. ", "headers": { + "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-client-request-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." @@ -5012,11 +8280,6 @@ "x-ms-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" } } }, @@ -5035,31 +8298,189 @@ "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": [ { - "$ref": "#/parameters/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/TimeoutParameter" + "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/AccessTierRequiredParameter" + "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" }, { - "$ref": "#/parameters/RehydratePriorityParameter" + "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" + ], + "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." + } + ] + }, + "x-ms-client-name": "accessTier" + }, + { + "name": "x-ms-rehydrate-priority", + "in": "header", + "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/IfTagsParameter" + "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" } ], "responses": { @@ -5112,34 +8533,43 @@ "description": "Returns the sku name and account kind", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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": "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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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", @@ -5187,12 +8617,20 @@ ] } }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, "x-ms-sku-name": { "type": "string", "description": "Identifies the sku name of the account", "enum": [ "Standard_LRS", - "Standard_GRS", + "tandard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS" @@ -5202,32 +8640,36 @@ "modelAsString": true, "values": [ { - "name": "Standard_LRS", + "name": "StandardLRS", "value": "Standard_LRS", "description": "The standard LRS SKU." }, { - "name": "Standard_GRS", - "value": "Standard_GRS", + "name": "StandardGRS", + "value": "tandard_GRS", "description": "The standard GRS SKU." }, { - "name": "Standard_RAGRS", + "name": "StandardRAGRS", "value": "Standard_RAGRS", "description": "The standard RAGRS SKU." }, { - "name": "Standard_ZRS", + "name": "StandardZRS", "value": "Standard_ZRS", "description": "The standard ZRS SKU." }, { - "name": "Premium_LRS", + "name": "PremiumLRS", "value": "Premium_LRS", "description": "The premium LRS SKU." } ] } + }, + "x-ms-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." } } }, @@ -5246,84 +8688,150 @@ "description": "The Stage Block operation creates a new block to be committed as part of a blob", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/BlockIdParameter" + "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" }, { - "$ref": "#/parameters/ContentLengthParameter" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/ContentMd5Parameter" + "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": "contentMd5" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/ContentCrc64Parameter" + "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": "contentCrc64" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/EncryptionKeyParameter" + "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/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/EncryptionScopeParameter" + "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/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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/BodyParameter" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "responses": { "201": { "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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": { "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" }, - "Content-MD5": { + "x-ms-client-request-id": { "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." + "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-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-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-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." @@ -5331,6 +8839,18 @@ "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-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." } } }, @@ -5349,102 +8869,198 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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": "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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/BlockIdParameter" + "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" }, { - "$ref": "#/parameters/ContentLengthParameter" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/SourceUrlParameter" + "name": "x-ms-source-url", + "in": "header", + "description": "Specify a URL to the copy source.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceUrl" }, { - "$ref": "#/parameters/SourceRangeParameter" + "name": "x-ms-source-range", + "in": "header", + "description": "Bytes of source data in the specified range.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceRange" }, { - "$ref": "#/parameters/SourceContentMd5Parameter" + "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/SourceContentCrc64Parameter" + "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", + "x-ms-client-name": "sourceContentCrc64" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/EncryptionKeyParameter" + "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/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/EncryptionScopeParameter" + "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/LeaseIdOptionalParameter" + "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/SourceIfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/SourceIfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "$ref": "#/parameters/SourceIfMatchParameter" + "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/SourceIfNoneMatchParameter" + "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/CopySourceAuthorizationParameter" + "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" } ], "responses": { "201": { "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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": { "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" }, - "Content-MD5": { + "x-ms-client-request-id": { "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." + "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-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-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-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." @@ -5452,6 +9068,18 @@ "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-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." } } }, @@ -5470,94 +9098,366 @@ "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/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" - }, - { - "$ref": "#/parameters/TimeoutParameter" - }, - { - "$ref": "#/parameters/BlobCacheControlParameter" - }, - { - "$ref": "#/parameters/BlobContentTypeParameter" - }, - { - "$ref": "#/parameters/BlobContentEncodingParameter" - }, - { - "$ref": "#/parameters/BlobContentLanguageParameter" - }, - { - "$ref": "#/parameters/BlobContentMd5Parameter" - }, - { - "$ref": "#/parameters/ContentMd5Parameter" - }, - { - "$ref": "#/parameters/ContentCrc64Parameter" - }, - { - "$ref": "#/parameters/BlobContentDispositionParameter" - }, - { - "$ref": "#/parameters/EncryptionKeyParameter" - }, - { - "$ref": "#/parameters/EncryptionKeySha256Parameter" - }, - { - "$ref": "#/parameters/EncryptionAlgorithmParameter" - }, - { - "$ref": "#/parameters/EncryptionScopeParameter" - }, - { - "$ref": "#/parameters/AccessTierOptionalParameter" - }, - { - "$ref": "#/parameters/IfModifiedSinceParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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/IfMatchParameter" + "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" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "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-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", + "x-ms-client-name": "blobContentMd5" + }, + { + "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": "contentMd5" + }, + { + "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": "contentCrc64" + }, + { + "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", + "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-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "accessTier" }, { - "$ref": "#/parameters/IfTagsParameter" + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/BlobTagsHeaderParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiryParameter" + "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/ImmutabilityPolicyModeParameter" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" + }, + { + "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": "blobTags" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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/LegalHoldOptionalParameter" + "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/BlobBlocksParameter" + "name": "blocks", + "in": "body", + "description": "Blob Blocks.", + "required": true, + "schema": { + "$ref": "#/definitions/BlockLookupList" + } } ], "responses": { "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-rfc1123", + "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." @@ -5567,42 +9467,33 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, - "Content-MD5": { + "x-ms-client-request-id": { "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." + "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-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-client-request-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." - }, - "x-ms-request-id": { + "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-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" + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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": { + "x-ms-version": { "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" + "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." } } }, @@ -5621,28 +9512,93 @@ "description": "The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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": "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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/SnapshotParameter" + "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/BlockListTypeParameter" + "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": "Uncomitted", + "value": "uncommitted", + "description": "The list of uncommitted blocks." + }, + { + "name": "All", + "value": "all", + "description": "Both lists together." + } + ] + } }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/IfTagsParameter" + "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" } ], "responses": { @@ -5652,15 +9608,20 @@ "$ref": "#/definitions/BlockLookupList" }, "headers": { - "Last-Modified": { + "Date": { "type": "string", "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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-rfc1123", + "description": "The date/time that the container was last modified." + }, "x-ms-blob-content-length": { "type": "integer", "format": "int64", @@ -5677,11 +9638,6 @@ "x-ms-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" } } }, @@ -5700,95 +9656,220 @@ "description": "The Upload Pages operation writes a range of pages to a page blob", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" - }, - { - "$ref": "#/parameters/ContentLengthParameter" - }, - { - "$ref": "#/parameters/ContentMd5Parameter" - }, - { - "$ref": "#/parameters/ContentCrc64Parameter" - }, - { - "$ref": "#/parameters/TimeoutParameter" - }, - { - "$ref": "#/parameters/RangeParameter" - }, - { - "$ref": "#/parameters/LeaseIdOptionalParameter" - }, - { - "$ref": "#/parameters/EncryptionKeyParameter" - }, - { - "$ref": "#/parameters/EncryptionKeySha256Parameter" - }, - { - "$ref": "#/parameters/EncryptionAlgorithmParameter" - }, - { - "$ref": "#/parameters/EncryptionScopeParameter" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualToParameter" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThanParameter" - }, - { - "$ref": "#/parameters/IfSequenceNumberEqualToParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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/IfUnmodifiedSinceParameter" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/IfMatchParameter" - }, + "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": "contentMd5" + }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "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": "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" + }, + { + "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" + }, + { + "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", + "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-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" + }, + { + "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" + }, + { + "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/IfTagsParameter" + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + }, + { + "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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/BodyParameter" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "responses": { "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." + "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": "The date/time that the container was last modified." + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "Content-MD5": { + "ETag": { "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." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-content-crc64": { + "Last-Modified": { "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, "x-ms-blob-sequence-number": { "type": "integer", @@ -5799,30 +9880,29 @@ "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-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-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", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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": { + "x-ms-version": { "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" + "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." } } }, @@ -5841,58 +9921,150 @@ "description": "The Clear Pages operation clears a range of pages from a page blob", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ContentLengthParameter" + "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/TimeoutParameter" + "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" + }, + { + "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" + }, + { + "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-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" + }, + { + "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" + }, + { + "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" + }, + { + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + }, + { + "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/RangeParameter" - }, - { - "$ref": "#/parameters/LeaseIdOptionalParameter" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualToParameter" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThanParameter" - }, - { - "$ref": "#/parameters/IfSequenceNumberEqualToParameter" - }, - { - "$ref": "#/parameters/IfModifiedSinceParameter" - }, - { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" - }, - { - "$ref": "#/parameters/IfNoneMatchParameter" - }, - { - "$ref": "#/parameters/IfTagsParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "201": { "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -5918,11 +10090,6 @@ "x-ms-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" } } }, @@ -5941,97 +10108,260 @@ "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/ContainerNameParameter" - }, - { - "$ref": "#/parameters/BlobNameParameter" - }, - { - "$ref": "#/parameters/TimeoutParameter" - }, - { - "$ref": "#/parameters/ContentLengthParameter" - }, - { - "$ref": "#/parameters/SourceUrlParameter" - }, - { - "$ref": "#/parameters/SourceRangeRequiredPutPageFromUrlParameter" - }, - { - "$ref": "#/parameters/SourceContentMd5Parameter" - }, - { - "$ref": "#/parameters/SourceContentCrc64Parameter" - }, - { - "$ref": "#/parameters/RangeRequiredPutPageFromUrlParameter" - }, - { - "$ref": "#/parameters/EncryptionKeyParameter" - }, - { - "$ref": "#/parameters/EncryptionKeySha256Parameter" - }, - { - "$ref": "#/parameters/EncryptionAlgorithmParameter" - }, - { - "$ref": "#/parameters/EncryptionScopeParameter" - }, - { - "$ref": "#/parameters/LeaseIdOptionalParameter" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualToParameter" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThanParameter" - }, - { - "$ref": "#/parameters/IfSequenceNumberEqualToParameter" - }, - { - "$ref": "#/parameters/IfModifiedSinceParameter" - }, - { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfMatchParameter" + "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/IfNoneMatchParameter" + "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" }, { - "$ref": "#/parameters/IfTagsParameter" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/SourceIfModifiedSinceParameter" + "name": "x-ms-source-url", + "in": "header", + "description": "Specify a URL to the copy source.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceUrl" }, { - "$ref": "#/parameters/SourceIfUnmodifiedSinceParameter" + "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/SourceIfMatchParameter" + "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/SourceIfNoneMatchParameter" + "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", + "x-ms-client-name": "sourceContentCrc64" }, { - "$ref": "#/parameters/ApiVersionParameter" + "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" + }, + { + "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", + "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-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" + }, + { + "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" + }, + { + "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" + }, + { + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + }, + { + "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-rfc1123", + "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-rfc1123", + "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-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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/CopySourceAuthorizationParameter" + "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" } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "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-rfc1123", + "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." @@ -6041,47 +10371,38 @@ "format": "date-time-rfc1123", "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": { "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": { - "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-content-crc64": { "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 response header is returned so that the client can check for the integrity of the copied content." }, - "Date": { + "x-ms-encryption-key-sha256": { "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 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." }, - "Content-MD5": { + "x-ms-encryption-scope": { "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." + "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-content-crc64": { + "x-ms-request-id": { "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." - }, - "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." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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": { + "x-ms-version": { "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" + "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." } } }, @@ -6100,46 +10421,117 @@ "description": "The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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": "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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/SnapshotParameter" + "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/RangeParameter" + "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/LeaseIdOptionalParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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/MarkerParameter" + "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/MaxResultsParameter" + "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" } ], "responses": { @@ -6149,15 +10541,20 @@ "$ref": "#/definitions/PageList" }, "headers": { - "Last-Modified": { + "Date": { "type": "string", "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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-rfc1123", + "description": "The date/time that the container was last modified." + }, "x-ms-blob-content-length": { "type": "integer", "format": "int64", @@ -6174,11 +10571,6 @@ "x-ms-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" } } }, @@ -6197,55 +10589,140 @@ "description": "The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob or snapshot of a page blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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": "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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/SnapshotParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/PrevSnapshotParameter" + "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": true, + "type": "string" }, { - "$ref": "#/parameters/PrevSnapshotUrlParameter" + "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": true, + "type": "string", + "x-ms-client-name": "previousSnapshotUrl" }, { - "$ref": "#/parameters/RangeParameter" + "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/LeaseIdOptionalParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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/MarkerParameter" + "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/MaxResultsParameter" + "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" } ], "responses": { @@ -6255,15 +10732,20 @@ "$ref": "#/definitions/PageList" }, "headers": { - "Last-Modified": { + "Date": { "type": "string", "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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-rfc1123", + "description": "The date/time that the container was last modified." + }, "x-ms-blob-content-length": { "type": "integer", "format": "int64", @@ -6280,11 +10762,6 @@ "x-ms-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" } } }, @@ -6303,58 +10780,147 @@ "description": "The Resize operation increases the size of the page blob to the specified size.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/EncryptionKeyParameter" + "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/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/EncryptionScopeParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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/BlobContentLengthRequiredParameter" + "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/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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -6380,11 +10946,6 @@ "x-ms-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" } } }, @@ -6403,49 +10964,149 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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/SequenceNumberActionParameter" + "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/SequenceNumberParameter" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobSequenceNumber" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -6471,11 +11132,6 @@ "x-ms-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" } } }, @@ -6494,46 +11150,114 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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/LeaseIdOptionalParameter" + "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/CopySourceParameter" + "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/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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -6547,19 +11271,6 @@ "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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-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." @@ -6578,27 +11289,35 @@ "modelAsString": true, "values": [ { - "name": "pending", + "name": "Pending", "value": "pending", "description": "The copy operation is pending." }, { - "name": "success", + "name": "Success", "value": "success", "description": "The copy operation succeeded." }, { - "name": "failed", + "name": "Failed", "value": "failed", "description": "The copy operation failed." }, { - "name": "aborted", + "name": "Aborted", "value": "aborted", "description": "The copy operation is aborted." } ] } + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." } } }, @@ -6617,111 +11336,203 @@ "description": "The Append Block operation commits a new block of data to the end of an append blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/ContentLengthParameter" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/ContentMd5Parameter" + "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": "contentMd5" }, { - "$ref": "#/parameters/ContentCrc64Parameter" + "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": "contentCrc64" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/BlobConditionMaxSizeParameter" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobConditionMaxSize" }, { - "$ref": "#/parameters/BlobConditionAppendPosParameter" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobConditionAppendPosition" }, { - "$ref": "#/parameters/EncryptionKeyParameter" + "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/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/EncryptionScopeParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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-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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/BodyParameter" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "responses": { "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." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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": { - "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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", "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "Content-MD5": { + "ETag": { "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." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-content-crc64": { + "Last-Modified": { "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, "x-ms-blob-append-offset": { "type": "integer", @@ -6733,9 +11544,18 @@ "format": "int32", "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." }, - "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": { + "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": { + "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-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": { "type": "string", @@ -6744,6 +11564,18 @@ "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-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." } } }, @@ -6762,112 +11594,217 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/ContentLengthParameter" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/SourceUrlParameter" + "name": "x-ms-source-url", + "in": "header", + "description": "Specify a URL to the copy source.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceUrl" }, { - "$ref": "#/parameters/SourceRangeParameter" + "name": "x-ms-source-range", + "in": "header", + "description": "Bytes of source data in the specified range.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceRange" }, { - "$ref": "#/parameters/SourceContentMd5Parameter" + "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/SourceContentCrc64Parameter" + "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", + "x-ms-client-name": "sourceContentCrc64" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/BlobConditionMaxSizeParameter" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobConditionMaxSize" }, { - "$ref": "#/parameters/BlobConditionAppendPosParameter" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobConditionAppendPosition" }, { - "$ref": "#/parameters/EncryptionKeyParameter" + "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/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/EncryptionScopeParameter" + "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/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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-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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/CopySourceAuthorizationParameter" + "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" } ], "responses": { "201": { "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." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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": { "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" }, - "Content-MD5": { + "ETag": { "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." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-content-crc64": { + "Last-Modified": { "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, "x-ms-blob-append-offset": { "type": "integer", @@ -6879,9 +11816,13 @@ "format": "int32", "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." }, - "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-client-request-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." + }, + "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": { "type": "string", @@ -6890,6 +11831,18 @@ "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-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." } } }, @@ -6908,46 +11861,115 @@ "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/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/BlobConditionAppendPosParameter" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobConditionAppendPosition" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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-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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -6957,6 +11979,10 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" + }, "x-ms-client-request-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." @@ -6968,15 +11994,6 @@ "x-ms-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": { - "type": "boolean", - "description": "If this blob has been sealed" } } }, @@ -6995,52 +12012,135 @@ "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/SnapshotParameter" + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/EncryptionKeyParameter" + "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/EncryptionKeySha256Parameter" + "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/EncryptionAlgorithmParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/IfModifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSinceParameter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfTagsParameter" + "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-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/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/QueryRequestParameter" + "name": "queryRequest", + "in": "body", + "description": "The query request", + "required": true, + "schema": { + "$ref": "#/definitions/QueryRequest" + } } ], "responses": { @@ -7051,39 +12151,57 @@ "format": "byte" }, "headers": { - "Last-Modified": { + "Accept-Ranges": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "description": "Indicates that the service supports requests for partial blob content." + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "Content-Encoding": { + "type": "string", + "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." + }, "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": { + "Date": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "Content-MD5": { + "ETag": { "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." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "Content-Encoding": { + "Last-Modified": { "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "Cache-Control": { - "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "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." }, - "Content-Language": { + "x-ms-blob-content-md5": { "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." + "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", @@ -7120,15 +12238,15 @@ ] } }, + "x-ms-client-request-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." + }, "x-ms-copy-completion-time": { "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": { - "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": { "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." @@ -7155,28 +12273,40 @@ "modelAsString": true, "values": [ { - "name": "pending", + "name": "Pending", "value": "pending", "description": "The copy operation is pending." }, { - "name": "success", + "name": "Success", "value": "success", "description": "The copy operation succeeded." }, { - "name": "failed", + "name": "Failed", "value": "failed", "description": "The copy operation failed." }, { - "name": "aborted", + "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": "string", "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", @@ -7189,12 +12319,12 @@ "modelAsString": true, "values": [ { - "name": "infinite", + "name": "Infinite", "value": "infinite", "description": "The lease is of infinite duration." }, { - "name": "fixed", + "name": "Fixed", "value": "fixed", "description": "The lease is of fixed duration." } @@ -7216,27 +12346,27 @@ "modelAsString": true, "values": [ { - "name": "available", + "name": "Available", "value": "available", "description": "The lease is available." }, { - "name": "leased", + "name": "Leased", "value": "leased", "description": "The lease is currently leased." }, { - "name": "expired", + "name": "Expired", "value": "expired", "description": "The lease is expired." }, { - "name": "breaking", + "name": "Breaking", "value": "breaking", "description": "The lease is breaking." }, { - "name": "broken", + "name": "Broken", "value": "broken", "description": "The lease is broken." } @@ -7255,59 +12385,29 @@ "modelAsString": true, "values": [ { - "name": "unlocked", + "name": "Unlocked", "value": "unlocked", "description": "The lease is unlocked." }, { - "name": "locked", + "name": "Locked", "value": "locked", "description": "The lease is locked." } ] } }, - "x-ms-client-request-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." - }, "x-ms-request-id": { "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-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": { - "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-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-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-blob-content-md5": { + "x-ms-version": { "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" + "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." } } }, @@ -7318,39 +12418,57 @@ "format": "byte" }, "headers": { - "Last-Modified": { + "Accept-Ranges": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "description": "Indicates that the service supports requests for partial blob content." + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "Content-Encoding": { + "type": "string", + "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." + }, "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": { + "Date": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "Content-MD5": { + "ETag": { "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." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "Content-Encoding": { + "Last-Modified": { "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "Cache-Control": { - "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "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." }, - "Content-Language": { + "x-ms-blob-content-md5": { "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." + "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", @@ -7387,15 +12505,15 @@ ] } }, + "x-ms-client-request-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." + }, "x-ms-copy-completion-time": { "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": { - "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": { "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." @@ -7422,28 +12540,40 @@ "modelAsString": true, "values": [ { - "name": "pending", + "name": "Pending", "value": "pending", "description": "The copy operation is pending." }, { - "name": "success", + "name": "Success", "value": "success", "description": "The copy operation succeeded." }, { - "name": "failed", + "name": "Failed", "value": "failed", "description": "The copy operation failed." }, { - "name": "aborted", + "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": "string", "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", @@ -7456,12 +12586,12 @@ "modelAsString": true, "values": [ { - "name": "infinite", + "name": "Infinite", "value": "infinite", "description": "The lease is of infinite duration." }, { - "name": "fixed", + "name": "Fixed", "value": "fixed", "description": "The lease is of fixed duration." } @@ -7483,27 +12613,27 @@ "modelAsString": true, "values": [ { - "name": "available", + "name": "Available", "value": "available", "description": "The lease is available." }, { - "name": "leased", + "name": "Leased", "value": "leased", "description": "The lease is currently leased." }, { - "name": "expired", + "name": "Expired", "value": "expired", "description": "The lease is expired." }, { - "name": "breaking", + "name": "Breaking", "value": "breaking", "description": "The lease is breaking." }, { - "name": "broken", + "name": "Broken", "value": "broken", "description": "The lease is broken." } @@ -7522,59 +12652,29 @@ "modelAsString": true, "values": [ { - "name": "unlocked", + "name": "Unlocked", "value": "unlocked", "description": "The lease is unlocked." }, { - "name": "locked", + "name": "Locked", "value": "locked", "description": "The lease is locked." } ] } }, - "x-ms-client-request-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." - }, "x-ms-request-id": { "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-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": { - "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-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-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-blob-content-md5": { + "x-ms-version": { "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" + "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." } } }, @@ -7593,31 +12693,75 @@ "description": "The Get Blob Tags operation enables users to get tags on a blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/SnapshotParameter" + "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/VersionIdParameter" + "name": "versionid", + "in": "header", + "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": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/IfTagsParameter" + "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" } ], "responses": { @@ -7627,6 +12771,11 @@ "$ref": "#/definitions/BlobTags" }, "headers": { + "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-client-request-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." @@ -7638,11 +12787,6 @@ "x-ms-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" } } }, @@ -7661,43 +12805,104 @@ "description": "The Set Tags operation enables users to set tags on a blob.", "parameters": [ { - "$ref": "#/parameters/ContainerNameParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobNameParameter" + "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/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" }, { - "$ref": "#/parameters/VersionIdParameter" + "name": "versionid", + "in": "header", + "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": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdOptionalParameter" + "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/ContentMd5Parameter" + "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": "contentMd5" }, { - "$ref": "#/parameters/ContentCrc64Parameter" + "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": "contentCrc64" }, { - "$ref": "#/parameters/IfTagsParameter" + "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/BlobTagsBodyParameter" + "name": "tags", + "in": "body", + "description": "The blob tags.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobTags" + } } ], "responses": { "204": { "description": "There is no content to send for this request, but the headers may be useful. ", "headers": { + "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-client-request-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." @@ -7709,11 +12914,6 @@ "x-ms-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" } } }, @@ -7732,16 +12932,37 @@ "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", "parameters": [ { - "$ref": "#/parameters/ContentLengthParameter" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { @@ -7773,25 +12994,81 @@ "description": "The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression.", "parameters": [ { - "$ref": "#/parameters/FilterBlobsWhere" + "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" }, { - "$ref": "#/parameters/FilterBlobsInclude" + "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": "FilterBlobsIncludes", + "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/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/MarkerParameter" + "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/MaxResultsParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { @@ -7801,6 +13078,11 @@ "$ref": "#/definitions/FilterBlobSegment" }, "headers": { + "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-client-request-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." @@ -7812,11 +13094,6 @@ "x-ms-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" } } }, @@ -7835,22 +13112,50 @@ "description": "The List Containers Segment operation returns a list of the containers under the specified account", "parameters": [ { - "$ref": "#/parameters/PrefixParameter" + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/TimeoutParameter" + "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" }, { - "$ref": "#/parameters/MarkerParameter" + "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/MaxResultsParameter" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" } ], "responses": { @@ -7889,72 +13194,23 @@ "description": "Returns the sku name and account kind.", "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" } ], "responses": { "200": { "description": "The request has succeeded.", "headers": { - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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": { - "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": "Standard_LRS", - "value": "Standard_LRS", - "description": "The standard LRS SKU." - }, - { - "name": "Standard_GRS", - "value": "Standard_GRS", - "description": "The standard GRS SKU." - }, - { - "name": "Standard_RAGRS", - "value": "Standard_RAGRS", - "description": "The standard RAGRS SKU." - }, - { - "name": "Standard_ZRS", - "value": "Standard_ZRS", - "description": "The standard ZRS SKU." - }, - { - "name": "Premium_LRS", - "value": "Premium_LRS", - "description": "The premium LRS SKU." - } - ] - } - }, "x-ms-account-kind": { "type": "string", "description": "Identifies the account kind", @@ -7997,59 +13253,128 @@ ] } }, - "x-ms-is-hns-enabled": { - "type": "boolean", - "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/?restype=service&comp=stats": { - "get": { - "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/TimeoutParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/StorageServiceStats" - }, - "headers": { "x-ms-client-request-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." }, + "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", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-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-sku-name": { + "type": "string", + "description": "Identifies the sku name of the account", + "enum": [ + "Standard_LRS", + "tandard_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": "tandard_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." + } + ] + } + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/?restype=service&comp=stats": { + "get": { + "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": [ + { + "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "clientRequestId" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/StorageServiceStats" + }, + "headers": { + "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-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." } } }, @@ -8064,10 +13389,6 @@ } }, "definitions": { - "AcceptRangesResponseHeader": { - "type": "object", - "description": "The accept ranges response header." - }, "AccessPolicy": { "type": "object", "description": "Represents an access policy.", @@ -8189,18 +13510,6 @@ ] } }, - "AccessTierChangeTimeResponseHeader": { - "type": "object", - "description": "The access tier change time response header." - }, - "AccessTierInferredResponseHeader": { - "type": "object", - "description": "The access tier inferred response header." - }, - "AccessTierResponseHeader": { - "type": "object", - "description": "The access tier response header." - }, "AccountKind": { "type": "string", "description": "The account kind.", @@ -8243,10 +13552,6 @@ ] } }, - "AccountKindResponseHeader": { - "type": "object", - "description": "The account kind response header." - }, "ArchiveStatus": { "type": "string", "description": "The archive status.", @@ -8261,32 +13566,28 @@ "modelAsString": true, "values": [ { - "name": "rehydrate-pending-to-hot", + "name": "RehydratePendingToHot", "value": "rehydrate-pending-to-hot", "description": "The archive status is rehydrating pending to hot." }, { - "name": "rehydrate-pending-to-cool", + "name": "RehydratePendingToCool", "value": "rehydrate-pending-to-cool", "description": "The archive status is rehydrating pending to cool." }, { - "name": "rehydrate-pending-to-archive", + "name": "RehydratePendingToArchive", "value": "rehydrate-pending-to-archive", "description": "The archive status is rehydrating pending to archive." }, { - "name": "rehydrate-pending-to-expired", + "name": "RehydratePendingToExpired", "value": "rehydrate-pending-to-expired", "description": "The archive status is rehydrating pending to expired." } ] } }, - "ArchiveStatusResponseHeader": { - "type": "object", - "description": "The archive status response header." - }, "ArrowConfiguration": { "type": "object", "description": "Represents the Apache Arrow configuration.", @@ -8336,26 +13637,6 @@ "format": "uuid", "description": "Universally Unique Identifier" }, - "BlobAppendOffsetResponseHeader": { - "type": "object", - "description": "The blob append offset response header." - }, - "BlobCommittedBlockCountResponseHeader": { - "type": "object", - "description": "The blob committed block count response header." - }, - "BlobContentLengthRequired": { - "type": "object", - "description": "The blob content length required parameter." - }, - "BlobContentLengthResponseHeader": { - "type": "object", - "description": "The blob content-length response header." - }, - "BlobContentMd5ResponseHeader": { - "type": "object", - "description": "The blob content MD5 response header." - }, "BlobCopySourceTags": { "type": "string", "description": "The blob copy source tags types.", @@ -8368,12 +13649,12 @@ "modelAsString": true, "values": [ { - "name": "REPLACE", + "name": "Replace", "value": "REPLACE", "description": "The replace blob source tags option." }, { - "name": "COPY", + "name": "Copy", "value": "COPY", "description": "The copy blob source tags option." } @@ -8791,10 +14072,6 @@ "eTag" ] }, - "BlobSequenceNumberResponseHeader": { - "type": "object", - "description": "The blob sequence number response header." - }, "BlobTag": { "type": "object", "description": "The blob tags.", @@ -8860,10 +14137,6 @@ ] } }, - "BlobTypeResponseHeader": { - "type": "object", - "description": "The blob type response header." - }, "BlockListType": { "type": "string", "description": "The block list types.", @@ -8877,17 +14150,17 @@ "modelAsString": true, "values": [ { - "name": "committed", + "name": "Committed", "value": "committed", "description": "The list of committed blocks." }, { - "name": "uncommitted", + "name": "Uncomitted", "value": "uncommitted", "description": "The list of uncommitted blocks." }, { - "name": "all", + "name": "All", "value": "all", "description": "Both lists together." } @@ -8926,10 +14199,6 @@ "latest" ] }, - "CacheControlResponseHeader": { - "type": "object", - "description": "The Cache-Control response header." - }, "ClearRange": { "type": "object", "description": "The clear range.", @@ -8950,10 +14219,6 @@ "end" ] }, - "ClientRequestIdResponseHeader": { - "type": "object", - "description": "The client request ID response header." - }, "ContainerItem": { "type": "object", "description": "An Azure Storage container.", @@ -9072,50 +14337,6 @@ "eTag" ] }, - "ContentCrc64ResponseHeader": { - "type": "object", - "description": "The content CRC 64 response header." - }, - "ContentDispositionResponseHeader": { - "type": "object", - "description": "The Content-Disposition response header." - }, - "ContentEncodingResponseParameter": { - "type": "object", - "description": "The Content-Encoding response header." - }, - "ContentLanguageResponseHeader": { - "type": "object", - "description": "The Content-Language response header." - }, - "ContentLengthResponseHeader": { - "type": "object", - "description": "The Content-Length response header." - }, - "ContentMd5ResponseHeader": { - "type": "object", - "description": "The Content-MD5 response header." - }, - "ContentRangeResponseHeader": { - "type": "object", - "description": "The Content-Range response header." - }, - "CopyCompletionTimeResponseHeader": { - "type": "object", - "description": "The copy completion time response header." - }, - "CopyIdResponseHeader": { - "type": "object", - "description": "The copy ID response header." - }, - "CopyProgressResponseHeader": { - "type": "object", - "description": "The copy progress response header." - }, - "CopySourceResponseHeader": { - "type": "object", - "description": "The copy source response header." - }, "CopyStatus": { "type": "string", "description": "The copy status.", @@ -9130,36 +14351,28 @@ "modelAsString": true, "values": [ { - "name": "pending", + "name": "Pending", "value": "pending", "description": "The copy operation is pending." }, { - "name": "success", + "name": "Success", "value": "success", "description": "The copy operation succeeded." }, { - "name": "failed", + "name": "Failed", "value": "failed", "description": "The copy operation failed." }, { - "name": "aborted", + "name": "Aborted", "value": "aborted", "description": "The copy operation is aborted." } ] } }, - "CopyStatusDescriptionResponseHeader": { - "type": "object", - "description": "The copy status description response header." - }, - "CopyStatusResponseHeader": { - "type": "object", - "description": "The copy status response header." - }, "CorsRule": { "type": "object", "description": "The CORS rule.", @@ -9194,18 +14407,6 @@ "maxAgeInSeconds" ] }, - "CreationTimeResponseHeader": { - "type": "object", - "description": "The creation time response header." - }, - "DateResponseHeader": { - "type": "object", - "description": "The Date response header" - }, - "DefaultEncryptionScopeResponseHeader": { - "type": "object", - "description": "The default encryption scope response header." - }, "DeleteSnapshotsOptionType": { "type": "string", "description": "The delete snapshots option type.", @@ -9218,12 +14419,12 @@ "modelAsString": true, "values": [ { - "name": "none", + "name": "Nonne", "value": "none", "description": "The delete snapshots include option is not specified." }, { - "name": "include", + "name": "Include", "value": "include", "description": "The delete snapshots include option is include." } @@ -9256,30 +14457,6 @@ } } }, - "DenyEncryptionScopeOverrideResponseHeader": { - "type": "object", - "description": "The deny encryption scope override response header." - }, - "DestinationSnapshotResponseHeader": { - "type": "object", - "description": "The destination snapshot response header." - }, - "EncryptionKeySha256ResponseHeader": { - "type": "object", - "description": "The encryption key SHA256 response header." - }, - "EncryptionScopeResponseHeader": { - "type": "object", - "description": "The encryption scope response header." - }, - "EtagResponseHeader": { - "type": "object", - "description": "The ETag response header" - }, - "ExpiresOnResponseHeader": { - "type": "object", - "description": "The expires on response header." - }, "FilterBlobItem": { "type": "object", "description": "The filter blob item.", @@ -9353,12 +14530,12 @@ "modelAsString": true, "values": [ { - "name": "none", + "name": "None", "value": "none", "description": "The filter includes no versions." }, { - "name": "versions", + "name": "Versions", "value": "versions", "description": "The filter includes n versions." } @@ -9396,67 +14573,23 @@ "modelAsString": true, "values": [ { - "name": "live", + "name": "Live", "value": "live", "description": "The geo replication is live." }, { - "name": "bootstrap", + "name": "Bootstrap", "value": "bootstrap", "description": "The geo replication is bootstrap." }, { - "name": "unavailable", + "name": "Unavailable", "value": "unavailable", "description": "The geo replication is unavailable." } ] } }, - "HasImmutabilityPolicyResponseHeader": { - "type": "object", - "description": "The has immutability policy response header." - }, - "HasLegalHoldResponseHeader": { - "type": "object", - "description": "The has legal hold response header." - }, - "ImmutabilityPolicyExpiresOnResponseHeader": { - "type": "object", - "description": "The immutability policy expires on response header." - }, - "ImmutabilityPolicyExpiryResponseHeader": { - "type": "object", - "description": "The immutability policy expiration response header." - }, - "ImmutabilityPolicyModeResponseHeader": { - "type": "object", - "description": "The immutability policy mode response header." - }, - "IsCurrentVersionResponseHeader": { - "type": "object", - "description": "The is current version response header." - }, - "IsHierarchicalNamespaceEnabledResponseHeader": { - "type": "object", - "description": "The is hierarchical namespace enabled response header." - }, - "IsImmutableStorageWithVersioningEnabledResponseHeader": { - "type": "object", - "description": "The is immutable storage with versioning enable response header." - }, - "IsIncrementalCopyResponseHeader": { - "type": "object", - "description": "The is incremental copy response header." - }, - "IsSealedResponseHeader": { - "type": "object", - "description": "The is sealed response header." - }, - "IsServerEncryptedResponseHeader": { - "type": "object", - "description": "The is server encrypted response header." - }, "JsonTextConfiguration": { "type": "object", "description": "Represents the JSON text configuration.", @@ -9485,14 +14618,6 @@ "expiry" ] }, - "LastAccessedResponseHeader": { - "type": "object", - "description": "The last accessed response header." - }, - "LastModifiedResponseHeader": { - "type": "object", - "description": "The last modified response header" - }, "LeaseDuration": { "type": "string", "description": "The lease duration.", @@ -9505,26 +14630,18 @@ "modelAsString": true, "values": [ { - "name": "infinite", + "name": "Infinite", "value": "infinite", "description": "The lease is of infinite duration." }, { - "name": "fixed", + "name": "Fixed", "value": "fixed", "description": "The lease is of fixed duration." } ] } }, - "LeaseDurationResponseHeader": { - "type": "object", - "description": "The lease duration response header." - }, - "LeaseIdResponseHeader": { - "type": "object", - "description": "The lease ID response header." - }, "LeaseState": { "type": "string", "description": "The lease state.", @@ -9540,37 +14657,33 @@ "modelAsString": true, "values": [ { - "name": "available", + "name": "Available", "value": "available", "description": "The lease is available." }, { - "name": "leased", + "name": "Leased", "value": "leased", "description": "The lease is currently leased." }, { - "name": "expired", + "name": "Expired", "value": "expired", "description": "The lease is expired." }, { - "name": "breaking", + "name": "Breaking", "value": "breaking", "description": "The lease is breaking." }, { - "name": "broken", + "name": "Broken", "value": "broken", "description": "The lease is broken." } ] } }, - "LeaseStateResponseHeader": { - "type": "object", - "description": "The lease state response header." - }, "LeaseStatus": { "type": "string", "description": "The lease status.", @@ -9583,30 +14696,18 @@ "modelAsString": true, "values": [ { - "name": "unlocked", + "name": "Unlocked", "value": "unlocked", "description": "The lease is unlocked." }, { - "name": "locked", + "name": "Locked", "value": "locked", "description": "The lease is locked." } ] } }, - "LeaseStatusResponseHeader": { - "type": "object", - "description": "The lease status response header." - }, - "LeaseTimeResponseHeader": { - "type": "object", - "description": "The lease time response header." - }, - "LegalHoldResponseHeader": { - "type": "object", - "description": "The legal hold response header." - }, "ListBlobsFlatSegmentResponse": { "type": "object", "description": "An enumeration of blobs.", @@ -9711,52 +14812,52 @@ "modelAsString": true, "values": [ { - "name": "copies", + "name": "Copies", "value": "copies", "description": "The include copies." }, { - "name": "deleted", + "name": "Deleted", "value": "deleted", "description": "The include deleted blobs." }, { - "name": "metadata", + "name": "Metadata", "value": "metadata", "description": "The include metadata." }, { - "name": "snapshots", + "name": "Snapshots", "value": "snapshots", "description": "The include snapshots." }, { - "name": "uncommittedblobs", + "name": "UncommittedBlobs", "value": "uncommittedblobs", "description": "The include uncommitted blobs." }, { - "name": "versions", + "name": "Versions", "value": "versions", "description": "The include versions." }, { - "name": "tags", + "name": "Tags", "value": "tags", "description": "The include tags." }, { - "name": "immutabilitypolicy", + "name": "ImmutabilityPolicy", "value": "immutabilitypolicy", "description": "The include immutable policy." }, { - "name": "legalhold", + "name": "LegalHold", "value": "legalhold", "description": "The include legal hold." }, { - "name": "deletedwithversions", + "name": "DeletedWithVersions", "value": "deletedwithversions", "description": "The include deleted with versions." } @@ -9835,13 +14936,6 @@ "retentionPolicy" ] }, - "MetadataParameter": { - "type": "object", - "description": "The metadata parameter.", - "additionalProperties": { - "type": "string" - } - }, "Metrics": { "type": "object", "description": "The metrics properties.", @@ -9919,10 +15013,6 @@ "type": "string" } }, - "ObjectReplicationPolicyIdResponseHeader": { - "type": "object", - "description": "The object replication policy response header." - }, "PageList": { "type": "object", "description": "Represents a page list.", @@ -10056,10 +15146,6 @@ ] } }, - "PublicAccessResponseHeader": { - "type": "object", - "description": "The public access response header." - }, "PublicAccessType": { "type": "string", "description": "The public access types.", @@ -10072,12 +15158,12 @@ "modelAsString": true, "values": [ { - "name": "blob", + "name": "Blob", "value": "blob", "description": "Blob access." }, { - "name": "container", + "name": "Container", "value": "container", "description": "Container access." } @@ -10184,22 +15270,22 @@ "modelAsString": true, "values": [ { - "name": "delimited", + "name": "Delimited", "value": "delimited", "description": "The query format type is delimited." }, { - "name": "json", + "name": "JSON", "value": "json", "description": "The query format type is JSON." }, { - "name": "arrow", + "name": "Arrow", "value": "arrow", "description": "The query format type is Apache Arrow." }, { - "name": "parquet", + "name": "Parquet", "value": "parquet", "description": "The query format type is Parquet." } @@ -10230,14 +15316,6 @@ ] } }, - "RehydratePriorityResponseHeader": { - "type": "object", - "description": "The rehydrate priority response header." - }, - "RequestIdResponseHeader": { - "type": "object", - "description": "The request ID response header." - }, "RetentionPolicy": { "type": "object", "description": "The retention policy.", @@ -10275,17 +15353,17 @@ "modelAsString": true, "values": [ { - "name": "increment", + "name": "Increment", "value": "increment", "description": "Increment the sequence number." }, { - "name": "max", + "name": "Max", "value": "max", "description": "Set the maximum for the sequence number." }, { - "name": "update", + "name": "Update", "value": "update", "description": "Update the sequence number." } @@ -10310,19 +15388,12 @@ "accessPolicy" ] }, - "SignedIdentifiers": { - "type": "array", - "description": "Represents an array of signed identifiers", - "items": { - "$ref": "#/definitions/SignedIdentifier" - } - }, "SkuName": { "type": "string", "description": "The SKU types", "enum": [ "Standard_LRS", - "Standard_GRS", + "tandard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS" @@ -10332,41 +15403,33 @@ "modelAsString": true, "values": [ { - "name": "Standard_LRS", + "name": "StandardLRS", "value": "Standard_LRS", "description": "The standard LRS SKU." }, { - "name": "Standard_GRS", - "value": "Standard_GRS", + "name": "StandardGRS", + "value": "tandard_GRS", "description": "The standard GRS SKU." }, { - "name": "Standard_RAGRS", + "name": "StandardRAGRS", "value": "Standard_RAGRS", "description": "The standard RAGRS SKU." }, { - "name": "Standard_ZRS", + "name": "StandardZRS", "value": "Standard_ZRS", "description": "The standard ZRS SKU." }, { - "name": "Premium_LRS", + "name": "PremiumLRS", "value": "Premium_LRS", "description": "The premium LRS SKU." } ] } }, - "SkuNameResponseHeader": { - "type": "object", - "description": "The SKU name response header." - }, - "SnapshotResponseHeader": { - "type": "object", - "description": "The snapshot response header." - }, "StaticWebsite": { "type": "object", "description": "The static website properties.", @@ -10445,10 +15508,6 @@ "geoReplication" ] }, - "TagCountResponseHeader": { - "type": "object", - "description": "The tag count response header." - }, "UserDelegationKey": { "type": "object", "description": "A user delegation key.", @@ -10492,14 +15551,6 @@ "value" ] }, - "VersionIdResponseHeader": { - "type": "object", - "description": "The version ID response header." - }, - "VersionResponseHeader": { - "type": "object", - "description": "The version response header." - }, "Versions": { "type": "string", "description": "The Azure.Storage.Blob service versions.", @@ -10550,10 +15601,10 @@ } }, "parameters": { - "AccessTierOptionalParameter": { + "PremiumPageBlobAccessTierOptional": { "name": "x-ms-access-tier", "in": "header", - "description": "Optional. The tier to be set on the blob.", + "description": "Optional. Indicates the tier to be set on the page blob.", "required": false, "type": "string", "enum": [ @@ -10567,1125 +15618,61 @@ "P50", "P60", "P70", - "P80", - "Hot", - "Cool", - "Archive" + "P80" ], "x-ms-enum": { - "name": "AccessTier", + "name": "PremiumPageBlobAccessTier", "modelAsString": true, "values": [ { "name": "P4", "value": "P4", - "description": "The hot P4 tier." + "description": "The premium page blob access tier is P4." }, { "name": "P6", "value": "P6", - "description": "The hot P6 tier." + "description": "The premium page blob access tier is P6." }, { "name": "P10", "value": "P10", - "description": "The hot P10 tier." + "description": "The premium page blob access tier is P10." }, { "name": "P15", "value": "P15", - "description": "The hot P15 tier." + "description": "The premium page blob access tier is P15." }, { "name": "P20", "value": "P20", - "description": "The hot P20 tier." + "description": "The premium page blob access tier is P20." }, { "name": "P30", "value": "P30", - "description": "The hot P30 tier." + "description": "The premium page blob access tier is P30." }, { "name": "P40", "value": "P40", - "description": "The hot P40 tier." + "description": "The premium page blob access tier is P40." }, { "name": "P50", "value": "P50", - "description": "The hot P50 tier." + "description": "The premium page blob access tier is P50." }, { "name": "P60", "value": "P60", - "description": "The hot P60 tier." + "description": "The premium page blob access tier is P60." }, { "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." - } - ] - }, - "x-ms-parameter-location": "method", - "x-ms-client-name": "accessTier" - }, - "AccessTierRequiredParameter": { - "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" - ], - "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." - } - ] - }, - "x-ms-parameter-location": "method", - "x-ms-client-name": "accessTier" - }, - "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-parameter-location": "method", - "x-ms-client-name": "version" - }, - "BlobBlocksParameter": { - "name": "blocks", - "in": "body", - "description": "Blob Blocks.", - "required": true, - "schema": { - "$ref": "#/definitions/BlockLookupList" - }, - "x-ms-parameter-location": "method" - }, - "BlobCacheControlParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "blobCacheControl" - }, - "BlobConditionAppendPosParameter": { - "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": true, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "x-ms-client-name": "blobConditionAppendPosition" - }, - "BlobConditionMaxSizeParameter": { - "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": true, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "x-ms-client-name": "blobConditionMaxSize" - }, - "BlobContentDispositionParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "blobContentDisposition" - }, - "BlobContentEncodingParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "blobContentEncoding" - }, - "BlobContentLanguageParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "blobContentLanguage" - }, - "BlobContentLengthRequiredParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "blobContentLength" - }, - "BlobContentMd5Parameter": { - "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", - "x-ms-parameter-location": "method", - "x-ms-client-name": "blobContentMd5" - }, - "BlobContentTypeParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "blobContentType" - }, - "BlobDeleteTypeParameter": { - "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": [ - "none", - "include" - ], - "x-ms-enum": { - "name": "DeleteSnapshotsOptionType", - "modelAsString": true, - "values": [ - { - "name": "none", - "value": "none", - "description": "The delete snapshots include option is not specified." - }, - { - "name": "include", - "value": "include", - "description": "The delete snapshots include option is include." - } - ] - }, - "x-ms-parameter-location": "method" - }, - "BlobExpiryOptionsParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "expiryOptions" - }, - "BlobExpiryTimeParameter": { - "name": "x-ms-expiry-time", - "in": "header", - "description": "The time to set the blob to expiry.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "expiryTime" - }, - "BlobNameParameter": { - "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}$", - "x-ms-parameter-location": "method" - }, - "BlobPublicAccessParameter": { - "name": "x-ms-blob-public-access", - "in": "header", - "description": "Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'.", - "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-parameter-location": "method", - "x-ms-client-name": "publicAccess" - }, - "BlobSequenceNumberParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "blobSequenceNumber" - }, - "BlobTagsBodyParameter": { - "name": "tags", - "in": "body", - "description": "The blob tags.", - "required": true, - "schema": { - "$ref": "#/definitions/BlobTags" - }, - "x-ms-parameter-location": "method" - }, - "BlobTagsHeaderParameter": { - "name": "x-ms-tags", - "in": "header", - "description": "Optional. Used to set blob tags in various blob operations.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "blobTags" - }, - "BlockIdParameter": { - "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-parameter-location": "method" - }, - "BlockListTypeParameter": { - "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-parameter-location": "method" - }, - "BodyParameter": { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "byte" - }, - "x-ms-parameter-location": "method" - }, - "ClientRequestIdParameter": { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "clientRequestId" - }, - "ContainerAclParameter": { - "name": "acl", - "in": "body", - "description": "The access control list for the container.", - "required": true, - "schema": { - "$ref": "#/definitions/SignedIdentifiers" - }, - "x-ms-parameter-location": "method" - }, - "ContainerNameParameter": { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method" - }, - "ContentCrc64Parameter": { - "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-parameter-location": "method", - "x-ms-client-name": "contentCrc64" - }, - "ContentLengthParameter": { - "name": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "x-ms-client-name": "contentLength" - }, - "ContentMd5Parameter": { - "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-parameter-location": "method", - "x-ms-client-name": "contentMd5" - }, - "CopyIdParameter": { - "name": "x-ms-copy-id", - "in": "header", - "description": "The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "copyId" - }, - "CopySourceAuthorizationParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "copySourceAuthorization" - }, - "CopySourceBlobPropertiesParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "copySourceBlobProperties" - }, - "CopySourceParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "copySource" - }, - "CopySourceTagsParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "copySourceTags" - }, - "DefaultEncryptionScopeParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "defaultEncryptionScope" - }, - "DeleteSnapshotsParameter": { - "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": [ - "none", - "include" - ], - "x-ms-enum": { - "name": "DeleteSnapshotsOptionType", - "modelAsString": true, - "values": [ - { - "name": "none", - "value": "none", - "description": "The delete snapshots include option is not specified." - }, - { - "name": "include", - "value": "include", - "description": "The delete snapshots include option is include." - } - ] - }, - "x-ms-parameter-location": "method", - "x-ms-client-name": "deleteSnapshots" - }, - "DeletedContainerNameParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "deletedContainerName" - }, - "DeletedContainerVersionParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "deletedContainerVersion" - }, - "DelimiterParameter": { - "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", - "x-ms-parameter-location": "method" - }, - "DenyEncryptionScopeOverrideParameter": { - "name": "x-ms-deny-encryption-scope-override", - "in": "header", - "description": "Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container.", - "required": false, - "type": "boolean", - "x-ms-parameter-location": "method", - "x-ms-client-name": "denyEncryptionScopeOverride" - }, - "EncryptionAlgorithmParameter": { - "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", - "x-ms-parameter-location": "method", - "x-ms-client-name": "encryptionAlgorithm" - }, - "EncryptionKeyParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "encryptionKey" - }, - "EncryptionKeySha256Parameter": { - "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-parameter-location": "method", - "x-ms-client-name": "encryptionKeySha256" - }, - "EncryptionScopeParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "encryptionScope" - }, - "FilterBlobsInclude": { - "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": "FilterBlobsIncludes", - "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", - "x-ms-parameter-location": "method" - }, - "FilterBlobsWhere": { - "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", - "x-ms-parameter-location": "method" - }, - "GetRangeContentCrc64Parameter": { - "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-parameter-location": "method", - "x-ms-client-name": "rangeContentCrc64" - }, - "GetRangeContentMd5Parameter": { - "name": "x-ms-range-get-content-md5", - "in": "header", - "description": "Optional. When this header is set to true and specified together with the Range header, 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-parameter-location": "method", - "x-ms-client-name": "rangeContentMd5" - }, - "IfMatchParameter": { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "ifMatch" - }, - "IfModifiedSinceParameter": { - "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-rfc1123", - "x-ms-parameter-location": "method", - "x-ms-client-name": "ifModifiedSince" - }, - "IfNoneMatchParameter": { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "ifNoneMatch" - }, - "IfSequenceNumberEqualToParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "ifSequenceNumberEqualTo" - }, - "IfSequenceNumberLessThanOrEqualToParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" - }, - "IfSequenceNumberLessThanParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "ifSequenceNumberLessThan" - }, - "IfTagsParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "ifTags" - }, - "IfUnmodifiedSinceParameter": { - "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-rfc1123", - "x-ms-parameter-location": "method", - "x-ms-client-name": "ifUnmodifiedSince" - }, - "ImmutabilityPolicyExpiryParameter": { - "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-rfc1123", - "x-ms-parameter-location": "method", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - "ImmutabilityPolicyModeParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "immutabilityPolicyMode" - }, - "LeaseBreakPeriodParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "leaseBreakPeriod" - }, - "LeaseDurationParameter": { - "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": true, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method", - "x-ms-client-name": "leaseDuration" - }, - "LeaseIdOptionalParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "leaseId" - }, - "LeaseIdRequired": { - "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-parameter-location": "method", - "x-ms-client-name": "leaseId" - }, - "LeaseIdRequiredParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "leaseId" - }, - "LegalHoldOptionalParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "legalHold" - }, - "LegalHoldRequiredParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "legalHold" - }, - "ListBlobsInclude": { - "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": [ - "copies", - "deleted", - "metadata", - "snapshots", - "uncommittedblobs", - "versions", - "tags", - "immutabilitypolicy", - "legalhold", - "deletedwithversions" - ], - "x-ms-enum": { - "name": "ListBlobsIncludes", - "modelAsString": true, - "values": [ - { - "name": "copies", - "value": "copies", - "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", - "x-ms-parameter-location": "method" - }, - "MarkerParameter": { - "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", - "x-ms-parameter-location": "method" - }, - "MaxResultsParameter": { - "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", - "x-ms-parameter-location": "method" - }, - "PrefixParameter": { - "name": "prefix", - "in": "query", - "description": "Filters the results to return only containers whose name begins with the specified prefix.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method" - }, - "PremiumPageBlobAccessTierOptional": { - "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." + "description": "The premium page blob access tier is P70." }, { "name": "P80", @@ -11696,287 +15683,6 @@ }, "x-ms-parameter-location": "method", "x-ms-client-name": "accessTier" - }, - "PrevSnapshotParameter": { - "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": true, - "type": "string", - "x-ms-parameter-location": "method" - }, - "PrevSnapshotUrlParameter": { - "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": true, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "previousSnapshotUrl" - }, - "ProposedLeaseIdOptional": { - "name": "x-ms-proposed-lease-id", - "in": "header", - "description": "Optional. The proposed lease ID for the container.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "proposedLeaseId" - }, - "ProposedLeaseIdRequired": { - "name": "x-ms-proposed-lease-id", - "in": "header", - "description": "Required. The proposed lease ID for the container.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "proposedLeaseId" - }, - "QueryRequestParameter": { - "name": "queryRequest", - "in": "body", - "description": "The query request", - "required": true, - "schema": { - "$ref": "#/definitions/QueryRequest" - }, - "x-ms-parameter-location": "method" - }, - "RangeParameter": { - "name": "x-ms-range", - "in": "header", - "description": "Return only the bytes of the blob in the specified range.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "range" - }, - "RangeRequiredPutPageFromUrlParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "range" - }, - "RehydratePriorityParameter": { - "name": "x-ms-rehydrate-priority", - "in": "header", - "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", - "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-parameter-location": "method", - "x-ms-client-name": "rehydratePriority" - }, - "SealBlobParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "sealBlob" - }, - "SequenceNumberActionParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "sequenceNumberAction" - }, - "SequenceNumberParameter": { - "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": true, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "x-ms-client-name": "blobSequenceNumber" - }, - "SnapshotParameter": { - "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", - "x-ms-parameter-location": "method" - }, - "SourceContainerNameParameter": { - "name": "x-ms-source-container-name", - "in": "header", - "description": "Required. Specifies the name of the container to rename.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "sourceContainerName" - }, - "SourceContentCrc64Parameter": { - "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", - "x-ms-parameter-location": "method", - "x-ms-client-name": "sourceContentCrc64" - }, - "SourceContentMd5Parameter": { - "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-parameter-location": "method", - "x-ms-client-name": "sourceContentMd5" - }, - "SourceIfMatchParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "sourceIfMatch" - }, - "SourceIfModifiedSinceParameter": { - "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-rfc1123", - "x-ms-parameter-location": "method", - "x-ms-client-name": "sourceIfModifiedSince" - }, - "SourceIfNoneMatchParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "sourceIfNoneMatch" - }, - "SourceIfTagsParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "sourceIfTags" - }, - "SourceIfUnmodifiedSinceParameter": { - "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-rfc1123", - "x-ms-parameter-location": "method", - "x-ms-client-name": "sourceIfUnmodifiedSince" - }, - "SourceLeaseIdParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "sourceLeaseId" - }, - "SourceRangeParameter": { - "name": "x-ms-source-range", - "in": "header", - "description": "Bytes of source data in the specified range.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "sourceRange" - }, - "SourceRangeRequiredPutPageFromUrlParameter": { - "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-parameter-location": "method", - "x-ms-client-name": "sourceRange" - }, - "SourceUrlParameter": { - "name": "x-ms-source-url", - "in": "header", - "description": "Specify a URL to the copy source.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-client-name": "sourceUrl" - }, - "TimeoutParameter": { - "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", - "x-ms-parameter-location": "method" - }, - "VersionIdParameter": { - "name": "versionid", - "in": "header", - "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": true, - "type": "string", - "x-ms-parameter-location": "method" } } } From 1be3d63d6811dcc0cd3b18bd49d15dbe0486c441 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Mon, 30 Sep 2024 15:12:25 -0700 Subject: [PATCH 033/129] add suppressions --- specification/storage/Microsoft.BlobStorage/main.tsp | 2 ++ specification/storage/Microsoft.BlobStorage/routes.tsp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index c839bbab9be9..2803fe6243dc 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -30,6 +30,8 @@ using Azure.Core; ) namespace Azure.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 { @useDependency(Azure.Core.Versions.v1_0_Preview_1) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 69e38c52ce27..c6aaadd29f3b 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -704,6 +704,7 @@ interface BlobService { ...ClientRequestIdParameter, ...ApiVersionParameter, ): { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" @statusCode statusCode: 200 | 206; ...BodyParameter; @@ -2330,6 +2331,7 @@ interface BlobQueryService { ...ApiVersionParameter, ...ClientRequestIdParameter, ): { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" @statusCode statusCode: 200 | 206; ...BodyParameter; From 257ba9ca03899e039dbfa23d674a7f9ea1bf7206 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Mon, 30 Sep 2024 15:13:08 -0700 Subject: [PATCH 034/129] update code dependency --- specification/storage/Microsoft.BlobStorage/main.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index 2803fe6243dc..33653093b354 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -34,7 +34,7 @@ namespace Azure.Storage.Blob; #suppress "@azure-tools/typespec-azure-core/no-enum" "Following standard typespec recommendation" @doc("The Azure.Storage.Blob service versions.") enum Versions { - @useDependency(Azure.Core.Versions.v1_0_Preview_1) + @useDependency(Azure.Core.Versions.v1_0_Preview_2) @doc("The 2020-10-02-preview version of the Azure.Storage.Blob service.") `2020-10-02-preview`, From b8b9fce3d4822865144d11a561dba038e1a95da9 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Mon, 30 Sep 2024 17:17:20 -0700 Subject: [PATCH 035/129] remove package.json + lock --- .../Microsoft.BlobStorage/package-lock.json | 909 ------------------ .../Microsoft.BlobStorage/package.json | 17 - 2 files changed, 926 deletions(-) delete mode 100644 specification/storage/Microsoft.BlobStorage/package-lock.json delete mode 100644 specification/storage/Microsoft.BlobStorage/package.json diff --git a/specification/storage/Microsoft.BlobStorage/package-lock.json b/specification/storage/Microsoft.BlobStorage/package-lock.json deleted file mode 100644 index c2dfa5ea8a86..000000000000 --- a/specification/storage/Microsoft.BlobStorage/package-lock.json +++ /dev/null @@ -1,909 +0,0 @@ -{ - "name": "azure-storage-blob", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "azure-storage-blob", - "version": "0.1.0", - "dependencies": { - "@azure-tools/typespec-autorest": "latest", - "@azure-tools/typespec-azure-core": "latest", - "@azure-tools/typespec-client-generator-core": "latest", - "@typespec/compiler": "latest", - "@typespec/openapi": "latest", - "@typespec/openapi3": "latest", - "@typespec/rest": "latest", - "@typespec/xml": "latest" - } - }, - "node_modules/@azure-tools/typespec-autorest": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.41.1.tgz", - "integrity": "sha512-m2Rq8aFMvICfkG/+B1kGSDepCUDHhiQ93y1/IcE+XU1+IU2iuNoSgUd0lHgksP5Aqnvs3Wm9JDmA9nMNjOM1Ww==", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.41.0", - "@azure-tools/typespec-client-generator-core": "~0.41.1", - "@typespec/compiler": "~0.55.0", - "@typespec/http": "~0.55.0", - "@typespec/openapi": "~0.55.0", - "@typespec/rest": "~0.55.0", - "@typespec/versioning": "~0.55.0" - } - }, - "node_modules/@azure-tools/typespec-azure-core": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.41.0.tgz", - "integrity": "sha512-bnVrLxyjhMfKv75POL3m+lWjyqpLtWYEM9t2mrhFECHfW3+gWzTKIg98oNMKLXmev/sCc9QhbkKLs72jqxNL1Q==", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.55.0", - "@typespec/http": "~0.55.0", - "@typespec/rest": "~0.55.0" - } - }, - "node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.41.9", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.41.9.tgz", - "integrity": "sha512-OKtt0p/MwDZ4lJwN4Wz2u28vLF65iQTpbikJ2iH954K11p8bo4R2LNGI7FMoE3FQKnpVqd8CwZRejG4KZX/yvg==", - "dependencies": { - "change-case": "~5.4.4", - "pluralize": "^8.0.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.41.0", - "@typespec/compiler": "~0.55.0", - "@typespec/http": "~0.55.0", - "@typespec/rest": "~0.55.0", - "@typespec/versioning": "~0.55.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dependencies": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@typespec/compiler": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.55.0.tgz", - "integrity": "sha512-JxBkP7fTc3yzDYZ+Ms+ZHYlL2Ym22oloLDl6107SGaShNJBdQlabgE0aV8WvYRRBYt8g0RNb+sDLEcjvahj6Gw==", - "dependencies": { - "@babel/code-frame": "~7.24.2", - "ajv": "~8.12.0", - "change-case": "~5.4.3", - "globby": "~14.0.1", - "mustache": "~4.2.0", - "picocolors": "~1.0.0", - "prettier": "~3.2.5", - "prompts": "~2.4.2", - "semver": "^7.6.0", - "vscode-languageserver": "~9.0.1", - "vscode-languageserver-textdocument": "~1.0.11", - "yaml": "~2.4.1", - "yargs": "~17.7.2" - }, - "bin": { - "tsp": "cmd/tsp.js", - "tsp-server": "cmd/tsp-server.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@typespec/http": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.55.0.tgz", - "integrity": "sha512-r30RWzMTJgbyRpdtZxezlvXI/nkAvgilX1OM+s3A039lGLA+JRukgvKIZ3LaNr3lNXHiqeWQDrIZNhqBnpW1zw==", - "peer": true, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.55.0" - } - }, - "node_modules/@typespec/openapi": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.55.0.tgz", - "integrity": "sha512-5T4VuJSOGfMFSs+1dOl3U3BC6VhKAxSTBrwcQDIEEygnqCSbj/tMFDhNfzKYKARRDotgM8ESOrZU6XH5srVR7A==", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.55.0", - "@typespec/http": "~0.55.0" - } - }, - "node_modules/@typespec/openapi3": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.55.0.tgz", - "integrity": "sha512-dfn/wrKSF4Ls1dWMpAguQggoc4HGx2tf3FN2xhBln6EtahNZNgN5sOE+XY0hGPI4MCE5QexMUlXSiXpxzlNA/A==", - "dependencies": { - "yaml": "~2.4.1" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.55.0", - "@typespec/http": "~0.55.0", - "@typespec/openapi": "~0.55.0", - "@typespec/versioning": "~0.55.0" - } - }, - "node_modules/@typespec/rest": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.55.0.tgz", - "integrity": "sha512-RPZnx5D4xdTNiP0l++9IA8mUhnegPxetbdJ5RaG/QX2fTyF/gQ7t6AHIgdq8DfYVXqukQI/iGytJ135ObftbtQ==", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.55.0", - "@typespec/http": "~0.55.0" - } - }, - "node_modules/@typespec/versioning": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.55.0.tgz", - "integrity": "sha512-89LTgkA3IBLnaaM4D4qfsrcEU0g3gasE1MmkrQ2HG21fYX88zKbmR1cKWeUxQx9MIXFOH4cPC9KhA/uLknRVMQ==", - "peer": true, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.55.0" - } - }, - "node_modules/@typespec/xml": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@typespec/xml/-/xml-0.55.0.tgz", - "integrity": "sha512-6UTSxhZsKahjx49VF2W3L/oljQNjMK5bAdUSvupqV34pAeBhoHIMBtXdq0H/roEge/0qF2s5TvBgogkP62EPgQ==", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@typespec/compiler": "~0.55.0" - } - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/change-case": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", - "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==" - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globby": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", - "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "bin": { - "mustache": "bin/mustache" - } - }, - "node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/vscode-jsonrpc": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", - "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/vscode-languageserver": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", - "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", - "dependencies": { - "vscode-languageserver-protocol": "3.17.5" - }, - "bin": { - "installServerIntoExtension": "bin/installServerIntoExtension" - } - }, - "node_modules/vscode-languageserver-protocol": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", - "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", - "dependencies": { - "vscode-jsonrpc": "8.2.0", - "vscode-languageserver-types": "3.17.5" - } - }, - "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", - "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==" - }, - "node_modules/vscode-languageserver-types": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", - "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yaml": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", - "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - } - } -} diff --git a/specification/storage/Microsoft.BlobStorage/package.json b/specification/storage/Microsoft.BlobStorage/package.json deleted file mode 100644 index c2d6d3834703..000000000000 --- a/specification/storage/Microsoft.BlobStorage/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "azure-storage-blob", - "version": "0.1.0", - "type": "module", - "dependencies": { - "@azure-tools/typespec-autorest": "latest", - "@azure-tools/typespec-azure-core": "latest", - "@azure-tools/typespec-client-generator-core": "latest", - "@typespec/compiler": "latest", - "@typespec/openapi": "latest", - "@typespec/openapi3": "latest", - "@typespec/rest": "latest", - "@typespec/xml": "latest" - - }, - "private": true -} From ccae6a2a42c504a9b5d2d5eebfaf336daa7fbbd0 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Mon, 30 Sep 2024 17:24:19 -0700 Subject: [PATCH 036/129] fix query params --- specification/storage/Microsoft.BlobStorage/models.tsp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index ec536d12008d..cd7c8148c745 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -2301,9 +2301,7 @@ alias DelimiterParameter = { /** The list blob includes parameter. */ alias ListBlobsIncludeParameter = { /** Include this parameter to specify one or more datasets to include in the response. */ - @query({ - format: "csv", - }) + @query include?: ListBlobsIncludes[]; }; @@ -2460,9 +2458,7 @@ alias MetadataResponseHeader = Record; /** The filter blobs include parameter. */ alias FilterBlobsIncludeParameter = { /** Include this parameter to specify one or more datasets to include in the response. */ - @query({ - format: "csv", - }) + @query include?: FilterBlobsIncludes[]; }; From d0ab6a159eecb1180cd54affa7d4960e8601624c Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 15:49:59 -0700 Subject: [PATCH 037/129] fix versioning --- specification/storage/Microsoft.BlobStorage/main.tsp | 1 + specification/storage/Microsoft.BlobStorage/models.tsp | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index 33653093b354..bf10451599f7 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -28,6 +28,7 @@ using Azure.Core; endpoint: url, } ) +@versioned(Versions) namespace Azure.Storage.Blob; #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard typespec recommendation" diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index cd7c8148c745..dc522f81d195 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -10,7 +10,6 @@ using TypeSpec.Http; using TypeSpec.Versioning; using Azure.ClientGenerator.Core; -@useDependency(Azure.Core.Versions.v1_0_Preview_1) namespace Azure.Storage.Blob; /** The error response. */ From c136d53902a7317a7c6e1e5f519e6c657b31d98c Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 16:43:24 -0700 Subject: [PATCH 038/129] refactor interface usage, fix operation ids --- .../storage/Microsoft.BlobStorage/routes.tsp | 1027 +++++++---------- 1 file changed, 431 insertions(+), 596 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index c6aaadd29f3b..7ddcbb239f91 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -14,15 +14,14 @@ using TypeSpec.Versioning; using Azure.Core; using Azure.ClientGenerator.Core; -@route("/?restype=service&comp=properties") -interface BlobServiceProperties { +interface Service { /** Get the 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" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put - @operationId("Service_SetProperties") - setServiceProperties( + @route("/?restype=service&comp=properties") + setProperties( /** The storage service properties that specifies the analytics and CORS rules to set on the Blob service. */ @body body: StorageServiceProperties, @@ -39,9 +38,9 @@ interface BlobServiceProperties { /** 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" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" - @operationId("Service_GetProperties") @get - getServiceProperties( + @route("/?restype=service&comp=properties") + getProperties( ...TimeoutParameter, ...ApiVersionParameter, ...ClientRequestIdParameter, @@ -52,15 +51,12 @@ interface BlobServiceProperties { ...RequestIdResponseHeader; ...VersionResponseHeader; } | StorageError; -} -@route("/?restype=service&comp=stats") -interface BlobServiceStatistics { /** 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" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" - @operationId("Service_GetStatistics") @get + @route("/?restype=service&comp=stats") getStatistics( ...TimeoutParameter, ...ApiVersionParameter, @@ -73,16 +69,14 @@ interface BlobServiceStatistics { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/?comp=list") -interface BlobServiceListContainerSegments { /** 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/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get - @operationId("Service_ListContainersSegment") - getContainers( + @route("/?comp=list") + listContainersSegment( ...PrefixParameter, ...TimeoutParameter, ...MarkerParameter, @@ -96,15 +90,12 @@ interface BlobServiceListContainerSegments { ...RequestIdResponseHeader; ...VersionResponseHeader; } | StorageError; -} -@route("/?restype=service&comp=userdelegationkey") -interface BlobServiceUserDelegationKey { /** The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @post - @operationId("Service_GetUserDelegationKey") + @route("/?restype=service&comp=userdelegationkey") getUserDelegationKey( /** The user delegation key info. */ @body body: KeyInfo, @@ -122,16 +113,13 @@ interface BlobServiceUserDelegationKey { ...RequestIdResponseHeader; ...VersionResponseHeader; } | StorageError; -} -@route("/?restype=account&comp=properties") -interface BlobServiceAccountProperties { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get - @operationId("Service_GetAccountInfo") + @route("/?restype=account&comp=properties") getAccountInfo(...ApiVersionParameter): { @statusCode statusCode: 200; ...ClientRequestIdResponseHeader; @@ -142,16 +130,13 @@ interface BlobServiceAccountProperties { ...AccountKindResponseHeader; ...IsHierarchicalNamespaceEnabledResponseHeader; } | StorageError; -} -@route("/?comp=batch") -interface BlobServiceBatch { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post - @operationId("Service_SubmitBatch") + @route("/?comp=batch") submitBatch( ...ContentLengthParameter, ...TimeoutParameter, @@ -162,16 +147,14 @@ interface BlobServiceBatch { ...RequestIdResponseHeader; ...VersionResponseHeader; } | StorageError; -} -@route("/?comp=blobs") -interface FilterBlobsService { /** 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/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get - @operationId("Service_FilterBlobs") - getBlobs( + @route("/?comp=blobs") + filterBlobs( ...FilterBlobsWhereParameter, ...FilterBlobsIncludeParameter, ...TimeoutParameter, @@ -189,15 +172,14 @@ interface FilterBlobsService { } | StorageError; } -@route("/{containerName}?restype=container") -interface BlobServiceContainer { +interface 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put - @operationId("Container_Create") - createContainer( + @route("/{containerName}?restype=container") + create( ...ContainerNameParameter, // TODO: x-ms-meta headers @@ -223,8 +205,8 @@ interface BlobServiceContainer { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get - @operationId("Container_GetProperties") - getContainerProperties( + @route("/{containerName}?restype=container") + getProperties( ...ContainerNameParameter, ...TimeoutParameter, ...ApiVersionParameter, @@ -257,8 +239,8 @@ interface BlobServiceContainer { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @delete - @operationId("Container_Delete") - deleteContainer( + @route("/{containerName}?restype=container") + delete( ...ContainerNameParameter, ...TimeoutParameter, ...ApiVersionParameter, @@ -273,18 +255,15 @@ interface BlobServiceContainer { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?restype=container&comp=metadata") -interface BlobServiceContainerMetadata { /** 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-operation-id" "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 - @operationId("Container_SetMetadata") - setContainerMetadata( + @route("/{containerName}?restype=container&comp=metadata") + setMetadata( ...ContainerNameParameter, // TODO: ...MetadataParameter; @@ -303,16 +282,13 @@ interface BlobServiceContainerMetadata { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?restype=container&comp=acl") -interface BlobServiceContainerAccessPolicy { /** 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" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get - @operationId("Container_GetAccessPolicy") - getContainerccessPolicy( + @route("/{containerName}?restype=container&comp=acl") + getAccessPolicy( ...ContainerNameParameter, ...TimeoutParameter, ...ApiVersionParameter, @@ -336,8 +312,8 @@ interface BlobServiceContainerAccessPolicy { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put - @operationId("Container_SetAccessPolicy") - setContainerAccessPolicy( + @route("/{containerName}?restype=container&comp=acl") + setAccessPolicy( ...ContainerNameParameter, ...ContainerAclParameter, ...TimeoutParameter, @@ -355,18 +331,15 @@ interface BlobServiceContainerAccessPolicy { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?restype=container&comp=undelete") -interface ContainerRestoreService { /** Restores a previously-deleted container. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 - @operationId("Container_Undelete") - undeleteContainer( + @route("/{containerName}?restype=container&comp=undelete") + undelete( ...ContainerNameParameter, ...DeletedContainerNameParameter, ...DeletedContainerVersionParameter, @@ -380,18 +353,15 @@ interface ContainerRestoreService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?restype=container&comp=rename") -interface ContainerRenameService { /** Renames an existing container. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 - @operationId("Container_Rename") - renameContainer( + @route("/{containerName}?restype=container&comp=rename") + rename( ...ContainerNameParameter, ...SourceContainerNameParameter, ...SourceLeaseIdParameter, @@ -405,16 +375,13 @@ interface ContainerRenameService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?restype=container&comp=batch") -interface ContainerBatchService { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post - @operationId("Container_SubmitBatch") + @route("/{containerName}?restype=container&comp=batch") submitBatch( /** The batch request content */ ...BodyParameter, @@ -430,16 +397,14 @@ interface ContainerBatchService { ...RequestIdResponseHeader; ...VersionResponseHeader; } | StorageError; -} -@route("/{containerName}?restype=container&comp=blobs") -interface BlobListService { /** 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/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get - @operationId("Container_FilterBlobs") - getBlobs( + @route("/{containerName}?restype=container&comp=blobs") + filterBlobs( ...ContainerNameParameter, ...MarkerParameter, ...MaxResultsParameter, @@ -456,17 +421,14 @@ interface BlobListService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?comp=lease&restype=container&acquire") -interface ContainerLeaseService { /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 - @operationId("Container_AcquireLease") + @route("/{containerName}?comp=lease&restype=container&acquire") acquireLease( ...ContainerNameParameter, ...LeaseDurationParameter, @@ -486,17 +448,14 @@ interface ContainerLeaseService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?comp=lease&restype=container&release") -interface ContainerReleaseLeaseService { /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 - @operationId("Container_ReleaseLease") + @route("/{containerName}?comp=lease&restype=container&release") releaseLease( ...ContainerNameParameter, ...LeaseIdRequiredParameter, @@ -514,17 +473,14 @@ interface ContainerReleaseLeaseService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?comp=lease&restype=container&renew") -interface ContainerRenewLeaseService { /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 - @operationId("Container_RenewLease") + @route("/{containerName}?comp=lease&restype=container&renew") renewLease( ...ContainerNameParameter, ...LeaseIdRequiredParameter, @@ -543,16 +499,13 @@ interface ContainerRenewLeaseService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?comp=lease&restype=container&break") -interface ConatinerBreakLeaseService { /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put - @operationId("Container_BreakLease") + @route("/{containerName}?comp=lease&restype=container&break") breakLease( ...ContainerNameParameter, ...TimeoutParameter, @@ -570,17 +523,14 @@ interface ConatinerBreakLeaseService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?comp=lease&restype=container&change") -interface ContainerChangeLeaseService { /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 - @operationId("Container_ChangeLease") + @route("/{containerName}?comp=lease&restype=container&change") changeLease( ...ContainerNameParameter, ...LeaseIdRequiredParameter, @@ -600,16 +550,14 @@ interface ContainerChangeLeaseService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?restype=container&comp=list&flat") -interface ContainerListBlobsService { /** [Update] 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/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get - @operationId("Container_ListBlobFlatSegment") - getBlobs( + @route("/{containerName}?restype=container&comp=list&flat") + listBlobFlatSegment( ...ContainerNameParameter, ...PrefixParameter, ...MarkerParameter, @@ -626,16 +574,14 @@ interface ContainerListBlobsService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?restype=container&comp=list&hierarchy") -interface ContainerListBlobsHierarchyService { /** [Update] 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/no-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get - @operationId("Container_ListBlobHierarchySegment") - getBlobs( + @route("/{containerName}?restype=container&comp=list&hierarchy") + listBlobHierarchySegment( ...ContainerNameParameter, ...DelimiterParameter, ...PrefixParameter, @@ -653,16 +599,13 @@ interface ContainerListBlobsHierarchyService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}?restype=account&comp=properties") -interface ContainerAccountInfoService { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get - @operationId("Container_GetAccountInfo") + @route("/{containerName}?restype=account&comp=properties") getAccountInfo(...ContainerNameParameter, ...ApiVersionParameter): { @statusCode statusCode: 200; ...ClientRequestIdResponseHeader; @@ -675,15 +618,14 @@ interface ContainerAccountInfoService { } @route("/{containerName}/{blob}") -interface BlobService { +interface 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-operation-id" "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 - @operationId("Blob_Download") - downloadBlob( + download( ...ContainerNameParameter, ...BlobNameParameter, ...SnapshotParameter, @@ -754,8 +696,7 @@ interface BlobService { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @head - @operationId("Blob_GetProperties") - getBlobProperties( + getProperties( ...ContainerNameParameter, ...BlobNameParameter, ...SnapshotParameter, @@ -831,8 +772,7 @@ interface BlobService { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @delete - @operationId("Blob_Delete") - deleteBlob( + delete( ...ContainerNameParameter, ...BlobNameParameter, ...SnapshotParameter, @@ -855,243 +795,14 @@ interface BlobService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} - -@route("/{containerName}/{blob}?PageBlob") -interface PageBlobService { - /** 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-operation-id" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" - @put - @operationId("PageBlob_Create") - createPageBlob( - // TODO: Metadata - ...ContainerNameParameter, - - ...BlobNameParameter, - ...TimeoutParameter, - ...ContentLengthParameter, - ...PremiumPageBlobAccessTierOptional, - ...BlobContentTypeParameter, - ...BlobContentEncodingParameter, - ...BlobContentLanguageParameter, - ...BlobContentMd5Parameter, - ...BlobCacheControlParameter, - ...LeaseIdOptionalParameter, - ...BlobContentDispositionParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...BlobContentLengthRequiredParameter, - ...BlobSequenceNumberParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, - ...BlobTagsHeaderParameter, - ...ImmutabilityPolicyExpiryParameter, - ...LegalHoldOptionalParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...ContentMd5ResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; - ...VersionIdResponseHeader; - ...DateResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; -} - -@route("/{containerName}/{blob}?AppendBlob") -interface AppendBlobService { - /** 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-operation-id" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" - @put - @operationId("AppendBlob_Create") - createAppendBlob( - // TODO: Metadata - ...ContainerNameParameter, - - ...BlobNameParameter, - ...TimeoutParameter, - ...ContentLengthParameter, - ...BlobContentTypeParameter, - ...BlobContentEncodingParameter, - ...BlobContentLanguageParameter, - ...BlobContentMd5Parameter, - ...BlobCacheControlParameter, - ...LeaseIdOptionalParameter, - ...BlobContentDispositionParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, - ...BlobTagsHeaderParameter, - ...ImmutabilityPolicyExpiryParameter, - ...ImmutabilityPolicyModeParameter, - ...LegalHoldOptionalParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...ContentMd5ResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; - ...VersionIdResponseHeader; - ...DateResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; -} - -@route("/{containerName}/{blob}?BlockBlob") -interface BlockBlobService { - /** 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-operation-id" "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 - @operationId("BlockBlob_Upload") - uploadBlockBlob( - // TODO: Metadata - - ...ContainerNameParameter, - - ...BlobNameParameter, - ...BodyParameter, - ...TimeoutParameter, - ...ContentMd5Parameter, - ...BlobContentTypeParameter, - ...BlobContentEncodingParameter, - ...BlobContentLanguageParameter, - ...BlobContentMd5Parameter, - ...BlobCacheControlParameter, - ...LeaseIdOptionalParameter, - ...BlobContentDispositionParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...AccessTierOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, - ...BlobTagsHeaderParameter, - ...ImmutabilityPolicyExpiryParameter, - ...ImmutabilityPolicyModeParameter, - ...LegalHoldOptionalParameter, - ...ContentCrc64Parameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...ContentMd5ResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; - ...VersionIdResponseHeader; - ...DateResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; -} - -@route("/{containerName}/{blob}?BlockBlob&fromUrl") -interface BlockBlobFromUrlService { - /** 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-operation-id" "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 - @operationId("BlockBlob_PutBlobFromUrl") - putBlockBlobFromUrl( - // TODO: Metadata - - ...ContainerNameParameter, - - ...BlobNameParameter, - ...TimeoutParameter, - ...ContentMd5Parameter, - ...ContentLengthParameter, - ...BlobContentTypeParameter, - ...BlobContentEncodingParameter, - ...BlobContentLanguageParameter, - ...BlobContentMd5Parameter, - ...BlobCacheControlParameter, - ...LeaseIdOptionalParameter, - ...BlobContentDispositionParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...AccessTierOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...SourceIfModifiedSinceParameter, - ...SourceIfMatchParameter, - ...SourceIfNoneMatchParameter, - ...SourceIfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, - ...SourceContentMd5Parameter, - ...BlobTagsHeaderParameter, - ...CopySourceParameter, - ...CopySourceBlobPropertiesParameter, - ...CopySourceAuthorizationParameter, - ...CopySourceTagsParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...ContentMd5ResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; -} -@route("/{containerName}/{blob}?comp=undelete") -interface BlobUndeleteService { /** "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/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @route("?comp=undelete") @post - @operationId("Blob_Undelete") - undeleteBlob( + undelete( ...ContainerNameParameter, ...BlobNameParameter, ...ApiVersionParameter, @@ -1103,17 +814,14 @@ interface BlobUndeleteService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=expiry") -interface BlobExpirationService { /** "Set the expiration time of a blob" */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post - @operationId("Blob_SetExpiry") - setBlobExpiry( + @route("?comp=expiry") + setExpiry( ...ContainerNameParameter, ...BlobNameParameter, ...ApiVersionParameter, @@ -1129,17 +837,14 @@ interface BlobExpirationService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=properties&SetHTTPHeaders") -interface BlobSetHttpHeadersService { /** 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-operation-id" "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 - @operationId("Blob_SetHTTPHeaders") + @route("?comp=properties&SetHTTPHeaders") setHttpHeaders( ...ContainerNameParameter, ...BlobNameParameter, @@ -1168,17 +873,14 @@ interface BlobSetHttpHeadersService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=immutabilityPolicies") -interface BlobSetImmutabilityPolicyService { /** "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-operation-id" "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 - @operationId("Blob_SetImmutabilityPolicy") + @route("?comp=immutabilityPolicies") setImmutabilityPolicy( ...ContainerNameParameter, ...BlobNameParameter, @@ -1205,7 +907,7 @@ interface BlobSetImmutabilityPolicyService { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @delete - @operationId("Blob_DeleteImmutabilityPolicy") + @route("?comp=immutabilityPolicies") deleteImmutabilityPolicy( ...ContainerNameParameter, ...BlobNameParameter, @@ -1219,17 +921,14 @@ interface BlobSetImmutabilityPolicyService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=legalhold") -interface BlobLegalHoldService { /** 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-operation-id" "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 - @operationId("Blob_SetLegalHold") + @route("?comp=legalhold") setLegalHold( ...ContainerNameParameter, ...BlobNameParameter, @@ -1245,17 +944,14 @@ interface BlobLegalHoldService { ...DateResponseHeader; ...LegalHoldResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=metadata") -interface BlobSetMetadataService { /** 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-operation-id" "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 - @operationId("Blob_SetMetadata") + @route("?comp=metadata") setMetadata( ...ContainerNameParameter, ...BlobNameParameter, @@ -1287,17 +983,14 @@ interface BlobSetMetadataService { ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=lease&acquire") -interface BlobLeaseAcquireService { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 - @operationId("Blob_AcquireLease") + @route("?comp=lease&acquire") acquireLease( ...ContainerNameParameter, ...BlobNameParameter, @@ -1321,17 +1014,14 @@ interface BlobLeaseAcquireService { ...DateResponseHeader; ...LeaseIdResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=lease&release") -interface BlobLeaseReleaseService { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 - @operationId("Blob_ReleaseLease") + @route("?comp=lease&release") releaseLease( ...ContainerNameParameter, ...BlobNameParameter, @@ -1353,17 +1043,14 @@ interface BlobLeaseReleaseService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=lease&renew") -interface BlobLeaseRenewService { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 - @operationId("Blob_RenewLease") + @route("?comp=lease&renew") renewLease( ...ContainerNameParameter, ...BlobNameParameter, @@ -1386,17 +1073,14 @@ interface BlobLeaseRenewService { ...DateResponseHeader; ...LeaseIdResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=lease&change") -interface BlobLeaseChangeService { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 - @operationId("Blob_ChangeLease") + @route("?comp=lease&change") changeLease( ...ContainerNameParameter, ...BlobNameParameter, @@ -1420,16 +1104,13 @@ interface BlobLeaseChangeService { ...DateResponseHeader; ...LeaseIdResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=lease&break") -interface BlobLeaseBreakService { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put - @operationId("Blob_BreakLease") + @route("?comp=lease&break") breakLease( ...ContainerNameParameter, ...BlobNameParameter, @@ -1452,16 +1133,13 @@ interface BlobLeaseBreakService { ...DateResponseHeader; ...LeaseTimeResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=snapshot") -interface BlobSnapshotService { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put - @operationId("Blob_CreateSnapshot") + @route("?comp=snapshot") createSnapshot( ...ContainerNameParameter, ...BlobNameParameter, @@ -1492,16 +1170,13 @@ interface BlobSnapshotService { ...DateResponseHeader; ...IsServerEncryptedResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=copy") -interface BlobCopyService { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put - @operationId("Blob_StartCopyFromURL") + @route("?comp=copy") startCopyFromUrl( ...ContainerNameParameter, ...BlobNameParameter, @@ -1542,16 +1217,13 @@ interface BlobCopyService { ...CopyIdResponseHeader; ...CopyStatusResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=copy&sync") -interface BlobCopySyncService { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put - @operationId("Blob_AbortCopyFromURL") + @route("?comp=copy&sync") copyFromUrl( ...ContainerNameParameter, ...BlobNameParameter, @@ -1595,15 +1267,12 @@ interface BlobCopySyncService { ...ContentCrc64ResponseHeader; ...EncryptionScopeResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=copy©id") -interface BlobCopyAbortService { /** 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" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @put - @operationId("Blob_AbortCopyFromURL") + @route("?comp=copy©id") abortCopyFromUrl( ...ContainerNameParameter, ...BlobNameParameter, @@ -1619,17 +1288,14 @@ interface BlobCopyAbortService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=tier") -interface BlobTierService { /** 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-operation-id" "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 - @operationId("Blob_SetTier") + @route("?comp=tier") setTier( ...ContainerNameParameter, ...BlobNameParameter, @@ -1651,16 +1317,13 @@ interface BlobTierService { ...RequestIdResponseHeader; ...VersionResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?restype=account&comp=properties") -interface BlobAccountPropertiesService { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get - @operationId("Blob_GetAccountInfo") + @route("?restype=account&comp=properties") getAccountInfo( ...ContainerNameParameter, ...BlobNameParameter, @@ -1675,184 +1338,178 @@ interface BlobAccountPropertiesService { ...AccountKindResponseHeader; ...SkuNameResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=block") -interface BlobBlockStageService { - /** The Stage Block operation creates a new block to be committed as part of a blob */ + /** 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/no-operation-id" "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 - @operationId("BlockBlob_StageBlock") - stageBlock( - ...BodyParameter, + @post + @route("/{containerName}/{blob}?comp=query") + query( + ...QueryRequestParameter, ...ContainerNameParameter, ...BlobNameParameter, - ...BlockIdParameter, - ...ContentLengthParameter, - ...ContentMd5Parameter, + ...SnapshotParameter, ...TimeoutParameter, - ...ContentCrc64Parameter, ...LeaseIdOptionalParameter, ...EncryptionKeyParameter, ...EncryptionKeySha256Parameter, ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, ...ApiVersionParameter, ...ClientRequestIdParameter, ): { - @statusCode statusCode: 201; + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" + @statusCode statusCode: 200 | 206; + ...BodyParameter; + + // TODO: MetadataResponseHeader; + + ...LastModifiedResponseHeader; + + ...ContentLengthResponseHeader; + ...ContentRangeResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopySourceResponseHeader; + ...CopyStatusResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentCrc64ResponseHeader; + ...AcceptRangesResponseHeader; + ...BlobCommittedBlockCountResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; + ...BlobContentMd5ResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=block&fromURL") -interface BlobBlockStageFromUrlService { - /** 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. */ + /** The Get Blob Tags operation enables users to get tags on a blob. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 - @operationId("BlockBlob_StageBlockFromURL") - stageBlockFromUrl( + @get + @route("/{containerName}/{blob}?comp=tags") + getTags( ...ContainerNameParameter, ...BlobNameParameter, + ...TimeoutParameter, ...ApiVersionParameter, ...ClientRequestIdParameter, - ...BlockIdParameter, - ...ContentLengthParameter, - ...SourceUrlParameter, - ...SourceRangeParameter, - ...SourceContentMd5Parameter, - ...SourceContentCrc64Parameter, + ...SnapshotParameter, + ...VersionIdParameter, + ...LeaseIdOptionalParameter, + ...IfTagsParameter, + ): { + @statusCode statusCode: 200; + @body body: BlobTags; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + } | StorageError; + + /** The Set Tags operation enables users to set tags on a blob. */ + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @put + @route("/{containerName}/{blob}?comp=tags") + setTags( + ...ContainerNameParameter, + ...BlobNameParameter, ...TimeoutParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...VersionIdParameter, ...LeaseIdOptionalParameter, - ...SourceIfModifiedSinceParameter, - ...SourceIfUnmodifiedSinceParameter, - ...SourceIfMatchParameter, - ...SourceIfNoneMatchParameter, - ...CopySourceAuthorizationParameter, + ...ContentMd5Parameter, + ...ContentCrc64Parameter, + ...IfTagsParameter, + ...BlobTagsBodyParameter, ): { - @statusCode statusCode: 201; + @statusCode statusCode: 204; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentCrc64ResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; } | StorageError; } -@route("/{containerName}/{blob}?comp=blocklist") -interface BlobBlockListService { - /** 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. */ +interface 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-operation-id" "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 - @operationId("BlockBlob_CommitBlockList") - commitBlockList( - ...BlobBlocksParameter, + @route("/{containerName}/{blob}?PageBlob") + create( + // TODO: Metadata ...ContainerNameParameter, + ...BlobNameParameter, ...TimeoutParameter, - ...BlobCacheControlParameter, + ...ContentLengthParameter, + ...PremiumPageBlobAccessTierOptional, ...BlobContentTypeParameter, ...BlobContentEncodingParameter, ...BlobContentLanguageParameter, ...BlobContentMd5Parameter, - ...ContentMd5Parameter, - ...ContentCrc64Parameter, - - // TODO: ...MetadataParameter; + ...BlobCacheControlParameter, + ...LeaseIdOptionalParameter, ...BlobContentDispositionParameter, - ...EncryptionKeyParameter, ...EncryptionKeySha256Parameter, ...EncryptionAlgorithmParameter, ...EncryptionScopeParameter, - ...AccessTierOptionalParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, + ...BlobContentLengthRequiredParameter, + ...BlobSequenceNumberParameter, ...ApiVersionParameter, ...ClientRequestIdParameter, ...BlobTagsHeaderParameter, ...ImmutabilityPolicyExpiryParameter, - ...ImmutabilityPolicyModeParameter, ...LegalHoldOptionalParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; - ...ContentCrc64ResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; + ...VersionIdResponseHeader; ...DateResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; } | StorageError; - /** 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" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" - @get - @operationId("BlockBlob_GetBlockList") - getBlockList( - ...ContainerNameParameter, - ...BlobNameParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, - ...SnapshotParameter, - ...BlockListTypeParameter, - ...LeaseIdOptionalParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 200; - @body body: BlockLookupList; - ...LastModifiedResponseHeader; - ...EtagResponseHeader; - ...BlobContentLengthResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; - ...DateResponseHeader; - } | StorageError; -} - -@route("/{containerName}/{blob}?comp=page&update") -interface PageBlobUpdateService { /** 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-operation-id" "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 - @operationId("PageBlob_UploadPages") + @route("/{containerName}/{blob}?comp=page&update") uploadPages( /** The data to upload. */ ...BodyParameter, @@ -1894,17 +1551,14 @@ interface PageBlobUpdateService { ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=page&clear") -interface PageBlobClearService { /** 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-operation-id" "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 - @operationId("PageBlob_ClearPages") + @route("/{containerName}/{blob}?comp=page&clear") clearPages( ...ContainerNameParameter, ...BlobNameParameter, @@ -1932,16 +1586,13 @@ interface PageBlobClearService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=page&update&fromUrl") -interface BlobPageUpdateFromUrlService { /** 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/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put - @operationId("PageBlob_UploadPagesFromURL") + @route("/{containerName}/{blob}?comp=page&update&fromUrl") uploadPagesFromUrl( ...ContainerNameParameter, ...BlobNameParameter, @@ -1987,15 +1638,12 @@ interface BlobPageUpdateFromUrlService { ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=pagelist") -interface PageBlobListService { /** 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/no-operation-id" "Existing API" @get - @operationId("PageBlob_GetPageRanges") + @route("/{containerName}/{blob}?comp=pagelist") getPageRanges( ...ContainerNameParameter, ...BlobNameParameter, @@ -2022,15 +1670,12 @@ interface PageBlobListService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=pagelist&diff") -interface PageBlobDiffService { /** 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/no-operation-id" "Existing API" @get - @operationId("PageBlob_GetPageRangesDiff") + @route("/{containerName}/{blob}?comp=pagelist&diff") getPageRangesDiff( ...ContainerNameParameter, ...BlobNameParameter, @@ -2060,17 +1705,14 @@ interface PageBlobDiffService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=properties&Resize") -interface PageBlobResizeService { /** 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-operation-id" "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 - @operationId("PageBlob_Resize") + @route("/{containerName}/{blob}?comp=properties&Resize") resize( ...ContainerNameParameter, ...BlobNameParameter, @@ -2098,17 +1740,14 @@ interface PageBlobResizeService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=properties&UpdateSequenceNumber") -interface PageBlobUpdateSequenceNumberService { /** 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-operation-id" "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 - @operationId("PageBlob_UpdateSequenceNumber") + @route("/{containerName}/{blob}?comp=properties&UpdateSequenceNumber") updateSequenceNumber( ...ContainerNameParameter, ...BlobNameParameter, @@ -2133,17 +1772,14 @@ interface PageBlobUpdateSequenceNumberService { ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=incrementalcopy") -interface PageBlobIncrementalCopyService { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put - @operationId("PageBlob_CopyIncremental") - incrementalCopy( + @route("/{containerName}/{blob}?comp=incrementalcopy") + copyIncremental( ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, @@ -2169,15 +1805,64 @@ interface PageBlobIncrementalCopyService { } | StorageError; } -@route("/{containerName}/{blob}?comp=appendblock") -interface AppendBlobAppendBlockService { +@route("/{containerName}/{blob}?AppendBlob") +interface 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-operation-id" "Existing API" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + create( + // TODO: Metadata + ...ContainerNameParameter, + + ...BlobNameParameter, + ...TimeoutParameter, + ...ContentLengthParameter, + ...BlobContentTypeParameter, + ...BlobContentEncodingParameter, + ...BlobContentLanguageParameter, + ...BlobContentMd5Parameter, + ...BlobCacheControlParameter, + ...LeaseIdOptionalParameter, + ...BlobContentDispositionParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...BlobTagsHeaderParameter, + ...ImmutabilityPolicyExpiryParameter, + ...ImmutabilityPolicyModeParameter, + ...LegalHoldOptionalParameter, + ): { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; + /** 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-operation-id" "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 - @operationId("AppendBlob_AppendBlock") + @route("/{containerName}/{blob}?comp=appendblock") appendBlock( /** The data to upload. */ ...BodyParameter, @@ -2219,17 +1904,14 @@ interface AppendBlobAppendBlockService { ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=appendblock&fromUrl") -interface AppendBlockAppendBlockFromUrlService { /** 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-operation-id" "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 - @operationId("AppendBlob_AppendBlockFromURL") + @route("/{containerName}/{blob}?comp=appendblock&fromUrl") appendBlockFromUrl( ...ContainerNameParameter, ...BlobNameParameter, @@ -2270,17 +1952,14 @@ interface AppendBlockAppendBlockFromUrlService { ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=seal") -interface AppendBlobSealService { /** 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-operation-id" "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 - @operationId("AppendBlob_Seal") + @route("/{containerName}/{blob}?comp=seal") seal( ...ContainerNameParameter, ...BlobNameParameter, @@ -2306,23 +1985,35 @@ interface AppendBlobSealService { } | StorageError; } -@route("/{containerName}/{blob}?comp=query") -interface BlobQueryService { - /** The Query operation enables users to select/project on blob data by providing simple query expressions. */ +interface 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-operation-id" "Existing API" - @post - @operationId("Blob_Query") - query( - ...QueryRequestParameter, + #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") + upload( + // TODO: Metadata + ...ContainerNameParameter, + ...BlobNameParameter, - ...SnapshotParameter, + ...BodyParameter, ...TimeoutParameter, + ...ContentMd5Parameter, + ...BlobContentTypeParameter, + ...BlobContentEncodingParameter, + ...BlobContentLanguageParameter, + ...BlobContentMd5Parameter, + ...BlobCacheControlParameter, ...LeaseIdOptionalParameter, + ...BlobContentDispositionParameter, ...EncryptionKeyParameter, ...EncryptionKeySha256Parameter, ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...AccessTierOptionalParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, ...IfMatchParameter, @@ -2330,91 +2021,235 @@ interface BlobQueryService { ...IfTagsParameter, ...ApiVersionParameter, ...ClientRequestIdParameter, + ...BlobTagsHeaderParameter, + ...ImmutabilityPolicyExpiryParameter, + ...ImmutabilityPolicyModeParameter, + ...LegalHoldOptionalParameter, + ...ContentCrc64Parameter, ): { - #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" - @statusCode statusCode: 200 | 206; - ...BodyParameter; + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; - // TODO: MetadataResponseHeader; + /** 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-operation-id" "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") + putBlobFromUrl( + // TODO: Metadata - ...LastModifiedResponseHeader; + ...ContainerNameParameter, - ...ContentLengthResponseHeader; - ...ContentRangeResponseHeader; + ...BlobNameParameter, + ...TimeoutParameter, + ...ContentMd5Parameter, + ...ContentLengthParameter, + ...BlobContentTypeParameter, + ...BlobContentEncodingParameter, + ...BlobContentLanguageParameter, + ...BlobContentMd5Parameter, + ...BlobCacheControlParameter, + ...LeaseIdOptionalParameter, + ...BlobContentDispositionParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...AccessTierOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, + ...SourceIfModifiedSinceParameter, + ...SourceIfMatchParameter, + ...SourceIfNoneMatchParameter, + ...SourceIfTagsParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...SourceContentMd5Parameter, + ...BlobTagsHeaderParameter, + ...CopySourceParameter, + ...CopySourceBlobPropertiesParameter, + ...CopySourceAuthorizationParameter, + ...CopySourceTagsParameter, + ): { + @statusCode statusCode: 201; ...EtagResponseHeader; + ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; - ...ContentEncodingResponseParameter; - ...CacheControlResponseHeader; - ...ContentLanguageResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...BlobTypeResponseHeader; - ...CopyCompletionTimeResponseHeader; - ...CopyStatusDescriptionResponseHeader; - ...CopyIdResponseHeader; - ...CopyProgressResponseHeader; - ...CopySourceResponseHeader; - ...CopyStatusResponseHeader; - ...LeaseDurationResponseHeader; - ...LeaseStateResponseHeader; - ...LeaseStatusResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; + + /** 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-operation-id" "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") + stageBlock( + ...BodyParameter, + ...ContainerNameParameter, + ...BlobNameParameter, + ...BlockIdParameter, + ...ContentLengthParameter, + ...ContentMd5Parameter, + ...TimeoutParameter, + ...ContentCrc64Parameter, + ...LeaseIdOptionalParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ): { + @statusCode statusCode: 201; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; - ...AcceptRangesResponseHeader; - ...BlobCommittedBlockCountResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; - ...BlobContentMd5ResponseHeader; } | StorageError; -} -@route("/{containerName}/{blob}?comp=tags") -interface BlobTagsService { - /** The Get Blob Tags operation enables users to get tags on a blob. */ + /** 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-operation-id" "Existing API" - @get - @operationId("Blob_GetTags") - getTags( + #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=block&fromURL") + stageBlockFromUrl( ...ContainerNameParameter, ...BlobNameParameter, - ...TimeoutParameter, ...ApiVersionParameter, ...ClientRequestIdParameter, - ...SnapshotParameter, - ...VersionIdParameter, + ...BlockIdParameter, + ...ContentLengthParameter, + ...SourceUrlParameter, + ...SourceRangeParameter, + ...SourceContentMd5Parameter, + ...SourceContentCrc64Parameter, + ...TimeoutParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, ...LeaseIdOptionalParameter, - ...IfTagsParameter, + ...SourceIfModifiedSinceParameter, + ...SourceIfUnmodifiedSinceParameter, + ...SourceIfMatchParameter, + ...SourceIfNoneMatchParameter, + ...CopySourceAuthorizationParameter, ): { - @statusCode statusCode: 200; - @body body: BlobTags; + @statusCode statusCode: 201; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; ...DateResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; } | StorageError; - /** The Set Tags operation enables users to set tags on a blob. */ + /** 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-operation-id" "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 - @operationId("Blob_SetTags") - setTags( + @route("?comp=blocklist") + commitBlockList( + ...BlobBlocksParameter, ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, + ...BlobCacheControlParameter, + ...BlobContentTypeParameter, + ...BlobContentEncodingParameter, + ...BlobContentLanguageParameter, + ...BlobContentMd5Parameter, + ...ContentMd5Parameter, + ...ContentCrc64Parameter, + + // TODO: ...MetadataParameter; + ...BlobContentDispositionParameter, + + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...EncryptionScopeParameter, + ...AccessTierOptionalParameter, + ...IfModifiedSinceParameter, + ...IfUnmodifiedSinceParameter, + ...IfMatchParameter, + ...IfNoneMatchParameter, + ...IfTagsParameter, ...ApiVersionParameter, ...ClientRequestIdParameter, - ...VersionIdParameter, + ...BlobTagsHeaderParameter, + ...ImmutabilityPolicyExpiryParameter, + ...ImmutabilityPolicyModeParameter, + ...LegalHoldOptionalParameter, + ): { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } | StorageError; + + /** 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" + #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" + @get + @route("?comp=blocklist") + getBlockList( + ...ContainerNameParameter, + ...BlobNameParameter, + ...ApiVersionParameter, + ...ClientRequestIdParameter, + ...SnapshotParameter, + ...BlockListTypeParameter, ...LeaseIdOptionalParameter, - ...ContentMd5Parameter, - ...ContentCrc64Parameter, ...IfTagsParameter, - ...BlobTagsBodyParameter, ): { - @statusCode statusCode: 204; + @statusCode statusCode: 200; + @body body: BlockLookupList; + ...LastModifiedResponseHeader; + ...EtagResponseHeader; + ...BlobContentLengthResponseHeader; ...ClientRequestIdResponseHeader; ...RequestIdResponseHeader; ...VersionResponseHeader; From e6d535e5d8b326a78e5d8c6eadf5ed5078f988e1 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 17:19:27 -0700 Subject: [PATCH 039/129] tcgc cleanup --- .../storage/Microsoft.BlobStorage/client.tsp | 21 +++++++++++++++---- .../storage/Microsoft.BlobStorage/models.tsp | 6 ------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index 164fc28c837f..e48ab3eee790 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -1,5 +1,18 @@ -/** - * PLACEHOLDER - * Add readme and sample - */ +import "@azure-tools/typespec-client-generator-core"; import "./main.tsp"; + +using Azure.ClientGenerator.Core; +using Azure.Storage.Blob; + +@@clientName(ContainerProperties.denyEncryptionScopeOverride, + "PreventEncryptionScopeOverride" +); +@@clientName(ContainerProperties.immutableStorageWithVersioningEnabled, + "IsImmutableStorageWithVersioningEnabled" +); +@@clientName(BlobPropertiesInternal.expiryTime, "ExpiresOn"); +@@clientName(BlobPropertiesInternal.sealed, "IsSealed"); +@@clientName(BlobPropertiesInternal.immutabilityPolicyUntilDate, + "ImmutabilityPolicyExpiresOn" +); +@@clientName(PremiumPageBlobAccessTierOptional.accessTier, "tier"); diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index dc522f81d195..3a1c947e1a30 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -222,7 +222,6 @@ model ContainerProperties { @Xml.name("DefaultEncryptionScope") defaultEncryptionScope?: string; /** Whether to prevent encryption scope override. */ - @clientName("PreventEncryptionScopeOverride") @Xml.name("DenyEncryptionScopeOverride") denyEncryptionScopeOverride?: boolean; @@ -239,7 +238,6 @@ model ContainerProperties { @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; /** Whether immutable storage with versioning is enabled. */ - @clientName("IsImmutableStorageWithVersioningEnabled") @Xml.name("ImmutableStorageWithVersioningEnabled") immutableStorageWithVersioningEnabled?: boolean; } @@ -621,13 +619,11 @@ model BlobPropertiesInternal { /** The expire time of the blob. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @clientName("ExpiresOn") @encode("date-time-rfc1123") @Xml.name("Expiry-Time") expiryTime?: utcDateTime; /** Whether the blob is sealed. */ - @clientName("IsSealed") @Xml.name("Sealed") sealed?: boolean; @@ -642,7 +638,6 @@ model BlobPropertiesInternal { /** The immutability policy until time of the blob. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @clientName("ImmutabilityPolicyExpiresOn") @encode("date-time-rfc1123") @Xml.name("ImmutabilityPolicyUntilDate") immutabilityPolicyUntilDate?: utcDateTime; @@ -2058,7 +2053,6 @@ alias BlobContentTypeParameter = { /** The optional premium page blob access tier parameter. */ model PremiumPageBlobAccessTierOptional { /** Optional. Indicates the tier to be set on the page blob. */ - @clientName("tier") @header("x-ms-access-tier") accessTier?: PremiumPageBlobAccessTier; } From 5c618843155c4dcfcc3232f30e73e36ce5c80f66 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 17:19:44 -0700 Subject: [PATCH 040/129] import cleanup --- specification/storage/Microsoft.BlobStorage/routes.tsp | 3 --- 1 file changed, 3 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 7ddcbb239f91..c23b33861fea 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -1,4 +1,3 @@ -import "@typespec/openapi"; import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; @@ -8,11 +7,9 @@ import "./models.tsp"; namespace Azure.Storage.Blob; using TypeSpec.Http; -using TypeSpec.OpenAPI; using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; -using Azure.ClientGenerator.Core; interface Service { /** Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. */ From 7873ad4cc29cd6296847fa8f30478ddaea1a0edd Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 17:22:16 -0700 Subject: [PATCH 041/129] update namespace --- specification/storage/Microsoft.BlobStorage/client.tsp | 2 +- specification/storage/Microsoft.BlobStorage/main.tsp | 4 ++-- specification/storage/Microsoft.BlobStorage/models.tsp | 2 +- specification/storage/Microsoft.BlobStorage/routes.tsp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index e48ab3eee790..f8db730b2227 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -2,7 +2,7 @@ import "@azure-tools/typespec-client-generator-core"; import "./main.tsp"; using Azure.ClientGenerator.Core; -using Azure.Storage.Blob; +using Storage.Blob; @@clientName(ContainerProperties.denyEncryptionScopeOverride, "PreventEncryptionScopeOverride" diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index bf10451599f7..f9d1ddc20ec8 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -18,7 +18,7 @@ using Azure.Core; ]> ) @service({ - title: "Azure.Storage.Blob service", + title: "Azure Storage Blob service", }) @server( "{endpoint}", @@ -29,7 +29,7 @@ using Azure.Core; } ) @versioned(Versions) -namespace Azure.Storage.Blob; +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" diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 3a1c947e1a30..108a071e7450 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -10,7 +10,7 @@ using TypeSpec.Http; using TypeSpec.Versioning; using Azure.ClientGenerator.Core; -namespace Azure.Storage.Blob; +namespace Storage.Blob; /** The error response. */ @error diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index c23b33861fea..452a1b9802c0 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -4,7 +4,7 @@ import "@azure-tools/typespec-azure-core"; import "@typespec/http"; import "./models.tsp"; -namespace Azure.Storage.Blob; +namespace Storage.Blob; using TypeSpec.Http; using TypeSpec.Rest; From 25ca894e7ed51fa5c7bd02b25aaea55e2b4750c1 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 17:39:13 -0700 Subject: [PATCH 042/129] remove old versions --- .../storage/Microsoft.BlobStorage/main.tsp | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index f9d1ddc20ec8..ec2a46b6a96f 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -35,26 +35,6 @@ namespace Storage.Blob; #suppress "@azure-tools/typespec-azure-core/no-enum" "Following standard typespec recommendation" @doc("The Azure.Storage.Blob service versions.") enum Versions { - @useDependency(Azure.Core.Versions.v1_0_Preview_2) - @doc("The 2020-10-02-preview version of the Azure.Storage.Blob service.") - `2020-10-02-preview`, - - @doc("The 2020-12-06-preview version of the Azure.Storage.Blob service.") - @useDependency(Azure.Core.Versions.v1_0_Preview_2) - `2020-12-06-preview`, - - @doc("The 2021-02-12-preview version of the Azure.Storage.Blob service.") - @useDependency(Azure.Core.Versions.v1_0_Preview_2) - `2021-02-12-preview`, - - @doc("The 2021-04-10-preview version of the Azure.Storage.Blob service.") - @useDependency(Azure.Core.Versions.v1_0_Preview_2) - `2021-04-10-preview`, - - @doc("The 2021-08-06-preview version of the Azure.Storage.Blob service.") - @useDependency(Azure.Core.Versions.v1_0_Preview_2) - `2021-08-06-preview`, - @doc("The 2021-12-02-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) `2021-12-02-preview`, From a4a967e1e93c33800cca6d73136d5833d3d47536 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 17:51:47 -0700 Subject: [PATCH 043/129] update tspconfig.yaml --- .../storage/Microsoft.BlobStorage/tspconfig.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml index f5e18d2b3a8d..08ab9f6ef6c7 100644 --- a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml +++ b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml @@ -1,6 +1,6 @@ -parameters: +parameters: "service-dir": - default: "sdk/microsoft.blobstorage" + default: "sdk/storage" "dependencies": "additionalDirectories": [] default: "" @@ -11,10 +11,10 @@ options: azure-resource-provider-folder: "data-plane" emitter-output-dir: "{project-root}/.." examples-directory: "{project-root}/examples" - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json" - "@azure-tools/typespec-python": + 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-name: "{package-dir}" package-mode: dataplane "@azure-tools/typespec-csharp": package-dir: "Azure.Storage.Blob" From 8c613c6b1bbeb532e590693bd9efcb9443d9e897 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 17:52:59 -0700 Subject: [PATCH 044/129] fix versions, regen openapi --- .../storage/Microsoft.BlobStorage/main.tsp | 2 +- .../stable/0000-00-00/openapi.json | 15688 ----------- .../stable/2021-12-02/blob.json | 21527 +++++++++------- 3 files changed, 12435 insertions(+), 24782 deletions(-) delete mode 100644 specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index ec2a46b6a96f..5bca0092dae0 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -37,5 +37,5 @@ namespace Storage.Blob; enum Versions { @doc("The 2021-12-02-preview version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) - `2021-12-02-preview`, + v2021_12_02: "2021-12-02", } diff --git a/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json b/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json deleted file mode 100644 index 32b113e5c9d8..000000000000 --- a/specification/storage/data-plane/Azure.Storage.Blob/stable/0000-00-00/openapi.json +++ /dev/null @@ -1,15688 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Azure.Storage.Blob service", - "version": "0000-00-00", - "x-typespec-generated": [ - { - "emitter": "@azure-tools/typespec-autorest" - } - ] - }, - "schemes": [ - "https" - ], - "x-ms-parameterized-host": { - "hostTemplate": "{endpoint}", - "useSchemePrefix": false, - "parameters": [ - { - "name": "endpoint", - "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 - } - ] - }, - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "ApiKeyAuth": [] - }, - { - "OAuth2Auth": [ - "https://storage.azure.com/.default" - ] - } - ], - "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": "Service_GetProperties", - "description": "Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/StorageServiceProperties" - }, - "headers": { - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "put": { - "operationId": "Service_SetProperties", - "description": "Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "name": "body", - "in": "body", - "description": "The storage service properties that specifies the analytics and CORS rules to set on the Blob service.", - "required": true, - "schema": { - "$ref": "#/definitions/StorageServiceProperties" - } - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "headers": { - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "post": { - "operationId": "Service_GetUserDelegationKey", - "description": "The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "name": "body", - "in": "body", - "description": "The user delegation key info.", - "required": true, - "schema": { - "$ref": "#/definitions/KeyInfo" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/UserDelegationKey" - }, - "headers": { - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}": { - "get": { - "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": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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", - "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-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 if a blob has an active immutability policy." - }, - "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": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } - }, - "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": "Indicates if a blob has a legal hold." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "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": [ - { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" - }, - { - "name": "x-ms-blob-public-access", - "in": "header", - "description": "Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'.", - "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": "publicAccess" - }, - { - "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" - }, - { - "name": "x-ms-deny-encryption-scope-override", - "in": "header", - "description": "Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container.", - "required": false, - "type": "boolean", - "x-ms-client-name": "denyEncryptionScopeOverride" - }, - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "post": { - "operationId": "Container_SubmitBatch", - "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "byte" - } - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "schema": { - "type": "string", - "format": "byte" - }, - "headers": { - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "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": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}": { - "get": { - "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.", - "parameters": [ - { - "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": "header", - "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": 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" - }, - { - "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" - }, - { - "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-range-get-content-md5", - "in": "header", - "description": "Optional. When this header is set to true and specified together with the Range header, 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": "rangeContentMd5" - }, - { - "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": "rangeContentCrc64" - }, - { - "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", - "x-ms-client-name": "encryptionAlgorithm" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "type": "string", - "format": "byte" - }, - "headers": { - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "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-Encoding": { - "type": "string", - "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." - }, - "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." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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-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-copy-completion-time": { - "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-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-rfc1123", - "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-rfc1123", - "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-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-lease-duration": { - "type": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } - }, - "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-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-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-tag-count": { - "type": "integer", - "format": "int64", - "description": "The number of tags associated with the blob" - }, - "x-ms-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": { - "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." - } - } - }, - "206": { - "description": "Successful", - "schema": { - "type": "string", - "format": "byte" - }, - "headers": { - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "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-Encoding": { - "type": "string", - "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." - }, - "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." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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-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-copy-completion-time": { - "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-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-rfc1123", - "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-rfc1123", - "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-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-lease-duration": { - "type": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } - }, - "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-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-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-tag-count": { - "type": "integer", - "format": "int64", - "description": "The number of tags associated with the blob" - }, - "x-ms-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": { - "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": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "put": { - "operationId": "PageBlob_Create", - "description": "The Create operation creates a new page blob.", - "parameters": [ - { - "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" - }, - { - "name": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" - }, - { - "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" - }, - { - "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", - "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", - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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" - }, - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": "blobTags" - }, - { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" - } - ], - "responses": { - "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-rfc1123", - "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-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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": { - "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": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "post": { - "operationId": "Blob_Undelete", - "description": "\"Undelete a blob that was previously soft deleted\"", - "parameters": [ - { - "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": "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "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": [ - { - "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": "header", - "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": 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" - }, - { - "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": [ - "none", - "include" - ], - "x-ms-enum": { - "name": "DeleteSnapshotsOptionType", - "modelAsString": true, - "values": [ - { - "name": "Nonne", - "value": "none", - "description": "The delete snapshots include option is not specified." - }, - { - "name": "Include", - "value": "include", - "description": "The delete snapshots include option is include." - } - ] - }, - "x-ms-client-name": "deleteSnapshots" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": [ - "none", - "include" - ], - "x-ms-enum": { - "name": "DeleteSnapshotsOptionType", - "modelAsString": true, - "values": [ - { - "name": "Nonne", - "value": "none", - "description": "The delete snapshots include option is not specified." - }, - { - "name": "Include", - "value": "include", - "description": "The delete snapshots include option is include." - } - ] - } - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "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": [ - { - "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": "header", - "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": true, - "type": "string" - }, - { - "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", - "x-ms-client-name": "encryptionAlgorithm" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "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-Encoding": { - "type": "string", - "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." - }, - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-access-tier": { - "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.", - "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive" - ], - "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." - } - ] - } - }, - "x-ms-access-tier-change-time": { - "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." - }, - "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." - }, - "x-ms-archive-status": { - "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.", - "enum": [ - "rehydrate-pending-to-hot", - "rehydrate-pending-to-cool", - "rehydrate-pending-to-archive", - "rehydrate-pending-to-expired" - ], - "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": "RehydratePendingToArchive", - "value": "rehydrate-pending-to-archive", - "description": "The archive status is rehydrating pending to archive." - }, - { - "name": "RehydratePendingToExpired", - "value": "rehydrate-pending-to-expired", - "description": "The archive status is rehydrating pending to expired." - } - ] - } - }, - "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": { - "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": { - "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-copy-completion-time": { - "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-destination-snapshot": { - "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-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-rfc1123", - "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-expiry-time": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob will expire." - }, - "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-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." - }, - "x-ms-incremental-copy": { - "type": "boolean", - "description": "Included if the blob is incremental copy 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-last-access-time": { - "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-lease-duration": { - "type": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } - }, - "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-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-rehydrate-priority": { - "type": "string", - "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." - } - ] - } - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-tag-count": { - "type": "integer", - "format": "int64", - "description": "The number of tags associated with the blob" - }, - "x-ms-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": { - "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": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - } - }, - "x-ms-paths": { - "/{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": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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-rfc1123", - "x-ms-client-name": "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/SignedIdentifier" - } - }, - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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", - "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?restype=container&comp=acl&_overload=setContainerAccessPolicy": { - "put": { - "operationId": "Container_SetAccessPolicy", - "description": "sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "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" - }, - { - "name": "acl", - "in": "body", - "description": "The access control list for the container.", - "required": true, - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/SignedIdentifier" - } - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?restype=container&comp=undelete": { - "put": { - "operationId": "Container_Undelete", - "description": "Restores a previously-deleted container.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?restype=container&comp=rename": { - "put": { - "operationId": "Container_Rename", - "description": "Renames an existing container.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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.", - "parameters": [ - { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "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" - }, - { - "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": "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": "FilterBlobsIncludes", - "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" - }, - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/FilterBlobSegment" - }, - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?comp=lease&restype=container&acquire": { - "put": { - "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": [ - { - "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": true, - "type": "integer", - "format": "int32", - "x-ms-client-name": "leaseDuration" - }, - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - } - ], - "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-lease-id": { - "type": "string", - "description": "Uniquely identifies a blobs' lease" - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?comp=lease&restype=container&release": { - "put": { - "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", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?comp=lease&restype=container&renew": { - "put": { - "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": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-lease-id": { - "type": "string", - "description": "Uniquely identifies a blobs' lease" - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?comp=lease&restype=container&break": { - "put": { - "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": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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-rfc1123", - "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-rfc1123", - "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": "leaseBreakPeriod" - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?comp=lease&restype=container&change": { - "put": { - "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": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?restype=container&comp=list&flat": { - "get": { - "operationId": "Container_ListBlobFlatSegment", - "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", - "parameters": [ - { - "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" - }, - { - "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": [ - "copies", - "deleted", - "metadata", - "snapshots", - "uncommittedblobs", - "versions", - "tags", - "immutabilitypolicy", - "legalhold", - "deletedwithversions" - ], - "x-ms-enum": { - "name": "ListBlobsIncludes", - "modelAsString": true, - "values": [ - { - "name": "Copies", - "value": "copies", - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/ListBlobsFlatSegmentResponse" - }, - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?restype=container&comp=list&hierarchy": { - "get": { - "operationId": "Container_ListBlobHierarchySegment", - "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", - "parameters": [ - { - "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" - }, - { - "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": [ - "copies", - "deleted", - "metadata", - "snapshots", - "uncommittedblobs", - "versions", - "tags", - "immutabilitypolicy", - "legalhold", - "deletedwithversions" - ], - "x-ms-enum": { - "name": "ListBlobsIncludes", - "modelAsString": true, - "values": [ - { - "name": "Copies", - "value": "copies", - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" - }, - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?restype=account&comp=properties": { - "get": { - "operationId": "Container_GetAccountInfo", - "description": "Returns the sku name and account kind", - "parameters": [ - { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-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", - "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-sku-name": { - "type": "string", - "description": "Identifies the sku name of the account", - "enum": [ - "Standard_LRS", - "tandard_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": "tandard_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." - } - ] - } - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?AppendBlob": { - "put": { - "operationId": "AppendBlob_Create", - "description": "The Create operation creates a new append blob.", - "parameters": [ - { - "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" - }, - { - "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", - "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", - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": "blobTags" - }, - { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" - }, - { - "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" - } - ], - "responses": { - "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-rfc1123", - "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-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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": { - "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": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?BlockBlob": { - "put": { - "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.", - "parameters": [ - { - "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" - }, - { - "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": "contentMd5" - }, - { - "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", - "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", - "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-access-tier", - "in": "header", - "description": "Optional. 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" - ], - "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." - } - ] - }, - "x-ms-client-name": "accessTier" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": "blobTags" - }, - { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" - }, - { - "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" - }, - { - "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": "contentCrc64" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "byte" - } - } - ], - "responses": { - "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-rfc1123", - "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-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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": { - "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": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?BlockBlob&fromUrl": { - "put": { - "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": [ - { - "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" - }, - { - "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": "contentMd5" - }, - { - "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", - "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", - "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-access-tier", - "in": "header", - "description": "Optional. 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" - ], - "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." - } - ] - }, - "x-ms-client-name": "accessTier" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-rfc1123", - "x-ms-client-name": "sourceIfModifiedSince" - }, - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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" - }, - { - "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": "blobTags" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - } - ], - "responses": { - "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." - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=expiry": { - "post": { - "operationId": "Blob_SetExpiry", - "description": "\"Set the expiration time of a blob\"", - "parameters": [ - { - "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": "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "name": "x-ms-expiry-time", - "in": "header", - "description": "The time to set the blob to expiry.", - "required": true, - "type": "string", - "x-ms-client-name": "expiryTime" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=properties&SetHTTPHeaders": { - "put": { - "operationId": "Blob_SetHTTPHeaders", - "description": "The Set HTTP Headers operation sets system properties on the blob.", - "parameters": [ - { - "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" - }, - { - "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", - "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" - }, - { - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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": { - "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=immutabilityPolicies": { - "put": { - "operationId": "Blob_SetImmutabilityPolicy", - "description": "\"Set the immutability policy of a blob\"", - "parameters": [ - { - "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" - }, - { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "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-rfc1123", - "description": "Indicates the time the immutability policy will expire." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "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": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=legalhold": { - "put": { - "operationId": "Blob_SetLegalHold", - "description": "The Set Legal Hold operation sets a legal hold on the blob.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-client-request-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." - }, - "x-ms-legal-hold": { - "type": "boolean", - "description": "Specifies the legal hold status to set on the blob." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "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": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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", - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=lease&acquire": { - "put": { - "operationId": "Blob_AcquireLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": true, - "type": "integer", - "format": "int32", - "x-ms-client-name": "leaseDuration" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - } - ], - "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-lease-id": { - "type": "string", - "description": "Uniquely identifies a blobs' lease" - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=lease&release": { - "put": { - "operationId": "Blob_ReleaseLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=lease&renew": { - "put": { - "operationId": "Blob_RenewLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-lease-id": { - "type": "string", - "description": "Uniquely identifies a blobs' lease" - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=lease&change": { - "put": { - "operationId": "Blob_ChangeLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-lease-id": { - "type": "string", - "description": "Uniquely identifies a blobs' lease" - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=lease&break": { - "put": { - "operationId": "Blob_BreakLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": "leaseBreakPeriod" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-lease-time": { - "type": "integer", - "format": "int32", - "description": "Approximate time remaining in the lease period, in seconds." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=snapshot": { - "put": { - "operationId": "Blob_CreateSnapshot", - "description": "The Create Snapshot operation creates a read-only snapshot of a blob", - "parameters": [ - { - "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" - }, - { - "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", - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-snapshot": { - "type": "string", - "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=copy": { - "put": { - "operationId": "Blob_StartCopyFromURL", - "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", - "parameters": [ - { - "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" - }, - { - "name": "x-ms-access-tier", - "in": "header", - "description": "Optional. 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" - ], - "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." - } - ] - }, - "x-ms-client-name": "accessTier" - }, - { - "name": "x-ms-rehydrate-priority", - "in": "header", - "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", - "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-rfc1123", - "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-rfc1123", - "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" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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" - }, - { - "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-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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": "blobTags" - }, - { - "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" - }, - { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" - }, - { - "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" - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "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-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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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": { - "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": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=copy&sync": { - "put": { - "operationId": "Blob_AbortCopyFromURL", - "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": [ - { - "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" - }, - { - "name": "x-ms-access-tier", - "in": "header", - "description": "Optional. 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" - ], - "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." - } - ] - }, - "x-ms-client-name": "accessTier" - }, - { - "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-rfc1123", - "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-rfc1123", - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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" - }, - { - "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-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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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" - }, - { - "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": "blobTags" - }, - { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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-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" - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "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-rfc1123", - "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-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "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-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-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-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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=copy©id": { - "put": { - "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": [ - { - "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" - }, - { - "name": "x-ms-copy-id", - "in": "header", - "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" - }, - { - "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-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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "204": { - "description": "There is no content to send for this request, but the headers may be useful. ", - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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": "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" - }, - { - "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" - ], - "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." - } - ] - }, - "x-ms-client-name": "accessTier" - }, - { - "name": "x-ms-rehydrate-priority", - "in": "header", - "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", - "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-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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "headers": { - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?restype=account&comp=properties": { - "get": { - "operationId": "Blob_GetAccountInfo", - "description": "Returns the sku name and account kind", - "parameters": [ - { - "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": "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-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", - "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-sku-name": { - "type": "string", - "description": "Identifies the sku name of the account", - "enum": [ - "Standard_LRS", - "tandard_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": "tandard_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." - } - ] - } - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=block": { - "put": { - "operationId": "BlockBlob_StageBlock", - "description": "The Stage Block operation creates a new block to be committed as part of a blob", - "parameters": [ - { - "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" - }, - { - "name": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" - }, - { - "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": "contentMd5" - }, - { - "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" - }, - { - "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": "contentCrc64" - }, - { - "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", - "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-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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "byte" - } - } - ], - "responses": { - "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-rfc1123", - "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", - "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-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": { - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=block&fromURL": { - "put": { - "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": [ - { - "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": "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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" - }, - { - "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-source-url", - "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": true, - "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" - }, - { - "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", - "x-ms-client-name": "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" - }, - { - "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", - "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-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-rfc1123", - "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-rfc1123", - "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-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" - } - ], - "responses": { - "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-rfc1123", - "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", - "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-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": { - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=blocklist": { - "put": { - "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": [ - { - "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" - }, - { - "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-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", - "x-ms-client-name": "blobContentMd5" - }, - { - "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": "contentMd5" - }, - { - "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": "contentCrc64" - }, - { - "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", - "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-access-tier", - "in": "header", - "description": "Optional. 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" - ], - "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." - } - ] - }, - "x-ms-client-name": "accessTier" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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": "blobTags" - }, - { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" - }, - { - "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" - }, - { - "name": "blocks", - "in": "body", - "description": "Blob Blocks.", - "required": true, - "schema": { - "$ref": "#/definitions/BlockLookupList" - } - } - ], - "responses": { - "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-rfc1123", - "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-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "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": { - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=blocklist&_overload=getBlockList": { - "get": { - "operationId": "BlockBlob_GetBlockList", - "description": "The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob.", - "parameters": [ - { - "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": "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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": "Uncomitted", - "value": "uncommitted", - "description": "The list of uncommitted blocks." - }, - { - "name": "All", - "value": "all", - "description": "Both lists together." - } - ] - } - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/BlockLookupList" - }, - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-blob-content-length": { - "type": "integer", - "format": "int64", - "description": "The size of the blob in bytes." - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=page&update": { - "put": { - "operationId": "PageBlob_UploadPages", - "description": "The Upload Pages operation writes a range of pages to a page blob", - "parameters": [ - { - "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": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" - }, - { - "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": "contentMd5" - }, - { - "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": "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" - }, - { - "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" - }, - { - "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", - "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-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" - }, - { - "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" - }, - { - "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" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "byte" - } - } - ], - "responses": { - "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-rfc1123", - "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-rfc1123", - "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": { - "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-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": { - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=page&clear": { - "put": { - "operationId": "PageBlob_ClearPages", - "description": "The Clear Pages operation clears a range of pages from a page blob", - "parameters": [ - { - "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": "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" - }, - { - "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" - }, - { - "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-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" - }, - { - "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" - }, - { - "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" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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": { - "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=page&update&fromUrl": { - "put": { - "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": [ - { - "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" - }, - { - "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-source-url", - "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. 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" - }, - { - "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" - }, - { - "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", - "x-ms-client-name": "sourceContentCrc64" - }, - { - "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" - }, - { - "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", - "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-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" - }, - { - "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" - }, - { - "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" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-rfc1123", - "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-rfc1123", - "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-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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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" - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "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-rfc1123", - "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-rfc1123", - "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": { - "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-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": { - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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.", - "parameters": [ - { - "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": "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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" - }, - { - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PageList" - }, - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-blob-content-length": { - "type": "integer", - "format": "int64", - "description": "The size of the blob in bytes." - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "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.", - "parameters": [ - { - "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": "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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" - }, - { - "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": true, - "type": "string" - }, - { - "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": true, - "type": "string", - "x-ms-client-name": "previousSnapshotUrl" - }, - { - "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" - }, - { - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PageList" - }, - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-blob-content-length": { - "type": "integer", - "format": "int64", - "description": "The size of the blob in bytes." - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=properties&Resize": { - "put": { - "operationId": "PageBlob_Resize", - "description": "The Resize operation increases the size of the page blob to the specified size.", - "parameters": [ - { - "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" - }, - { - "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", - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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": { - "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { - "put": { - "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": [ - { - "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" - }, - { - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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" - }, - { - "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "blobSequenceNumber" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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": { - "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": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=incrementalcopy": { - "put": { - "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": [ - { - "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" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-client-request-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." - }, - "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-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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=appendblock": { - "put": { - "operationId": "AppendBlob_AppendBlock", - "description": "The Append Block operation commits a new block of data to the end of an append blob.", - "parameters": [ - { - "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" - }, - { - "name": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" - }, - { - "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": "contentMd5" - }, - { - "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": "contentCrc64" - }, - { - "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "blobConditionMaxSize" - }, - { - "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "blobConditionAppendPosition" - }, - { - "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", - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "byte" - } - } - ], - "responses": { - "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-rfc1123", - "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-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-blob-append-offset": { - "type": "integer", - "format": "int64", - "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-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": { - "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-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": { - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=appendblock&fromUrl": { - "put": { - "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": [ - { - "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" - }, - { - "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-source-url", - "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": true, - "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" - }, - { - "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", - "x-ms-client-name": "sourceContentCrc64" - }, - { - "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "blobConditionMaxSize" - }, - { - "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "blobConditionAppendPosition" - }, - { - "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", - "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": "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "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" - } - ], - "responses": { - "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-rfc1123", - "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-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-blob-append-offset": { - "type": "integer", - "format": "int64", - "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": { - "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-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": { - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=seal": { - "put": { - "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": [ - { - "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" - }, - { - "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-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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "blobConditionAppendPosition" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-blob-sealed": { - "type": "boolean", - "description": "If this blob has been sealed" - }, - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=query": { - "post": { - "operationId": "Blob_Query", - "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", - "parameters": [ - { - "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" - }, - { - "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", - "x-ms-client-name": "encryptionAlgorithm" - }, - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "name": "queryRequest", - "in": "body", - "description": "The query request", - "required": true, - "schema": { - "$ref": "#/definitions/QueryRequest" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "type": "string", - "format": "byte" - }, - "headers": { - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "Cache-Control": { - "type": "string", - "description": "This header is returned if it was previously specified for the blob." - }, - "Content-Encoding": { - "type": "string", - "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." - }, - "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." - }, - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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", - "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": { - "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-copy-completion-time": { - "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-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-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": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } - }, - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." - } - } - }, - "206": { - "description": "Successful", - "schema": { - "type": "string", - "format": "byte" - }, - "headers": { - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "Cache-Control": { - "type": "string", - "description": "This header is returned if it was previously specified for the blob." - }, - "Content-Encoding": { - "type": "string", - "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." - }, - "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." - }, - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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", - "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": { - "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-copy-completion-time": { - "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-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-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": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } - }, - "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-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=tags": { - "get": { - "operationId": "Blob_GetTags", - "description": "The Get Blob Tags operation enables users to get tags on a blob.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "name": "versionid", - "in": "header", - "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": true, - "type": "string" - }, - { - "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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/BlobTags" - }, - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=tags&_overload=setTags": { - "put": { - "operationId": "Blob_SetTags", - "description": "The Set Tags operation enables users to set tags on a blob.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - }, - { - "name": "versionid", - "in": "header", - "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": true, - "type": "string" - }, - { - "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": "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": "contentMd5" - }, - { - "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": "contentCrc64" - }, - { - "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": "tags", - "in": "body", - "description": "The blob tags.", - "required": true, - "schema": { - "$ref": "#/definitions/BlobTags" - } - } - ], - "responses": { - "204": { - "description": "There is no content to send for this request, but the headers may be useful. ", - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/?comp=batch": { - "post": { - "operationId": "Service_SubmitBatch", - "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", - "parameters": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/?comp=blobs": { - "get": { - "operationId": "Service_FilterBlobs", - "description": "The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression.", - "parameters": [ - { - "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": "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": "FilterBlobsIncludes", - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/FilterBlobSegment" - }, - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/?comp=list": { - "get": { - "operationId": "Service_ListContainersSegment", - "description": "The List Containers Segment operation returns a list of the containers under the specified account", - "parameters": [ - { - "name": "prefix", - "in": "query", - "description": "Filters the results to return only containers whose name begins with the specified prefix.", - "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" - }, - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/ListContainersSegmentResponse" - }, - "headers": { - "x-ms-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/?restype=account&comp=properties": { - "get": { - "operationId": "Service_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" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-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", - "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-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", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-sku-name": { - "type": "string", - "description": "Identifies the sku name of the account", - "enum": [ - "Standard_LRS", - "tandard_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": "tandard_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." - } - ] - } - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/?restype=service&comp=stats": { - "get": { - "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": [ - { - "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" - }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "clientRequestId" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/StorageServiceStats" - }, - "headers": { - "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-client-request-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." - }, - "x-ms-request-id": { - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - } - }, - "definitions": { - "AccessPolicy": { - "type": "object", - "description": "Represents an access policy.", - "properties": { - "start": { - "type": "string", - "format": "date-time", - "description": "The date-time the policy is active." - }, - "expiry": { - "type": "string", - "format": "date-time", - "description": "The date-time the policy expires." - }, - "permission": { - "type": "string", - "description": "The permissions for acl the policy." - } - }, - "required": [ - "start", - "expiry", - "permission" - ] - }, - "AccessTier": { - "type": "string", - "description": "The access tiers.", - "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive" - ], - "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." - } - ] - } - }, - "AccountKind": { - "type": "string", - "description": "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." - } - ] - } - }, - "ArchiveStatus": { - "type": "string", - "description": "The archive status.", - "enum": [ - "rehydrate-pending-to-hot", - "rehydrate-pending-to-cool", - "rehydrate-pending-to-archive", - "rehydrate-pending-to-expired" - ], - "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": "RehydratePendingToArchive", - "value": "rehydrate-pending-to-archive", - "description": "The archive status is rehydrating pending to archive." - }, - { - "name": "RehydratePendingToExpired", - "value": "rehydrate-pending-to-expired", - "description": "The archive status is rehydrating pending to expired." - } - ] - } - }, - "ArrowConfiguration": { - "type": "object", - "description": "Represents the Apache Arrow configuration.", - "properties": { - "schema": { - "type": "array", - "description": "The Apache Arrow schema", - "items": { - "$ref": "#/definitions/ArrowField" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "schema" - ] - }, - "ArrowField": { - "type": "object", - "description": "Represents an Apache Arrow field.", - "properties": { - "type": { - "type": "string", - "description": "The arrow field type." - }, - "name": { - "type": "string", - "description": "The arrow field name." - }, - "precision": { - "type": "integer", - "format": "int32", - "description": "The arrow field precision." - }, - "scale": { - "type": "integer", - "format": "int32", - "description": "The arrow field scale." - } - }, - "required": [ - "type" - ] - }, - "Azure.Core.uuid": { - "type": "string", - "format": "uuid", - "description": "Universally Unique Identifier" - }, - "BlobCopySourceTags": { - "type": "string", - "description": "The blob copy source tags types.", - "enum": [ - "REPLACE", - "COPY" - ], - "x-ms-enum": { - "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." - } - ] - } - }, - "BlobDeleteType": { - "type": "string", - "description": "The type of blob deletions.", - "enum": [ - "Permanent" - ], - "x-ms-enum": { - "name": "BlobDeleteType", - "modelAsString": true, - "values": [ - { - "name": "Permanent", - "value": "Permanent", - "description": "Permanently delete the blob." - } - ] - } - }, - "BlobExpiryOptions": { - "type": "string", - "description": "The blob expiration options.", - "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." - } - ] - } - }, - "BlobFlatListSegment": { - "type": "object", - "description": "The blob flat list segment.", - "properties": { - "blobItems": { - "type": "array", - "description": "The blob items.", - "items": { - "$ref": "#/definitions/BlobItemInternal" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "blobItems" - ] - }, - "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", - "blobPrefixes" - ] - }, - "BlobImmutabilityPolicyMode": { - "type": "string", - "description": "The immutability policy mode.", - "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." - } - ] - } - }, - "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": { - "type": "array", - "description": "The tags of the blob.", - "items": { - "$ref": "#/definitions/BlobTag" - }, - "x-ms-identifiers": [] - }, - "objectReplicationMetadata": { - "$ref": "#/definitions/ObjectReplicationMetadata", - "description": "The object replication metadata of the blob." - }, - "hasVersionsOnly": { - "type": "boolean", - "description": "Whether the blog has versions only." - } - }, - "required": [ - "name", - "deleted", - "snapshot", - "properties" - ] - }, - "BlobMetadata": { - "type": "object", - "description": "The blob metadata.", - "properties": { - "encrypted": { - "type": "string", - "description": "Whether the blob metadata is encrypted." - } - }, - "required": [ - "encrypted" - ], - "additionalProperties": { - "type": "string" - } - }, - "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." - } - }, - "required": [ - "encoded", - "content" - ] - }, - "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-rfc1123", - "description": "The date-time the blob was created in RFC1123 format." - }, - "lastModified": { - "type": "string", - "format": "date-time-rfc1123", - "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", - "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-rfc1123", - "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 desination snapshot." - }, - "deletedTime": { - "type": "string", - "format": "date-time-rfc1123", - "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." - }, - "encryptionScope": { - "type": "string", - "description": "The encryption scope of the blob." - }, - "accessTierChangeTime": { - "type": "string", - "format": "date-time-rfc1123", - "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-rfc1123", - "description": "The expire time of the blob.", - "x-ms-client-name": "ExpiresOn" - }, - "sealed": { - "type": "boolean", - "description": "Whether the blob is sealed.", - "x-ms-client-name": "IsSealed" - }, - "rehydratePriority": { - "$ref": "#/definitions/RehydratePriority", - "description": "The rehydrate priority of the blob." - }, - "lastAccessTime": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The last access time of the blob." - }, - "immutabilityPolicyUntilDate": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The immutability policy until time of the blob.", - "x-ms-client-name": "ImmutabilityPolicyExpiresOn" - }, - "immutabilityPolicyMode": { - "$ref": "#/definitions/BlobImmutabilityPolicyMode", - "description": "The immutability policy mode of the blob." - }, - "legalHold": { - "type": "boolean", - "description": "Whether the blob is under legal hold." - } - }, - "required": [ - "lastModified", - "eTag" - ] - }, - "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." - } - }, - "required": [ - "key", - "value" - ] - }, - "BlobTags": { - "type": "object", - "description": "Represents blob tags.", - "properties": { - "blobTagSet": { - "type": "array", - "description": "Represents the blob tags.", - "items": { - "$ref": "#/definitions/BlobTag" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "blobTagSet" - ] - }, - "BlobType": { - "type": "string", - "description": "The blob type.", - "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." - } - ] - } - }, - "BlockListType": { - "type": "string", - "description": "The block list types.", - "enum": [ - "committed", - "uncommitted", - "all" - ], - "x-ms-enum": { - "name": "BlockListType", - "modelAsString": true, - "values": [ - { - "name": "Committed", - "value": "committed", - "description": "The list of committed blocks." - }, - { - "name": "Uncomitted", - "value": "uncommitted", - "description": "The list of uncommitted blocks." - }, - { - "name": "All", - "value": "all", - "description": "Both lists together." - } - ] - } - }, - "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" - } - } - }, - "required": [ - "committed", - "uncommitted", - "latest" - ] - }, - "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." - } - }, - "required": [ - "start", - "end" - ] - }, - "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": { - "$ref": "#/definitions/ContainerMetadata", - "description": "The metadata of the container." - } - }, - "required": [ - "name", - "properties" - ] - }, - "ContainerMetadata": { - "type": "object", - "description": "The metadata of a container.", - "properties": { - "encrypted": { - "type": "string", - "description": "Whether the metadata is encrypted." - } - }, - "required": [ - "encrypted" - ], - "additionalProperties": { - "type": "string" - } - }, - "ContainerProperties": { - "type": "object", - "description": "The properties of a container.", - "properties": { - "creationTime": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date-time the container was created in RFC1123 format." - }, - "lastModified": { - "type": "string", - "format": "date-time-rfc1123", - "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." - }, - "defaultEncryptionScope": { - "type": "string", - "description": "The default encryption scope of the container." - }, - "denyEncryptionScopeOverride": { - "type": "boolean", - "description": "Whether to prevent encryption scope override.", - "x-ms-client-name": "PreventEncryptionScopeOverride" - }, - "hasLegalHold": { - "type": "boolean", - "description": "The has legal hold status of the container." - }, - "deletedTime": { - "type": "string", - "format": "date-time-rfc1123", - "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.", - "x-ms-client-name": "IsImmutableStorageWithVersioningEnabled" - } - }, - "required": [ - "lastModified", - "eTag" - ] - }, - "CopyStatus": { - "type": "string", - "description": "The copy status.", - "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." - } - ] - } - }, - "CorsRule": { - "type": "object", - "description": "The CORS rule.", - "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." - } - }, - "required": [ - "allowedOrigins", - "allowedMethods", - "allowedHeaders", - "exposedHeaders", - "maxAgeInSeconds" - ] - }, - "DeleteSnapshotsOptionType": { - "type": "string", - "description": "The delete snapshots option type.", - "enum": [ - "none", - "include" - ], - "x-ms-enum": { - "name": "DeleteSnapshotsOptionType", - "modelAsString": true, - "values": [ - { - "name": "Nonne", - "value": "none", - "description": "The delete snapshots include option is not specified." - }, - { - "name": "Include", - "value": "include", - "description": "The delete snapshots include option is include." - } - ] - } - }, - "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." - } - } - }, - "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" - } - }, - "required": [ - "name", - "containerName" - ] - }, - "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." - } - }, - "required": [ - "serviceEndpoint", - "where", - "blobs" - ] - }, - "FilterBlobsIncludes": { - "type": "string", - "description": "The filter blobs includes.", - "enum": [ - "none", - "versions" - ], - "x-ms-enum": { - "name": "FilterBlobsIncludes", - "modelAsString": true, - "values": [ - { - "name": "None", - "value": "none", - "description": "The filter includes no versions." - }, - { - "name": "Versions", - "value": "versions", - "description": "The filter includes n versions." - } - ] - } - }, - "GeoReplication": { - "type": "object", - "description": "The geo replication status.", - "properties": { - "status": { - "$ref": "#/definitions/GeoReplicationStatus", - "description": "The georeplication status." - }, - "lastSyncTime": { - "type": "string", - "description": "The last sync time." - } - }, - "required": [ - "status", - "lastSyncTime" - ] - }, - "GeoReplicationStatus": { - "type": "string", - "description": "The geo replication status.", - "enum": [ - "live", - "bootstrap", - "unavailable" - ], - "x-ms-enum": { - "name": "GeoReplicationStatus", - "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." - } - ] - } - }, - "JsonTextConfiguration": { - "type": "object", - "description": "Represents the JSON text configuration.", - "properties": { - "recordSeparator": { - "type": "string", - "description": "The string used to separate records." - } - } - }, - "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." - } - }, - "required": [ - "start", - "expiry" - ] - }, - "LeaseDuration": { - "type": "string", - "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." - } - ] - } - }, - "LeaseState": { - "type": "string", - "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." - } - ] - } - }, - "LeaseStatus": { - "type": "string", - "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." - } - ] - } - }, - "ListBlobsFlatSegmentResponse": { - "type": "object", - "description": "An enumeration of blobs.", - "properties": { - "serviceEndpoint": { - "type": "string", - "description": "The service endpoint." - }, - "containerName": { - "type": "string", - "description": "The container name." - }, - "rrefix": { - "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." - } - }, - "required": [ - "serviceEndpoint", - "containerName", - "segment" - ] - }, - "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." - } - }, - "required": [ - "serviceEndpoint", - "containerName", - "segment" - ] - }, - "ListBlobsIncludes": { - "type": "string", - "description": "The list blob includes parameter values.", - "enum": [ - "copies", - "deleted", - "metadata", - "snapshots", - "uncommittedblobs", - "versions", - "tags", - "immutabilitypolicy", - "legalhold", - "deletedwithversions" - ], - "x-ms-enum": { - "name": "ListBlobsIncludes", - "modelAsString": true, - "values": [ - { - "name": "Copies", - "value": "copies", - "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." - } - ] - } - }, - "ListContainersSegmentResponse": { - "type": "object", - "description": "The list container segement 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." - }, - "maxxResults": { - "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." - } - }, - "required": [ - "serviceEndpoint", - "containerItems" - ] - }, - "Logging": { - "type": "object", - "description": "The logging properties.", - "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." - } - }, - "required": [ - "version", - "delete", - "read", - "write", - "retentionPolicy" - ] - }, - "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." - }, - "serviceProperties": { - "$ref": "#/definitions/MetricsServiceProperties", - "description": "The service properties of the metrics." - } - }, - "required": [ - "enabled" - ] - }, - "MetricsProperties": { - "type": "object", - "description": "The metrics properties.", - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether to include API in the metrics." - }, - "version": { - "type": "string", - "description": "The version of the metrics properties." - }, - "retentionPolicy": { - "$ref": "#/definitions/RetentionPolicy", - "description": "The retention policy of the metrics." - } - }, - "required": [ - "enabled", - "version", - "retentionPolicy" - ] - }, - "MetricsServiceProperties": { - "type": "object", - "description": "The metrics service properties.", - "properties": { - "hourMetrics": { - "$ref": "#/definitions/MetricsProperties", - "description": "The hour metrics properties." - }, - "minuteMetrics": { - "$ref": "#/definitions/MetricsProperties", - "description": "The minute metrics properties." - } - }, - "required": [ - "hourMetrics", - "minuteMetrics" - ] - }, - "ObjectReplicationMetadata": { - "type": "object", - "description": "The object replication metadata.", - "additionalProperties": { - "type": "string" - } - }, - "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." - } - }, - "required": [ - "pageRange", - "clearRange" - ] - }, - "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" - ] - }, - "ParquetConfiguration": { - "type": "object", - "description": "Represents the Parquet configuration.", - "additionalProperties": {} - }, - "PremiumPageBlobAccessTier": { - "type": "string", - "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." - } - ] - } - }, - "PublicAccessType": { - "type": "string", - "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." - } - ] - } - }, - "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." - }, - "parquetConfiguration": { - "$ref": "#/definitions/ParquetConfiguration", - "description": "The Parquet configuration." - } - }, - "required": [ - "type" - ] - }, - "QueryRequest": { - "type": "object", - "description": "Groups the set of query request settings.", - "properties": { - "queryType": { - "$ref": "#/definitions/QueryRequestTypeSqlOnly", - "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" - ] - }, - "QueryRequestTypeSqlOnly": { - "type": "string", - "description": "The query request, note only SQL supported", - "enum": [ - "SQL" - ], - "x-ms-enum": { - "name": "QueryRequestTypeSqlOnly", - "modelAsString": true, - "values": [ - { - "name": "SQL", - "value": "SQL", - "description": "The SQL request query type." - } - ] - } - }, - "QuerySerialization": { - "type": "object", - "description": "The query serialization settings.", - "properties": { - "format": { - "$ref": "#/definitions/QueryFormat", - "description": "The query format." - } - }, - "required": [ - "format" - ] - }, - "QueryType": { - "type": "string", - "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." - } - ] - } - }, - "RehydratePriority": { - "type": "string", - "description": "The rehydrate priority.", - "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." - } - ] - } - }, - "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." - }, - "allowPermanentDelete": { - "type": "boolean", - "description": "Whether to allow permanent delete." - } - }, - "required": [ - "enabled", - "days", - "allowPermanentDelete" - ] - }, - "SequenceNumberActionType": { - "type": "string", - "description": "The sequence number actions.", - "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." - } - ] - } - }, - "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" - ] - }, - "SkuName": { - "type": "string", - "description": "The SKU types", - "enum": [ - "Standard_LRS", - "tandard_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": "tandard_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." - } - ] - } - }, - "StaticWebsite": { - "type": "object", - "description": "The static website properties.", - "properties": { - "indexDocument": { - "type": "string", - "description": "The index document." - }, - "errorDocument": { - "type": "string", - "description": "The error document." - } - } - }, - "StorageError": { - "type": "object", - "description": "The error response.", - "properties": { - "Message": { - "type": "string", - "description": "The error message." - } - }, - "required": [ - "Message" - ] - }, - "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." - } - } - }, - "StorageServiceStats": { - "type": "object", - "description": "Stats for the storage service.", - "properties": { - "geoReplication": { - "$ref": "#/definitions/GeoReplication", - "description": "The geo replication stats." - } - }, - "required": [ - "geoReplication" - ] - }, - "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." - } - }, - "required": [ - "signedOid", - "signedTid", - "signedStart", - "signedExpiry", - "signedService", - "signedVersion", - "value" - ] - }, - "Versions": { - "type": "string", - "description": "The Azure.Storage.Blob service versions.", - "enum": [ - "2020-10-02-preview", - "2020-12-06-preview", - "2021-02-12-preview", - "2021-04-10-preview", - "2021-08-06-preview", - "2021-12-02-preview" - ], - "x-ms-enum": { - "name": "Versions", - "modelAsString": true, - "values": [ - { - "name": "2020-10-02-preview", - "value": "2020-10-02-preview", - "description": "The 2020-10-02-preview version of the Azure.Storage.Blob service." - }, - { - "name": "2020-12-06-preview", - "value": "2020-12-06-preview", - "description": "The 2020-12-06-preview version of the Azure.Storage.Blob service." - }, - { - "name": "2021-02-12-preview", - "value": "2021-02-12-preview", - "description": "The 2021-02-12-preview version of the Azure.Storage.Blob service." - }, - { - "name": "2021-04-10-preview", - "value": "2021-04-10-preview", - "description": "The 2021-04-10-preview version of the Azure.Storage.Blob service." - }, - { - "name": "2021-08-06-preview", - "value": "2021-08-06-preview", - "description": "The 2021-08-06-preview version of the Azure.Storage.Blob service." - }, - { - "name": "2021-12-02-preview", - "value": "2021-12-02-preview", - "description": "The 2021-12-02-preview version of the Azure.Storage.Blob service." - } - ] - } - } - }, - "parameters": { - "PremiumPageBlobAccessTierOptional": { - "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-parameter-location": "method", - "x-ms-client-name": "accessTier" - } - } -} diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 26499054713c..b65c999fbc01 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -1,1196 +1,1581 @@ { "swagger": "2.0", "info": { - "title": "Azure Blob Storage", + "title": "Azure Storage Blob service", "version": "2021-12-02", - "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}", + "hostTemplate": "{endpoint}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { - "$ref": "#/parameters/Url" + "name": "endpoint", + "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" - ], - "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", + "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": "Service_GetProperties", + "description": "Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", "parameters": [ { - "$ref": "#/parameters/StorageServiceProperties" + "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" }, { - "$ref": "#/parameters/Timeout" - }, - { - "$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" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "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." }, "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." } } }, "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" - ], - "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.", + "put": { + "operationId": "Service_SetProperties", + "description": "Get 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": "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "body", + "in": "body", + "description": "The storage service properties that specifies the analytics and CORS rules to set on the Blob service.", + "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." }, "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." } - }, - "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" - ], - "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.", + "post": { + "operationId": "Service_GetUserDelegationKey", + "description": "The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS.", "parameters": [ { - "$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" }, { - "$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": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "body", + "in": "body", + "description": "The user delegation key info.", + "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", "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/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": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ListContainersInclude" + "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" }, { - "$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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ClientRequestId" + "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" } ], "responses": { "200": { - "description": "Success.", + "description": "The request has succeeded.", "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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." }, + "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 if a blob has an active immutability policy." + }, + "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": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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": "Indicates if a blob has a legal hold." + }, "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." } - }, - "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": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-blob-public-access", + "in": "header", + "description": "Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'.", + "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": "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" + }, + { + "name": "x-ms-deny-encryption-scope-override", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container.", + "required": false, + "type": "boolean", + "x-ms-client-name": "denyEncryptionScopeOverride" }, { - "$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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { - "200": { - "description": "Success.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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" } - }, - "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" - ], - "operationId": "Service_GetAccountInfo", - "description": "Returns the sku name and account kind ", + "post": { + "operationId": "Container_SubmitBatch", + "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", "parameters": [ { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Success (OK)", - "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." - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "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.", - "parameters": [ - { - "$ref": "#/parameters/Body" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ContentLength" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/MultipartContentType" + "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" }, { - "$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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "responses": { - "200": { - "description": "Success.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "type": "string", + "format": "byte" + }, "headers": { - "Content-Type": { - "type": "string", - "description": "The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID" - }, "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." } - }, - "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": { - "get": { - "tags": [ - "service" - ], - "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.", + "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/Timeout" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestId" + "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/FilterBlobsWhere" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/Marker" + "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/MaxResults" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/FilterBlobsInclude" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" } ], "responses": { - "200": { - "description": "Success", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { + "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-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" } }, "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": [ - "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", + "/{containerName}/{blob}": { + "get": { + "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.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "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": "header", + "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": true, + "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" + }, + { + "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" + }, + { + "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-range-get-content-md5", + "in": "header", + "description": "Optional. When this header is set to true and specified together with the Range header, 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": "rangeContentMd5" + }, + { + "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": "rangeContentCrc64" + }, + { + "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", + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/Metadata" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/BlobPublicAccess" + "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": "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/DefaultEncryptionScope" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/DenyEncryptionScopeOverride" + "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" } ], "responses": { - "201": { - "description": "Success, Container created.", + "200": { + "description": "The request has succeeded.", + "schema": { + "type": "string", + "format": "byte" + }, "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Content-Disposition": { "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 '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-request-id": { - "x-ms-client-name": "RequestId", + "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" }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Content-Language": { "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 Content-Language request header." }, - "Date": { + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-MD5": { "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" - } - } - } - }, - "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": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "Success", - "headers": { - "x-ms-meta": { + "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": { "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" + "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." + "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." + "description": "The date/time that the container was last modified." }, - "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-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-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", + "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": [ - "available", - "leased", - "expired", - "breaking", - "broken" + "BlockBlob", + "PageBlob", + "AppendBlob" ], "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false + "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-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", + "x-ms-copy-completion-time": { + "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-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": [ - "locked", - "unlocked" + "pending", + "success", + "failed", + "aborted" ], "x-ms-enum": { - "name": "LeaseStatusType", - "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-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-rfc1123", + "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" + "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-public-access": { - "x-ms-client-name": "BlobPublicAccess", - "description": "Indicated whether data in the container may be accessed publicly and the level of access", + "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." + } + ] } }, - "x-ms-has-immutability-policy": { - "x-ms-client-name": "HasImmutabilityPolicy", - "description": "Indicates whether the container has an immutability policy set on it.", - "type": "boolean" + "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 blob immutability policy will expire." }, - "x-ms-has-legal-hold": { - "x-ms-client-name": "HasLegalHold", - "description": "Indicates whether the container has a legal hold.", - "type": "boolean" + "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-default-encryption-scope": { - "x-ms-client-name": "DefaultEncryptionScope", - "description": "The default encryption scope for the container.", - "type": "string" + "x-ms-last-access-time": { + "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-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-lease-duration": { + "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } }, - "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", + "x-ms-lease-state": { "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": "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-request-id": { - "x-ms-client-name": "RequestId", + "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-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, + "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-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-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" }, "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-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" - ] - } - ] - }, - "/{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", + "type": "string", + "format": "byte" + }, "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Content-Disposition": { "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 '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-request-id": { - "x-ms-client-name": "RequestId", + "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" }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Content-Language": { "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 Content-Language request header." }, - "Date": { + "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." + }, + "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." + }, + "Last-Modified": { "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": "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-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": [ - "container", - "blob" + "BlockBlob", + "PageBlob", + "AppendBlob" ], "x-ms-enum": { - "name": "PublicAccessType", - "modelAsString": true + "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." + } + ] } }, - "ETag": { + "x-ms-copy-completion-time": { "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-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." }, - "Last-Modified": { + "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-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": "Returns the date and time the blob was created." }, - "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-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-rfc1123", + "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-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-lease-duration": { + "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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-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-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-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" }, "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-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." } - }, - "schema": { - "$ref": "#/definitions/SignedIdentifiers" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } @@ -1198,1562 +1583,1547 @@ } }, "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.", + "operationId": "Blob_SetHttpHeaders", + "description": "The Set HTTP Headers operation sets system properties on the blob.", "parameters": [ { - "$ref": "#/parameters/ContainerAcl" + "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" + }, + { + "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", + "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" + }, + { + "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/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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/LeaseIdOptional" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/BlobPublicAccess" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$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" + "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/ClientRequestId" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { "200": { - "description": "Success.", + "description": "The request has succeeded.", "headers": { + "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" + }, "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." + "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." }, "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" - } - }, + "description": "An unexpected error response.", "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.", + "post": { + "operationId": "Blob_Undelete", + "description": "\"Undelete a blob that was previously soft deleted\"", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ClientRequestId" + "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/DeletedContainerName" + "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/DeletedContainerVersion" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { - "201": { - "description": "Created.", + "200": { + "description": "The request has succeeded.", "headers": { + "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-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" - } - }, + "description": "An unexpected error response.", "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.", + "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": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ApiVersionParameter" + "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/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/SourceContainerName" + "name": "versionid", + "in": "header", + "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": true, + "type": "string", + "x-ms-client-name": "versionId" }, { - "$ref": "#/parameters/SourceLeaseId" - } - ], - "responses": { - "200": { - "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." - }, - "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" }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } + { + "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": [ + "none", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": true, + "values": [ + { + "name": "Nonne", + "value": "none", + "description": "The delete snapshots include option is not specified." + }, + { + "name": "Include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] }, - "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": [ + "x-ms-client-name": "deleteSnapshots" + }, + { + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, { - "$ref": "#/parameters/Body" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/ContentLength" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/MultipartContentType" + "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" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ClientRequestId" + "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": [ + "none", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": true, + "values": [ + { + "name": "Nonne", + "value": "none", + "description": "The delete snapshots include option is not specified." + }, + { + "name": "Include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] + }, + "x-ms-client-name": "blobDeleteType" } ], "responses": { "202": { - "description": "Success.", + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { - "Content-Type": { + "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-client-request-id": { "type": "string", - "description": "The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID" + "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." } - }, - "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" - }, - { - "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.", + "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/Timeout" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ApiVersionParameter" + "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/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/FilterBlobsWhere" + "name": "versionid", + "in": "header", + "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": true, + "type": "string", + "x-ms-client-name": "versionId" }, { - "$ref": "#/parameters/Marker" + "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/MaxResults" + "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/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": "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", + "x-ms-client-name": "encryptionAlgorithm" }, - "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" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/LeaseDuration" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ProposedLeaseIdOptional" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$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" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ClientRequestId" + "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" } ], "responses": { - "201": { - "description": "The Acquire operation completed successfully.", + "200": { + "description": "The request has succeeded.", "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." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "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": { "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": [ - "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", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdRequired" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "The Release 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." + "description": "The date/time that the container was last modified." }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-access-tier": { "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 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.", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive" + ], + "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." + } + ] + } }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-access-tier-change-time": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "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." }, - "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-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." }, - "Date": { + "x-ms-archive-status": { + "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.", + "enum": [ + "rehydrate-pending-to-hot", + "rehydrate-pending-to-cool", + "rehydrate-pending-to-archive", + "rehydrate-pending-to-expired" + ], + "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": "RehydratePendingToArchive", + "value": "rehydrate-pending-to-archive", + "description": "The archive status is rehydrating pending to archive." + }, + { + "name": "RehydratePendingToExpired", + "value": "rehydrate-pending-to-expired", + "description": "The archive status is rehydrating pending to expired." + } + ] + } + }, + "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": { + "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": { + "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-copy-completion-time": { "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": "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-destination-snapshot": { + "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-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-rfc1123", + "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-expiry-time": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob will expire." + }, + "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-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-incremental-copy": { + "type": "boolean", + "description": "Included if the blob is incremental copy 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-last-access-time": { + "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-lease-duration": { + "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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-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-rehydrate-priority": { + "type": "string", + "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." + } + ] + } + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-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": { + "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": [ - "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" - ], - "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", + "/{containerName}/{blob}/{containerName}/{blob}": { + "get": { + "operationId": "Blob_GetTags", + "description": "The Get Blob Tags operation enables users to get tags on a blob.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "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" + }, + { + "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": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/IfModifiedSince" + "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/IfUnmodifiedSince" + "name": "versionid", + "in": "header", + "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": true, + "type": "string", + "x-ms-client-name": "versionId" }, { - "$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" + "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" } ], "responses": { "200": { - "description": "The Renew operation completed successfully.", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/BlobTags" + }, "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." - }, - "x-ms-lease-id": { - "x-ms-client-name": "LeaseId", - "type": "string", - "description": "Uniquely identifies a container's lease" + "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." }, "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" - } - }, + "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": [ - "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", + "operationId": "Blob_SetTags", + "description": "The Set Tags operation enables users to set tags on a blob.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseBreakPeriod" + "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" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$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." - }, - "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-lease-time": { - "x-ms-client-name": "LeaseTime", - "type": "integer", - "description": "Approximate time remaining in the lease period, in seconds." - }, - "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" - } - }, - "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" + "name": "versionid", + "in": "header", + "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": true, + "type": "string", + "x-ms-client-name": "versionId" }, { - "$ref": "#/parameters/ProposedLeaseIdRequired" + "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": "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/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" + "name": "tags", + "in": "body", + "description": "The blob tags.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobTags" + } } ], "responses": { - "200": { - "description": "The Change operation completed successfully.", + "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": { + "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." - }, - "x-ms-lease-id": { - "x-ms-client-name": "LeaseId", - "type": "string", - "description": "Uniquely identifies a container's lease" + "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." }, "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" - } - }, + "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": [ - "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", + "post": { + "operationId": "Blob_Query", + "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", "parameters": [ { - "$ref": "#/parameters/Prefix" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/Marker" + "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/MaxResults" + "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/ListBlobsInclude" + "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" }, { - "$ref": "#/parameters/Timeout" + "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" - } - ], - "responses": { - "200": { - "description": "Success.", - "headers": { - "Content-Type": { - "type": "string", - "description": "The media type of the body of the response. For List Blobs this is 'application/xml'" - }, - "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/ListBlobsFlatSegmentResponse" - } + "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" - } - }, - "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" + "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", + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/Delimiter" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/Marker" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/MaxResults" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ListBlobsInclude" + "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" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "queryRequest", + "in": "body", + "description": "The query request", + "required": true, + "schema": { + "$ref": "#/definitions/QueryRequest" + } } ], "responses": { "200": { - "description": "Success.", + "description": "The request has succeeded.", + "schema": { + "type": "string", + "format": "byte" + }, "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-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" }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Content-Language": { "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 Content-Language request header." }, - "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/ListBlobsHierarchySegmentResponse" - } - }, - "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=account&comp=properties": { - "get": { - "tags": [ - "container" - ], - "operationId": "Container_GetAccountInfo", - "description": "Returns the sku name and account kind ", - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Success (OK)", - "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", "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", + "ETag": { "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 ETag contains a value that you can use to perform operations conditionally." }, - "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" - } - } - }, - "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": [ - "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.", - "parameters": [ - { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/VersionId" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Range" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/GetRangeContentMD5" - }, - { - "$ref": "#/parameters/GetRangeContentCRC64" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/IfTags" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "Returns the content of the entire 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", + "Last-Modified": { "type": "string", "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was created." - }, - "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." - }, - "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)." + "description": "The date/time that the container was last modified." }, - "Content-Length": { + "x-ms-blob-committed-block-count": { "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." + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." }, - "Content-Language": { + "x-ms-blob-content-md5": { "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." + "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": { - "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", @@ -2761,67 +3131,122 @@ ], "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", + "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-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", + "description": "State of the copy operation identified by x-ms-copy-id.", "enum": [ "pending", "success", - "aborted", - "failed" + "failed", + "aborted" ], "x-ms-enum": { - "name": "CopyStatusType", - "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-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": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", "enum": [ "infinite", "fixed" ], "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false + "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." + } + ] } }, "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", "type": "string", + "description": "Lease state of the blob.", "enum": [ "available", "leased", @@ -2830,283 +3255,265 @@ "broken" ], "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false + "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": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", "type": "string", + "description": "The lease status of the blob.", "enum": [ - "locked", - "unlocked" + "unlocked", + "locked" ], "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false + "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-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-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-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." + } + } + }, + "206": { + "description": "Successful", + "schema": { + "type": "string", + "format": "byte" + }, + "headers": { + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", + "Cache-Control": { "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": "This header is returned if it was previously specified for 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." + "Content-Encoding": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Encoding request header" }, - "Accept-Ranges": { + "Content-Language": { "type": "string", - "description": "Indicates that the service supports requests for partial blob content." + "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." + }, + "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." }, "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", + "ETag": { "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 ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "Last-Modified": { "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": "date-time-rfc1123", + "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": { - "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", + "x-ms-blob-sequence-number": { "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." + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." }, - "x-ms-immutability-policy-mode": { - "x-ms-client-name": "ImmutabilityPolicyMode", + "x-ms-blob-type": { "type": "string", + "description": "The type of the blob.", "enum": [ - "Mutable", - "Unlocked", - "Locked" + "BlockBlob", + "PageBlob", + "AppendBlob" ], "x-ms-enum": { - "name": "BlobImmutabilityPolicyMode", - "modelAsString": false - }, - "description": "Indicates immutability policy mode." + "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-legal-hold": { - "x-ms-client-name": "LegalHold", - "type": "boolean", - "description": "Indicates if a legal hold is present on the blob." - } - }, - "schema": { - "type": "object", - "format": "file" - } - }, - "206": { - "description": "Returns the content of a specified range of the blob.", - "headers": { - "Last-Modified": { + "x-ms-client-request-id": { "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": "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-creation-time": { - "x-ms-client-name": "CreationTime", + "x-ms-copy-completion-time": { "type": "string", "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was created." + "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-meta": { + "x-ms-copy-id": { "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" + "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-or-policy-id": { - "x-ms-client-name": "ObjectReplicationPolicyId", + "x-ms-copy-progress": { "type": "string", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + "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-or": { + "x-ms-copy-source": { "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": "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." }, - "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.", + "x-ms-copy-status": { "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" + "pending", + "success", + "failed", + "aborted" ], "x-ms-enum": { - "name": "BlobType", - "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-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", + "x-ms-encryption-key-sha256": { "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." + "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-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", + "x-ms-encryption-scope": { "type": "string", - "enum": [ - "pending", - "success", - "aborted", - "failed" - ], - "x-ms-enum": { - "name": "CopyStatusType", - "modelAsString": false - } + "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": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", "type": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", "enum": [ "infinite", "fixed" ], "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false + "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." + } + ] } }, "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", "type": "string", + "description": "Lease state of the blob.", "enum": [ "available", "leased", @@ -3115,8330 +3522,10626 @@ "broken" ], "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false + "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": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", "type": "string", + "description": "The lease status of the blob.", "enum": [ - "locked", - "unlocked" + "unlocked", + "locked" ], "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false + "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-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." - }, - "x-ms-is-current-version": { - "x-ms-client-name": "IsCurrentVersion", + "x-ms-request-server-encrypted": { "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." + "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." }, - "Accept-Ranges": { + "x-ms-version": { "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, + "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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + } + }, + "x-ms-paths": { + "/{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": "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, + { + "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-rfc1123", + "x-ms-client-name": "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" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { "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", + "ETag": { "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" + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-last-access-time": { - "x-ms-client-name": "LastAccessed", + "Last-Modified": { "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" + "description": "The date/time that the container was last modified." }, - "x-ms-immutability-policy-until-date": { - "x-ms-client-name": "ImmutabilityPolicyExpiresOn", + "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 blob immutability policy will expire." + "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-immutability-policy-mode": { - "x-ms-client-name": "ImmutabilityPolicyMode", + "x-ms-request-id": { "type": "string", - "description": "Indicates immutability policy mode." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-legal-hold": { - "x-ms-client-name": "LegalHold", - "type": "boolean", - "description": "Indicates if a legal hold is present on the blob." + "x-ms-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" - } - }, + "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.", + } + }, + "/{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.", "parameters": [ { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/VersionId" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$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" }, { - "$ref": "#/parameters/IfTags" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ClientRequestId" + "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" } ], "responses": { "200": { - "description": "Returns the properties of the blob.", + "description": "The request has succeeded.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SignedIdentifier" + } + }, "headers": { - "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-creation-time": { - "x-ms-client-name": "CreationTime", + "Date": { "type": "string", "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was created." - }, - "x-ms-meta": { - "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-or-policy-id": { - "x-ms-client-name": "ObjectReplicationPolicyId", + "ETag": { "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 ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-or": { + "Last-Modified": { "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": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "x-ms-blob-type": { - "x-ms-client-name": "BlobType", - "description": "The blob's type.", + "x-ms-blob-public-access": { "type": "string", + "description": "The public access setting for the container.", "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" + "blob", + "container" ], "x-ms-enum": { - "name": "BlobType", - "modelAsString": false + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] } }, - "x-ms-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", + "x-ms-client-request-id": { "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." + "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-copy-status-description": { - "x-ms-client-name": "CopyStatusDescription", + "x-ms-request-id": { "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": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "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", + "x-ms-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." - }, - "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-access-tier": { - "x-ms-client-name": "AccessTier", - "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." - }, - "x-ms-access-tier-inferred": { - "x-ms-client-name": "AccessTierInferred", - "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." - }, - "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" - ], - "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).", + } + }, + "/{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.", "parameters": [ { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/VersionId" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/DeleteSnapshots" - }, - { - "$ref": "#/parameters/IfModifiedSince" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$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" }, { - "$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": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/IfTags" + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "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/BlobDeleteType" + "name": "acl", + "in": "body", + "description": "The access control list for the container.", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SignedIdentifier" + } + } } ], "responses": { - "202": { - "description": "The delete request was accepted and the blob will be deleted.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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" } } }, "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}?PageBlob": { + "/{containerName}?restype=container&comp=undelete": { "put": { - "tags": [ - "blob" - ], - "operationId": "PageBlob_Create", - "description": "The Create operation creates a new page blob.", - "consumes": [ - "application/octet-stream" - ], + "operationId": "Container_Undelete", + "description": "Restores a previously-deleted container.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ContentLength" + "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" }, { - "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" + "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" }, { - "$ref": "#/parameters/BlobContentType" + "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" }, { - "$ref": "#/parameters/BlobContentEncoding" + "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/BlobContentLanguage" - }, - { - "$ref": "#/parameters/BlobContentMD5" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/BlobContentDisposition" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$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": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "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": { + "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." - }, - "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." + "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." }, "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." } } }, "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}?restype=container&comp=rename": { "put": { - "tags": [ - "blob" - ], - "operationId": "AppendBlob_Create", - "description": "The Create Append Blob operation creates a new append blob.", - "consumes": [ - "application/octet-stream" - ], + "operationId": "Container_Rename", + "description": "Renames an existing container.", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/BlobContentMD5" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/Metadata" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdOptional" + "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" }, { - "$ref": "#/parameters/BlobContentDisposition" + "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" }, { - "$ref": "#/parameters/EncryptionKey" + "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" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "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/EncryptionAlgorithm" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "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-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{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.", + "parameters": [ { - "$ref": "#/parameters/EncryptionScope" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "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" + }, + { + "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": "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": "FilterBlobsIncludes", + "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/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" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "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": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + }, + "headers": { + "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-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?comp=lease&restype=container&acquire": { + "put": { + "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/IfNoneMatch" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfTags" + "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": true, + "type": "integer", + "format": "int32", + "x-ms-client-name": "duration" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestId" + "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/BlobTagsHeader" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "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/ImmutabilityPolicyMode" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/LegalHoldOptional" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" } ], "responses": { "201": { - "description": "The blob was created.", + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "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" + }, "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." - }, - "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." + "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, "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." } } }, "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}?comp=lease&restype=container&release": { "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": "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", "parameters": [ { - "$ref": "#/parameters/Body" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/Timeout" + "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/ContentMD5" + "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" }, { - "$ref": "#/parameters/ContentLength" + "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/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/BlobContentMD5" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/BlobContentDisposition" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/AccessTierOptional" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/IfTags" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - }, - { - "$ref": "#/parameters/BlobTagsHeader" - }, - { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" - }, - { - "$ref": "#/parameters/ImmutabilityPolicyMode" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/LegalHoldOptional" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/ContentCrc64" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" } ], "responses": { - "201": { - "description": "The blob was updated.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, "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." - }, - "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." + "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." - }, - "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." } } }, "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": { + "/{containerName}?comp=lease&restype=container&renew": { "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" - ], + "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" - }, - { - "$ref": "#/parameters/ContentMD5" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/BlobContentMD5" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/BlobContentDisposition" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/AccessTierOptional" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/IfTags" - }, - { - "$ref": "#/parameters/SourceIfModifiedSince" - }, - { - "$ref": "#/parameters/SourceIfUnmodifiedSince" - }, - { - "$ref": "#/parameters/SourceIfMatch" - }, - { - "$ref": "#/parameters/SourceIfNoneMatch" - }, - { - "$ref": "#/parameters/SourceIfTags" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SourceContentMD5" + "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/BlobTagsHeader" + "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" }, { - "$ref": "#/parameters/CopySource" + "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/CopySourceBlobProperties" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/CopySourceAuthorization" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/CopySourceTags" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" } ], "responses": { - "201": { - "description": "The blob was updated.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, "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." - }, - "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." + "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, "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." } } }, "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}?comp=lease&restype=container&break": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_Undelete", - "description": "Undelete a blob that was previously soft deleted", + "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" + "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, + { + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "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" } ], "responses": { - "200": { - "description": "The blob was undeleted successfully.", + "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-rfc1123", + "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-rfc1123", + "description": "The date/time that the container was last modified." }, - "Date": { + "x-ms-lease-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": "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-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." } } }, "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": [ - "undelete" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=expiry": { + "/{containerName}?comp=lease&restype=container&change": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetExpiry", - "description": "Sets the time a blob will expire and be deleted.", + "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" + "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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/BlobExpiryOptions" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/BlobExpiryTime" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" } ], "responses": { "200": { - "description": "The blob expiry was set successfully.", + "description": "The request has succeeded.", "headers": { + "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" + }, "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." + "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", + "x-ms-lease-id": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "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-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" - } - }, + "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": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetHTTPHeaders", - "description": "The Set HTTP Headers operation sets system properties on the blob", + "/{containerName}?restype=container&comp=list&flat": { + "get": { + "operationId": "Container_ListBlobFlatSegment", + "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentMD5" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/IfTags" + "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" + }, + { + "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": [ + "copies", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludes", + "modelAsString": true, + "values": [ + { + "name": "Copies", + "value": "copies", + "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" }, { - "$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" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { "200": { - "description": "The properties were set successfully.", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListBlobsFlatSegmentResponse" + }, "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." - }, - "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": "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." }, "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" - } - }, + "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": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetImmutabilityPolicy", - "description": "The Set Immutability Policy operation sets the immutability policy on the blob", + "/{containerName}?restype=container&comp=list&hierarchy": { + "get": { + "operationId": "Container_ListBlobHierarchySegment", + "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ClientRequestId" + "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" + }, + { + "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": [ + "copies", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludes", + "modelAsString": true, + "values": [ + { + "name": "Copies", + "value": "copies", + "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" }, { - "$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" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "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/ImmutabilityPolicyMode" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { "200": { - "description": "The immutability policy was successfully set.", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" + }, "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-immutability-policy-until-date": { - "x-ms-client-name": "ImmutabilityPolicyExpiry", - "type": "string", - "format": "date-time-rfc1123", - "description": "Indicates the time the 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." - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "delete": { - "tags": [ - "blob" - ], - "operationId": "Blob_DeleteImmutabilityPolicy", - "description": "The Delete Immutability Policy operation deletes the immutability policy on the blob", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "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" } } }, "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": [ - "immutabilityPolicies" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=legalhold": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetLegalHold", - "description": "The Set Legal Hold operation sets a legal hold on the blob.", + "/{containerName}?restype=account&comp=properties": { + "get": { + "operationId": "Container_GetAccountInfo", + "description": "Returns the sku name and account kind", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LegalHoldRequired" + "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" } ], "responses": { "200": { - "description": "The legal hold was successfully set on the blob.", + "description": "The request has succeeded.", "headers": { + "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-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": { - "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", + "x-ms-sku-name": { "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": "Identifies the sku name of the account", + "enum": [ + "Standard_LRS", + "tandard_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": "tandard_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." + } + ] + } }, - "Date": { + "x-ms-version": { "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." + "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." } } }, "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": [ - "legalhold" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=metadata": { + "/{containerName}/{blob}?PageBlob": { "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", + "operationId": "PageBlob_Create", + "description": "The Create operation creates a new page blob.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "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": "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" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" + }, + { + "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", + "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", + "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": "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$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/IfModifiedSince" + "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/IfUnmodifiedSince" + "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/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": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$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/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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/ClientRequestId" + "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" } ], "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-rfc1123", + "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." + "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", + "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" + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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", + "x-ms-version": { "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": "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-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=page&update": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_AcquireLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", + "operationId": "PageBlob_UploadPages", + "description": "The Upload Pages operation writes a range of pages to a page blob", "parameters": [ { - "$ref": "#/parameters/Timeout" + "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": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "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-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" + }, + { + "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" + }, + { + "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" + }, + { + "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", + "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-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" + }, + { + "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/LeaseDuration" + "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/ProposedLeaseIdOptional" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfMatch" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$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-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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "responses": { "201": { - "description": "The Acquire operation completed successfully.", + "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-rfc1123", + "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." + "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 blobs' lease" + "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." }, + "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": { + "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-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-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-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" - } - }, + "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": [ - "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": { + "/{containerName}/{blob}?comp=page&clear": { "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", + "operationId": "PageBlob_ClearPages", + "description": "The Clear Pages operation clears a range of pages from a page blob", "parameters": [ { - "$ref": "#/parameters/Timeout" + "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": "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" }, { - "$ref": "#/parameters/LeaseIdRequired" + "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" + }, + { + "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-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" + }, + { + "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/IfModifiedSince" + "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/IfUnmodifiedSince" + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatch" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$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-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/ClientRequestId" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "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": { + "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" + }, "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." + "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." }, "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" - } - }, + "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=page&update&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": "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/Timeout" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdRequired" - }, + "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" }, { - "$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": "x-ms-source-url", + "in": "header", + "description": "Specify a URL to the copy source.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceUrl" }, { - "$ref": "#/parameters/IfNoneMatch" + "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/IfTags" + "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/ApiVersionParameter" + "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", + "x-ms-client-name": "sourceContentCrc64" }, { - "$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": "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" }, - "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": [ - "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": [ { - "$ref": "#/parameters/Timeout" + "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/LeaseIdRequired" + "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/ProposedLeaseIdRequired" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/IfModifiedSince" + "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/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-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" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "The Change 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-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-lease-id": { - "x-ms-client-name": "LeaseId", - "type": "string", - "description": "Uniquely identifies a blobs' lease" - }, - "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": "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, - "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": [ - "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": { - "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", - "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/LeaseBreakPeriod" + "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-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-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "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-rfc1123", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "$ref": "#/parameters/IfMatch" + "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/IfNoneMatch" + "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/IfTags" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ClientRequestId" + "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" } ], "responses": { "202": { - "description": "The Break operation completed successfully.", + "description": "The request has been accepted for processing, but processing has not yet completed.", "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-rfc1123", + "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." + "description": "The date/time that the container was last modified." }, - "x-ms-lease-time": { - "x-ms-client-name": "LeaseTime", + "x-ms-blob-sequence-number": { "type": "integer", - "description": "Approximate time remaining in the lease period, in seconds." + "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-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": { + "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-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-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-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" - } - }, + "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": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_CreateSnapshot", - "description": "The Create Snapshot operation creates a read-only snapshot of a blob", + "/{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.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "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/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": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "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/EncryptionScope" + "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/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" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfMatch" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfTags" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$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/ApiVersionParameter" + "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/ClientRequestId" + "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" } ], "responses": { - "201": { - "description": "The snaptshot was taken successfully.", + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, "headers": { - "x-ms-snapshot": { - "x-ms-client-name": "Snapshot", + "Date": { "type": "string", - "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot" + "format": "date-time-rfc1123", + "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." + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." }, "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" - } - }, + "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": [ - "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.", + "/{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.", "parameters": [ { - "$ref": "#/parameters/Timeout" + "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/AccessTierOptional" + "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/RehydratePriority" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "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/SourceIfUnmodifiedSince" + "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" }, { - "$ref": "#/parameters/SourceIfMatch" + "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": true, + "type": "string" }, { - "$ref": "#/parameters/SourceIfNoneMatch" + "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": true, + "type": "string", + "x-ms-client-name": "prevSnapshotUrl" }, { - "$ref": "#/parameters/SourceIfTags" + "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/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" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfMatch" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfTags" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/CopySource" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - }, - { - "$ref": "#/parameters/BlobTagsHeader" - }, - { - "$ref": "#/parameters/SealBlob" - }, - { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "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/ImmutabilityPolicyMode" + "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/LegalHoldOptional" + "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" } ], "responses": { - "202": { - "description": "The copy blob has been accepted with the specified copy status.", + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, "headers": { + "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" + }, "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." + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." }, "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-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-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 - } } } }, "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}?comp=properties&Resize": { "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": "PageBlob_Resize", + "description": "The Resize operation increases the size of the page blob to the specified size.", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/AccessTierOptional" - }, - { - "$ref": "#/parameters/SourceIfModifiedSince" - }, - { - "$ref": "#/parameters/SourceIfUnmodifiedSince" - }, - { - "$ref": "#/parameters/SourceIfMatch" - }, - { - "$ref": "#/parameters/SourceIfNoneMatch" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$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" }, { - "$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/CopySource" + "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/LeaseIdOptional" + "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/ApiVersionParameter" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/ClientRequestId" + "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/SourceContentMD5" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/BlobTagsHeader" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/ImmutabilityPolicyMode" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/LegalHoldOptional" + "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" + "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/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/CopySourceTags" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { - "202": { - "description": "The copy has completed.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, "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." + "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." }, "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-copy-id": { - "x-ms-client-name": "CopyId", - "type": "string", - "description": "String identifier for this copy operation." - }, - "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 - } - }, - "Content-MD5": { - "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." } } }, "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=properties&UpdateSequenceNumber": { "put": { - "tags": [ - "blob" - ], - "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.", + "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/CopyId" + "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" + }, + { + "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": "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "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/Timeout" + "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/LeaseIdOptional" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobSequenceNumber" }, { - "$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" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { - "204": { - "description": "The delete request was accepted and the blob will be deleted.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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." }, "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" - } - }, + "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": [ - "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": { + "/{containerName}/{blob}?comp=incrementalcopy": { "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.", + "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/Snapshot" + "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" }, { - "$ref": "#/parameters/VersionId" + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/Timeout" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/AccessTierRequired" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/RehydratePriority" + "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" + "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/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/IfTags" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { - "200": { - "description": "The new tier will take effect immediately.", + "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-rfc1123", + "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 newer." - } - } - }, - "202": { - "description": "The transition to the new tier is pending.", - "headers": { + "format": "date-time-rfc1123", + "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", + "x-ms-copy-id": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "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-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." - } - } - }, - "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": { - "get": { - "tags": [ - "blob" - ], - "operationId": "Blob_GetAccountInfo", - "description": "Returns the sku name and account kind ", - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Success (OK)", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-copy-status": { "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": "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-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" } } }, "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}?AppendBlob": { "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": "AppendBlob_Create", + "description": "The Create operation creates a new append blob.", "parameters": [ { - "$ref": "#/parameters/BlockId" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/ContentMD5" - }, - { - "$ref": "#/parameters/ContentCrc64" - }, - { - "$ref": "#/parameters/Body" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/EncryptionKey" + "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/EncryptionKeySha256" + "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" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/EncryptionScope" + "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/ApiVersionParameter" + "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/ClientRequestId" - } - ], - "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-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-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-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." - } - } + "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" }, - "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": [ - "block" - ] - } - ] - }, - "/{containerName}/{blob}?comp=block&fromURL": { - "put": { - "tags": [ - "blockblob" - ], - "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" + "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", + "x-ms-client-name": "blobContentMD5" }, { - "$ref": "#/parameters/ContentLength" + "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/SourceUrl" + "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/SourceRange" + "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/SourceContentMD5" + "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/SourceContentCRC64" + "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/Timeout" + "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", + "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": "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "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/SourceIfUnmodifiedSince" + "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/SourceIfMatch" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/SourceIfNoneMatch" + "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/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-rfc1123", + "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/CopySourceAuthorization" + "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" } ], "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." + "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", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-content-crc64": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "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." + "format": "date-time-rfc1123", + "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", + "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" }, - "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" + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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", + "x-ms-version": { "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": "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-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": [ - "block" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=blocklist": { + "/{containerName}/{blob}?BlockBlob": { "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.", + "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.", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/BlobContentType" + "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" }, { - "$ref": "#/parameters/BlobContentMD5" + "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/ContentMD5" + "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/ContentCrc64" + "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/Metadata" + "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/LeaseIdOptional" + "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", + "x-ms-client-name": "blobContentMD5" }, { - "$ref": "#/parameters/BlobContentDisposition" + "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-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/EncryptionKeySha256" + "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/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/AccessTierOptional" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/IfModifiedSince" + "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/IfUnmodifiedSince" - }, + "name": "x-ms-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "tier" + }, { - "$ref": "#/parameters/IfMatch" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfTags" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "name": "blocks", - "description": "Blob Blocks.", - "in": "body", + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + }, + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", "required": true, - "schema": { - "$ref": "#/definitions/BlockLookupList" - } + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ApiVersionParameter" + "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/ClientRequestId" + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/BlobTagsHeader" + "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/ImmutabilityPolicyExpiry" + "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/ImmutabilityPolicyMode" + "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/LegalHoldOptional" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "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." + "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-rfc1123", + "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", + "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" + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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", + "x-ms-version": { "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": "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-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" } } } - }, - "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", + } + }, + "/{containerName}/{blob}?BlockBlob&fromUrl": { + "put": { + "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/Snapshot" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlockListType" + "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" }, { - "$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/IfTags" + "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" - } - ], - "responses": { - "200": { - "description": "The page range was written.", - "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": { - "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-Type": { - "type": "string", - "description": "The media type of the body of the response. For Get Block List this is 'application/xml'" - }, - "x-ms-blob-content-length": { - "x-ms-client-name": "BlobContentLength", - "type": "integer", - "format": "int64", - "description": "The size of the blob in bytes." - }, - "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/BlockList" - } + "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", + "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" }, - "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": [ - "blocklist" - ] - } - ] - }, - "/{containerName}/{blob}?comp=page&update": { - "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_UploadPages", - "description": "The Upload Pages operation writes a range of pages to a page blob", - "consumes": [ - "application/octet-stream" - ], - "parameters": [ { - "$ref": "#/parameters/Body" + "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/ContentLength" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/ContentMD5" + "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/ContentCrc64" + "name": "x-ms-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "tier" }, { - "$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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/Range" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$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-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-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/EncryptionScope" + "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/IfSequenceNumberLessThanOrEqualTo" + "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/IfSequenceNumberLessThan" + "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/IfSequenceNumberEqualTo" + "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": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "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/IfMatch" + "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/IfNoneMatch" + "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/IfTags" + "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/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" + "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" } ], "responses": { "201": { - "description": "The page range was written.", + "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-content-crc64": { + "ETag": { "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 ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for the page blob." + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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", + "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" }, - "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" + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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 pages. This header is only returned when the pages were 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" - } - }, + "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=block": { "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": "BlockBlob_StageBlock", + "description": "The Stage Block operation creates a new block to be committed as part of a blob", "parameters": [ { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Range" - }, - { - "$ref": "#/parameters/LeaseIdOptional" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/EncryptionKey" + "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/EncryptionKeySha256" + "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/EncryptionAlgorithm" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$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/IfSequenceNumberLessThanOrEqualTo" + "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" }, { - "$ref": "#/parameters/IfSequenceNumberLessThan" + "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/IfSequenceNumberEqualTo" + "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-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/IfUnmodifiedSince" + "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/IfMatch" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/IfNoneMatch" + "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" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "responses": { "201": { - "description": "The page range was cleared.", + "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." + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "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." + "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-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." + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for the page blob." + "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-encryption-scope": { "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 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": { - "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-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-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" - } - }, + "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}?AppendBlob/{containerName}/{blob}?comp=appendblock": { "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": "AppendBlob_AppendBlock", + "description": "The Append Block operation commits a new block of data to the end of an append blob.", "parameters": [ { - "$ref": "#/parameters/SourceUrl" - }, - { - "$ref": "#/parameters/SourceRangeRequiredPutPageFromUrl" - }, - { - "$ref": "#/parameters/SourceContentMD5" - }, - { - "$ref": "#/parameters/SourceContentCRC64" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/RangeRequiredPutPageFromUrl" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/EncryptionKey" + "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/EncryptionKeySha256" + "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" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$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/LeaseIdOptional" + "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/IfSequenceNumberLessThanOrEqualTo" + "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/IfSequenceNumberLessThan" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "maxSize" }, { - "$ref": "#/parameters/IfSequenceNumberEqualTo" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" }, { - "$ref": "#/parameters/IfModifiedSince" + "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/IfUnmodifiedSince" + "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/IfMatch" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/IfNoneMatch" + "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" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/SourceIfUnmodifiedSince" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/SourceIfMatch" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/SourceIfNoneMatch" + "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-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/ClientRequestId" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/CopySourceAuthorization" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "responses": { "201": { - "description": "The page range was written.", + "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." + "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." + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-append-offset": { + "type": "integer", + "format": "int64", + "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-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", "type": "integer", "format": "int64", - "description": "The current sequence number for the page blob." + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." }, - "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." + "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-version": { - "x-ms-client-name": "Version", + "x-ms-content-crc64": { "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 response header is returned so that the client can check for the integrity of the copied content." }, - "Date": { + "x-ms-encryption-key-sha256": { "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 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-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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": { "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 version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." } } }, "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}?AppendBlob/{containerName}/{blob}?comp=appendblock&fromUrl": { + "put": { + "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/Snapshot" + "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" }, { - "$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" + }, + { + "name": "x-ms-source-url", + "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": true, + "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" + }, + { + "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", + "x-ms-client-name": "sourceContentCrc64" + }, + { + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "maxSize" + }, + { + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" }, { - "$ref": "#/parameters/Range" + "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" }, { - "$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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/IfModifiedSince" + "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/IfUnmodifiedSince" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfMatch" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfTags" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$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" + "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/Marker" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/MaxResults" + "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" } ], "responses": { - "200": { - "description": "Information on the page blob was found.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "Last-Modified": { + "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-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": "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", + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-append-offset": { "type": "integer", "format": "int64", - "description": "The size of the blob in bytes." + "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." }, - "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", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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": { - "$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}?AppendBlob/{containerName}/{blob}?comp=seal": { + "put": { + "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/Snapshot" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/PrevSnapshot" - }, - { - "$ref": "#/parameters/PrevSnapshotUrl" + "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": "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" }, { - "$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" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" }, { - "$ref": "#/parameters/IfMatch" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfTags" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$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/Marker" + "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/MaxResults" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "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." + "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-rfc1123", + "description": "The date/time that the container was last modified." + }, + "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." }, "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/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=copy": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_Resize", - "description": "Resize the 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" + "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" + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "name": "x-ms-rehydrate-priority", + "in": "header", + "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", + "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-rfc1123", + "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-rfc1123", + "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/LeaseIdOptional" + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/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/EncryptionScope" + "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/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" + "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": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$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/BlobContentLengthRequired" + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/ApiVersionParameter" + "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/ClientRequestId" + "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" } ], "responses": { - "200": { - "description": "The Blob was resized successfully", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { + "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" + }, "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" + "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-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-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-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": { + "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" - } - }, + "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=copy©id": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_UpdateSequenceNumber", - "description": "Update the sequence number of the blob", + "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/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$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": "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" }, { - "$ref": "#/parameters/SequenceNumberAction" + "name": "x-ms-copy-id", + "in": "header", + "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/BlobSequenceNumber" + "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-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/ClientRequestId" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { - "200": { - "description": "The sequence numbers were updated successfully.", + "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": { + "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." - }, - "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": "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." }, "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" - } - }, + "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=copy&sync": { "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_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/Timeout" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$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" }, { - "$ref": "#/parameters/IfTags" - }, - { - "$ref": "#/parameters/CopySource" + "name": "x-ms-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "tier" }, { - "$ref": "#/parameters/ApiVersionParameter" + "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-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "202": { - "description": "The blob was copied.", - "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" - }, - "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-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 - } - } - } + "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-rfc1123", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, - "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": [ - "incrementalcopy" - ] - } - ] - }, - "/{containerName}/{blob}?comp=appendblock": { - "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.", - "parameters": [ { - "$ref": "#/parameters/Body" + "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/Timeout" + "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/ContentLength" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/ContentMD5" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ContentCrc64" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/BlobConditionMaxSize" + "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" + "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/EncryptionKey" + "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/EncryptionKeySha256" + "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/EncryptionAlgorithm" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/EncryptionScope" + "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/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-rfc1123", + "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" + "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" } ], "responses": { - "201": { - "description": "The block was created.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "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." + "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." + "format": "date-time-rfc1123", + "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", + "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-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-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": "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-blob-append-offset": { - "x-ms-client-name": "BlobAppendOffset", + "x-ms-encryption-scope": { "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-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": "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-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", + "x-ms-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." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-version": { "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 version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." } } }, "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": { - "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.", + "/{containerName}/{blob}/?comp=expiry": { + "post": { + "operationId": "Blob_SetExpiry", + "description": "\"Set the expiration time of a blob\"", "parameters": [ { - "$ref": "#/parameters/SourceUrl" - }, - { - "$ref": "#/parameters/SourceRange" - }, - { - "$ref": "#/parameters/SourceContentMD5" - }, - { - "$ref": "#/parameters/SourceContentCRC64" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/ContentMD5" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/BlobConditionMaxSize" - }, - { - "$ref": "#/parameters/BlobConditionAppendPos" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/IfTags" - }, - { - "$ref": "#/parameters/SourceIfModifiedSince" - }, - { - "$ref": "#/parameters/SourceIfUnmodifiedSince" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SourceIfMatch" + "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/SourceIfNoneMatch" + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$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/CopySourceAuthorization" + "name": "x-ms-expiry-time", + "in": "header", + "description": "The time to set the blob to expiry.", + "required": true, + "type": "string", + "x-ms-client-name": "ExpiresOn" } ], "responses": { - "201": { - "description": "The block was created.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, "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." - }, - "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." + "description": "The date/time that the container was last modified." }, - "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." + "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-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", - "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." - }, - "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." } } }, "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=immutabilityPolicies": { "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_SetImmutabilityPolicy", + "description": "\"Set the immutability policy of a blob\"", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ClientRequestId" + "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": "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" }, { - "$ref": "#/parameters/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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "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": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/IfNoneMatch" + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/BlobConditionAppendPos" + "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" } ], "responses": { "200": { - "description": "The blob was sealed.", + "description": "The request has succeeded.", "headers": { + "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" + }, "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." + "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-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-rfc1123", + "description": "Indicates the time the immutability policy will expire." + }, "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." - }, + } + } + }, + "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": [ + { + "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { "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" + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." } } }, "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=lease&acquire": { + "put": { + "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/QueryRequest" - }, - { - "$ref": "#/parameters/Snapshot" - }, - { - "$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/EncryptionKey" + "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" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "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/EncryptionAlgorithm" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$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": true, + "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" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/IfNoneMatch" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfTags" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$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" } ], "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": { + "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." + "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-" - }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." + "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 Download Blob this is 'application/octet-stream'" + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "Content-Range": { + "x-ms-client-request-id": { "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." + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." }, - "ETag": { + "x-ms-lease-id": { "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": "Uniquely identifies a blobs' lease" }, - "Content-MD5": { + "x-ms-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." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "Content-Encoding": { + "x-ms-version": { "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" - }, - "Cache-Control": { + "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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}/?comp=lease&break": { + "put": { + "operationId": "Blob_BreakLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "parameters": [ + { + "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, + { + "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" + }, + { + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "Date": { "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "Content-Disposition": { + "ETag": { "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." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "Content-Language": { + "Last-Modified": { "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" + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "x-ms-blob-type": { - "x-ms-client-name": "BlobType", - "description": "The blob's type.", + "x-ms-client-request-id": { "type": "string", - "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } + "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-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-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." }, - "x-ms-copy-status-description": { - "x-ms-client-name": "CopyStatusDescription", + "x-ms-request-id": { "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": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-copy-id": { - "x-ms-client-name": "CopyId", + "x-ms-version": { "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.", + "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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}/?comp=lease&change": { + "put": { + "operationId": "Blob_ChangeLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "parameters": [ + { + "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, + { + "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": "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false - } + "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-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", + "ETag": { "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-rfc1123", + "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, "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." - }, + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}/?comp=lease&release": { + "put": { + "operationId": "Blob_ReleaseLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "parameters": [ + { + "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, + { + "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": "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { "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." + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "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)." + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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 blob. This header is only returned when the blob was encrypted with a customer-provided key." + "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-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." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-blob-content-md5": { - "x-ms-client-name": "BlobContentMD5", + "x-ms-version": { "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": "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." } - }, + } + }, + "default": { + "description": "An unexpected error response.", "schema": { - "type": "object", - "format": "file" + "$ref": "#/definitions/StorageError" } + } + } + } + }, + "/{containerName}/{blob}/?comp=lease&renew": { + "put": { + "operationId": "Blob_RenewLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "parameters": [ + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, - "206": { - "description": "Returns the content of a specified range of the blob.", + { + "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, + { + "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": "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + } + ], + "responses": { + "200": { + "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." + "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." }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." - }, - "Content-Type": { + "Last-Modified": { "type": "string", - "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "Content-Range": { + "x-ms-client-request-id": { "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." + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." }, - "ETag": { + "x-ms-lease-id": { "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": "Uniquely identifies a blobs' lease" }, - "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", + "x-ms-request-id": { "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": { - "get": { - "tags": [ - "blob" - ], - "operationId": "Blob_GetTags", - "description": "The Get Tags operation enables users to get the tags associated with a blob.", + "/{containerName}/{blob}/?comp=legalhold": { + "put": { + "operationId": "Blob_SetLegalHold", + "description": "The Set Legal Hold operation sets a legal hold on the blob.", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ClientRequestId" + "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" }, { - "$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/IfTags" + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" }, { - "$ref": "#/parameters/LeaseIdOptional" + "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" } ], "responses": { "200": { - "description": "Retrieved blob tags", + "description": "The request has succeeded.", "headers": { + "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-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-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, "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/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=metadata": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetTags", - "description": "The Set Tags operation enables users to set tags on a blob.", + "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/ApiVersionParameter" + "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, + { + "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" }, { - "$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/VersionId" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/ContentMD5" + "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/ContentCrc64" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/IfTags" + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/BlobTagsBody" + "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" } ], "responses": { - "204": { - "description": "The tags were applied to the blob", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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-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-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-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-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" - } - }, + "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" + "/{containerName}/{blob}/?comp=snapshot": { + "put": { + "operationId": "Blob_CreateSnapshot", + "description": "The Create Snapshot operation creates a read-only snapshot of a blob", + "parameters": [ + { + "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" + }, + { + "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", + "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": "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-snapshot": { + "type": "string", + "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } } } }, - "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" + "/{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": "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" + }, + { + "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" + ], + "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." + } + ] + }, + "x-ms-client-name": "AccessTier" + }, + { + "name": "x-ms-rehydrate-priority", + "in": "header", + "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", + "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-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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, + { + "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" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } } } }, - "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" - } - } - }, - "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 - } - }, - "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}/{blob}/?restype=account&comp=properties": { + "get": { + "operationId": "Blob_GetAccountInfo", + "description": "Returns the sku name and account kind", + "parameters": [ + { + "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": "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } - }, - "ContainerName": { - "type": "string", - "xml": { - "attribute": true + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "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-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", + "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": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-sku-name": { + "type": "string", + "description": "Identifies the sku name of the account", + "enum": [ + "Standard_LRS", + "tandard_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": "tandard_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." + } + ] + } + }, + "x-ms-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." + } + } + }, + "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": { - "type": "string", - "xml": { - "attribute": true + "/?comp=batch": { + "post": { + "operationId": "Service_SubmitBatch", + "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "parameters": [ + { + "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } - }, - "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" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "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" - } - }, - "BlobItems": { - "type": "array", - "items": { - "$ref": "#/definitions/BlobItemInternal" - } - } - } - }, - "BlobPrefix": { - "type": "object", - "required": [ - "Name" - ], - "properties": { - "Name": { - "$ref": "#/definitions/BlobName" - } - } - }, - "BlobName": { - "type": "object", - "properties": { - "Encoded": { - "xml": { - "attribute": true, - "name": "Encoded" + "/?comp=blobs": { + "get": { + "operationId": "Service_FilterBlobs", + "description": "The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression.", + "parameters": [ + { + "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": "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": "FilterBlobsIncludes", + "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" }, - "type": "boolean", - "description": "Indicates if the blob name is encoded." - }, - "content": { - "xml": { - "x-ms-text": true + { + "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" }, - "type": "string", - "description": "The name of the blob." - } - } - }, - "BlobTag": { - "xml": { - "name": "Tag" - }, - "type": "object", - "required": [ - "Key", - "Value" - ], - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - } - }, - "BlobTags": { - "type": "object", - "xml": { - "name": "Tags" - }, - "description": "Blob tags", - "required": [ - "BlobTagSet" - ], - "properties": { - "BlobTagSet": { - "xml": { - "wrapped": true, - "name": "TagSet" + { + "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" }, - "type": "array", - "items": { - "$ref": "#/definitions/BlobTag" - } - } - } - }, - "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 + { + "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" }, - "type": "array", - "items": { - "$ref": "#/definitions/Block" + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } - }, - "UncommittedBlocks": { - "xml": { - "wrapped": true + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + }, + "headers": { + "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-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } }, - "type": "array", - "items": { - "$ref": "#/definitions/Block" + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } } } }, - "BlockLookupList": { - "type": "object", - "properties": { - "Committed": { - "type": "array", - "items": { + "/?comp=block&fromURL/{containerName}/{blob}": { + "put": { + "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": [ + { + "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", - "xml": { - "name": "Committed" - } - } - }, - "Uncommitted": { - "type": "array", - "items": { + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, "type": "string", - "xml": { - "name": "Uncommitted" - } - } - }, - "Latest": { - "type": "array", - "items": { + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, + { + "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" + }, + { + "name": "x-ms-source-url", + "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": true, + "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" + }, + { + "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", + "x-ms-client-name": "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" + }, + { + "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", + "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-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-rfc1123", + "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", - "xml": { - "name": "Latest" + "format": "date-time-rfc1123", + "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-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" + } + ], + "responses": { + "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-rfc1123", + "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", + "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-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": { + "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-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." + } + } + }, + "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" - } - }, - "HeadersPresent": { - "type": "boolean", - "description": "Represents whether the data has headers.", - "xml": { - "name": "HasHeaders" - } - } - } - }, - "JsonTextConfiguration": { - "xml": { - "name": "JsonTextConfiguration" - }, - "description": "json text configuration", - "type": "object", - "properties": { - "RecordSeparator": { - "type": "string", - "description": "The string used to separate records.", - "xml": { - "name": "RecordSeparator" - } - } - } - }, - "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" + "/?comp=blocklist/{containerName}/{blob}": { + "put": { + "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": [ + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, - "xml": { - "wrapped": true, - "name": "Schema" - } - } - } - }, - "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 - } - }, - "Prefix": { - "type": "string" - }, - "Marker": { - "type": "string" - }, - "MaxResults": { - "type": "integer" - }, - "ContainerItems": { - "xml": { - "wrapped": true, - "name": "Containers" + { + "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}$" }, - "type": "array", - "items": { - "$ref": "#/definitions/ContainerItem" - } - }, - "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" - ], - "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 - } - }, - "Where": { - "type": "string" - }, - "Blobs": { - "xml": { - "name": "Blobs", - "wrapped": true + { + "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" }, - "type": "array", - "items": { - "$ref": "#/definitions/FilterBlobItem" - } - }, - "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" - } - } - }, - "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" - } - } - }, - "ContainerMetadata": { - "type": "object", - "xml": { - "name": "Metadata" - }, - "additionalProperties": { - "type": "string" - } - }, - "BlobMetadata": { - "type": "object", - "xml": { - "name": "Metadata" - }, - "properties": { - "Encrypted": { - "type": "string", - "xml": { - "attribute": true + { + "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-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", + "x-ms-client-name": "blobContentMD5" + }, + { + "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-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" + }, + { + "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", + "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-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, + { + "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" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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" + }, + { + "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" + }, + { + "name": "blocks", + "in": "body", + "description": "Blob Blocks.", + "required": true, + "schema": { + "$ref": "#/definitions/BlockLookupList" + } } - } - }, - "additionalProperties": { - "type": "string" - } - }, - "ObjectReplicationMetadata": { - "type": "object", - "xml": { - "name": "OrMetadata" - }, - "additionalProperties": { - "type": "string" + ], + "responses": { + "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-rfc1123", + "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-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-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." + }, + "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": { + "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-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } } }, - "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=blocklist/{containerName}/{blob}&_overload=getBlockList": { + "get": { + "operationId": "BlockBlob_GetBlockList", + "description": "The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob.", + "parameters": [ + { + "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": "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, + { + "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": "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": "Uncomitted", + "value": "uncommitted", + "description": "The list of uncommitted blocks." + }, + { + "name": "All", + "value": "all", + "description": "Both lists together." + } + ] + }, + "x-ms-client-name": "listType" + }, + { + "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" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/BlockLookupList" + }, + "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, + "x-ms-client-request-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." + }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "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": "Service_ListContainersSegment", + "description": "The List Containers Segment operation returns a list of the containers under the specified account", + "parameters": [ + { + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "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" + }, + { + "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } - }, - "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", + "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": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "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": "Service_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" } - }, - "End": { - "type": "integer", - "format": "int64", - "xml": { - "name": "End" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "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-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", + "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-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", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-sku-name": { + "type": "string", + "description": "Identifies the sku name of the account", + "enum": [ + "Standard_LRS", + "tandard_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": "tandard_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." + } + ] + } + }, + "x-ms-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." + } + } + }, + "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": "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": [ + { + "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" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } - }, - "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-rfc1123", + "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", + "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": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-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." + } + } + }, + "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" ], - "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." } - } + ] } }, - "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-archive", + "rehydrate-pending-to-expired" ], "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" - } - } - }, - "SignedIdentifier": { - "xml": { - "name": "SignedIdentifier" - }, - "description": "signed identifier", - "type": "object", - "required": [ - "Id", - "AccessPolicy" - ], - "properties": { - "Id": { - "type": "string", - "description": "a unique id" - }, - "AccessPolicy": { - "$ref": "#/definitions/AccessPolicy" - } - } - }, - "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" - } + "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": "RehydratePendingToArchive", + "value": "rehydrate-pending-to-archive", + "description": "The archive status is rehydrating pending to archive." + }, + { + "name": "RehydratePendingToExpired", + "value": "rehydrate-pending-to-expired", + "description": "The archive status is rehydrating pending to expired." + } + ] } }, - "StorageServiceProperties": { - "description": "Storage Service Properties.", + "ArrowConfiguration": { "type": "object", + "description": "Represents the Apache Arrow configuration.", "properties": { - "Logging": { - "$ref": "#/definitions/Logging" - }, - "HourMetrics": { - "$ref": "#/definitions/Metrics" - }, - "MinuteMetrics": { - "$ref": "#/definitions/Metrics" - }, - "Cors": { - "description": "The set of CORS rules.", + "schema": { "type": "array", + "description": "The Apache Arrow schema", "items": { - "$ref": "#/definitions/CorsRule" + "$ref": "#/definitions/ArrowField" }, - "xml": { - "wrapped": true - } - }, - "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" - }, - "DeleteRetentionPolicy": { - "$ref": "#/definitions/RetentionPolicy" - }, - "StaticWebsite": { - "$ref": "#/definitions/StaticWebsite" - } - } - }, - "StorageServiceStats": { - "description": "Stats for the storage service.", - "type": "object", - "properties": { - "GeoReplication": { - "$ref": "#/definitions/GeoReplication" + "x-ms-identifiers": [] } - } - } - }, - "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": [ - "2021-12-02" - ] - }, - "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" }, - "x-ms-parameter-location": "method", - "description": "Blob tags" - }, - "BlobTagsHeader": { - "name": "x-ms-tags", - "x-ms-client-name": "BlobTagsString", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Optional. Used to set blob tags in various blob operations." + "required": [ + "schema" + ] }, - "AccessTierRequired": { - "name": "x-ms-access-tier", - "x-ms-client-name": "tier", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive", - "Cold" - ], - "x-ms-enum": { - "name": "AccessTier", - "modelAsString": true + "ArrowField": { + "type": "object", + "description": "Represents an Apache Arrow field.", + "properties": { + "type": { + "type": "string", + "description": "The arrow field type." + }, + "name": { + "type": "string", + "description": "The arrow field name." + }, + "precision": { + "type": "integer", + "format": "int32", + "description": "The arrow field precision." + }, + "scale": { + "type": "integer", + "format": "int32", + "description": "The arrow field scale." + } }, - "x-ms-parameter-location": "method", - "description": "Indicates the tier to be set on the blob." + "required": [ + "type" + ] }, - "AccessTierOptional": { - "name": "x-ms-access-tier", - "x-ms-client-name": "tier", - "in": "header", - "required": false, + "Azure.Core.uuid": { + "type": "string", + "format": "uuid", + "description": "Universally Unique Identifier" + }, + "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": "Optional. 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." + } + ] + } }, - "PremiumPageBlobAccessTierOptional": { - "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" + "Permanent" ], "x-ms-enum": { - "name": "PremiumPageBlobAccessTier", - "modelAsString": true - }, - "x-ms-parameter-location": "method", - "description": "Optional. Indicates the tier to be set on the page blob." + "name": "BlobDeleteType", + "modelAsString": true, + "values": [ + { + "name": "Permanent", + "value": "Permanent", + "description": "Permanently delete the blob." + } + ] + } }, - "RehydratePriority": { - "name": "x-ms-rehydrate-priority", - "x-ms-client-name": "rehydratePriority", - "in": "header", - "required": false, + "BlobExpiryOptions": { "type": "string", + "description": "The blob expiration options.", "enum": [ - "High", - "Standard" + "NeverExpire", + "RelativeToCreation", + "RelativeToNow", + "Absolute" ], "x-ms-enum": { - "name": "RehydratePriority", - "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 priority with which to rehydrate an archived blob." + "required": [ + "blobItems" + ] }, - "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" + "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": [] + } }, - "description": "Optional. Sets the blob's Content-Disposition header." + "required": [ + "blobItems", + "blobPrefixes" + ] }, - "BlobContentEncoding": { - "name": "x-ms-blob-content-encoding", - "x-ms-client-name": "blobContentEncoding", - "in": "header", - "required": false, + "BlobImmutabilityPolicyMode": { "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "blob-HTTP-headers" + "description": "The immutability policy mode.", + "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." + } + ] + } + }, + "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": { + "type": "array", + "description": "The tags of the blob.", + "items": { + "$ref": "#/definitions/BlobTag" + }, + "x-ms-identifiers": [] + }, + "objectReplicationMetadata": { + "$ref": "#/definitions/ObjectReplicationMetadata", + "description": "The object replication metadata of the blob." + }, + "hasVersionsOnly": { + "type": "boolean", + "description": "Whether the blog has versions only." + } }, - "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request." + "required": [ + "name", + "deleted", + "snapshot", + "properties" + ] }, - "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" + "BlobMetadata": { + "type": "object", + "description": "The blob metadata.", + "properties": { + "encrypted": { + "type": "string", + "description": "Whether the blob metadata is encrypted." + } }, - "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request." + "required": [ + "encrypted" + ], + "additionalProperties": { + "type": "string" + } }, - "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." + "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." + } + }, + "required": [ + "encoded", + "content" + ] }, - "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." + "BlobPrefix": { + "type": "object", + "description": "Represents a blob prefix.", + "properties": { + "name": { + "$ref": "#/definitions/BlobName", + "description": "The blob name." + } + }, + "required": [ + "name" + ] }, - "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" + "BlobPropertiesInternal": { + "type": "object", + "description": "The properties of a blob.", + "properties": { + "creationTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date-time the blob was created in RFC1123 format." + }, + "lastModified": { + "type": "string", + "format": "date-time-rfc1123", + "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", + "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-rfc1123", + "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 desination snapshot." + }, + "deletedTime": { + "type": "string", + "format": "date-time-rfc1123", + "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." + }, + "encryptionScope": { + "type": "string", + "description": "The encryption scope of the blob." + }, + "accessTierChangeTime": { + "type": "string", + "format": "date-time-rfc1123", + "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-rfc1123", + "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-rfc1123", + "description": "The last access time of the blob." + }, + "immutabilityPolicyUntilDate": { + "type": "string", + "format": "date-time-rfc1123", + "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. 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": [ + "lastModified", + "eTag" + ] }, - "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" + "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. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request." + "required": [ + "key", + "value" + ] }, - "BlobDeleteType": { - "name": "deletetype", - "x-ms-client-name": "blobDeleteType", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "Permanent" - ], - "x-ms-enum": { - "name": "BlobDeleteType", - "modelAsString": false + "BlobTags": { + "type": "object", + "description": "Represents blob tags.", + "properties": { + "blobTagSet": { + "type": "array", + "description": "Represents the blob tags.", + "items": { + "$ref": "#/definitions/BlobTag" + }, + "x-ms-identifiers": [] + } }, - "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." + "required": [ + "blobTagSet" + ] }, - "BlobExpiryOptions": { - "name": "x-ms-expiry-option", - "x-ms-client-name": "ExpiryOptions", - "in": "header", - "required": true, + "BlobType": { "type": "string", + "description": "The blob type.", "enum": [ - "NeverExpire", - "RelativeToCreation", - "RelativeToNow", - "Absolute" + "BlockBlob", + "PageBlob", + "AppendBlob" ], "x-ms-enum": { - "name": "BlobExpiryOptions", - "modelAsString": true - }, - "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." - }, - "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." + "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." + } + ] + } }, "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", @@ -11446,854 +14149,1492 @@ ], "x-ms-enum": { "name": "BlockListType", - "modelAsString": false + "modelAsString": true, + "values": [ + { + "name": "Committed", + "value": "committed", + "description": "The list of committed blocks." + }, + { + "name": "Uncomitted", + "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" + "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" + } + } }, - "x-ms-parameter-location": "method", - "description": "Initial data" + "required": [ + "committed", + "uncommitted", + "latest" + ] }, - "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" + "required": [ + "start", + "end" + ] }, - "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." + "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": { + "$ref": "#/definitions/ContainerMetadata", + "description": "The metadata of the container." + } + }, + "required": [ + "name", + "properties" + ] }, - "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." + "ContainerMetadata": { + "type": "object", + "description": "The metadata of a container.", + "properties": { + "encrypted": { + "type": "string", + "description": "Whether the metadata is encrypted." + } + }, + "required": [ + "encrypted" + ], + "additionalProperties": { + "type": "string" + } }, - "ContainerName": { - "name": "containerName", - "in": "path", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "description": "The container name." + "ContainerProperties": { + "type": "object", + "description": "The properties of a container.", + "properties": { + "creationTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date-time the container was created in RFC1123 format." + }, + "lastModified": { + "type": "string", + "format": "date-time-rfc1123", + "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." + }, + "defaultEncryptionScope": { + "type": "string", + "description": "The default encryption scope of the container." + }, + "denyEncryptionScopeOverride": { + "type": "boolean", + "description": "Whether to prevent encryption scope override." + }, + "hasLegalHold": { + "type": "boolean", + "description": "The has legal hold status of the container." + }, + "deletedTime": { + "type": "string", + "format": "date-time-rfc1123", + "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" + ] }, - "ContentCrc64": { - "name": "x-ms-content-crc64", - "x-ms-client-name": "transactionalContentCrc64", - "in": "header", - "required": false, + "CopyStatus": { "type": "string", - "format": "byte", - "x-ms-parameter-location": "method", - "description": "Specify the transactional crc64 for the body, to be validated by the service." + "description": "The copy status.", + "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." + } + ] + } }, - "ContentLength": { - "name": "Content-Length", - "in": "header", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-parameter-location": "method", - "description": "The length of the request." + "CorsRule": { + "type": "object", + "description": "The CORS rule.", + "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." + } + }, + "required": [ + "allowedOrigins", + "allowedMethods", + "allowedHeaders", + "exposedHeaders", + "maxAgeInSeconds" + ] }, - "ContentMD5": { - "name": "Content-MD5", - "x-ms-client-name": "transactionalContentMD5", - "in": "header", - "required": false, + "DeleteSnapshotsOptionType": { "type": "string", - "format": "byte", - "x-ms-parameter-location": "method", - "description": "Specify the transactional md5 for the body, to be validated by the service." + "description": "The delete snapshots option type.", + "enum": [ + "none", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": true, + "values": [ + { + "name": "Nonne", + "value": "none", + "description": "The delete snapshots include option is not specified." + }, + { + "name": "Include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] + } }, - "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." + "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." + } + } }, - "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." + "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" + } + }, + "required": [ + "name", + "containerName" + ] }, - "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." + "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." + } + }, + "required": [ + "serviceEndpoint", + "where", + "blobs" + ] }, - "CopySourceTags": { - "name": "x-ms-copy-source-tag-option", - "x-ms-client-name": "copySourceTags", - "in": "header", - "required": false, + "FilterBlobsIncludes": { "type": "string", + "description": "The filter blobs includes.", "enum": [ - "REPLACE", - "COPY" + "none", + "versions" ], "x-ms-enum": { - "name": "BlobCopySourceTags", - "modelAsString": false + "name": "FilterBlobsIncludes", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "The filter includes no versions." + }, + { + "name": "Versions", + "value": "versions", + "description": "The filter includes n versions." + } + ] + } + }, + "GeoReplication": { + "type": "object", + "description": "The geo replication status.", + "properties": { + "status": { + "$ref": "#/definitions/GeoReplicationStatus", + "description": "The georeplication status." + }, + "lastSyncTime": { + "type": "string", + "description": "The last sync time." + } }, - "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": [ + "status", + "lastSyncTime" + ] }, - "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, + "GeoReplicationStatus": { "type": "string", + "description": "The geo replication status.", "enum": [ - "include", - "only" + "live", + "bootstrap", + "unavailable" ], "x-ms-enum": { - "name": "DeleteSnapshotsOptionType", - "modelAsString": false + "name": "GeoReplicationStatus", + "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." + } + ] } }, - "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." + "JsonTextConfiguration": { + "type": "object", + "description": "Represents the JSON text configuration.", + "properties": { + "recordSeparator": { + "type": "string", + "description": "The string used to separate records." + } + } }, - "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" + "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": "The SHA-256 hash of the provided encryption key. Must be provided if the x-ms-encryption-key header is provided." + "required": [ + "start", + "expiry" + ] }, - "EncryptionAlgorithm": { - "name": "x-ms-encryption-algorithm", - "x-ms-client-name": "encryptionAlgorithm", + "LeaseDuration": { "type": "string", - "in": "header", - "required": false, + "description": "The lease duration.", "enum": [ - "AES256" + "infinite", + "fixed" ], "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." - }, - "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" - }, - "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." - }, - "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" - }, - "description": "Optional. Version 2019-07-07 and later. Specifies the default encryption scope to set on the container and use for all future writes." + "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." + } + ] + } }, - "DeletedContainerName": { - "name": "x-ms-deleted-container-name", - "x-ms-client-name": "DeletedContainerName", + "LeaseState": { "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." + "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." + } + ] + } }, - "DeletedContainerVersion": { - "name": "x-ms-deleted-container-version", - "x-ms-client-name": "DeletedContainerVersion", + "LeaseStatus": { "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." + "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." + } + ] + } }, - "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" + "ListBlobsFlatSegmentResponse": { + "type": "object", + "description": "An enumeration of blobs.", + "properties": { + "serviceEndpoint": { + "type": "string", + "description": "The service endpoint." + }, + "containerName": { + "type": "string", + "description": "The container name." + }, + "rrefix": { + "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": "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." + "required": [ + "serviceEndpoint", + "containerName", + "segment" + ] }, - "FilterBlobsInclude": { - "name": "include", - "in": "query", - "required": false, - "type": "array", - "collectionFormat": "csv", - "items": { - "type": "string", - "enum": [ - "none", - "versions" - ], - "x-ms-enum": { - "name": "FilterBlobsIncludeItem", - "modelAsString": false + "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." } }, - "x-ms-parameter-location": "method", - "description": "Include this parameter to specify one or more datasets to include in the response." + "required": [ + "serviceEndpoint", + "containerName", + "segment" + ] }, - "FilterBlobsWhere": { - "name": "where", - "in": "query", - "required": false, + "ListBlobsIncludes": { "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." + "description": "The list blob includes parameter values.", + "enum": [ + "copies", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludes", + "modelAsString": true, + "values": [ + { + "name": "Copies", + "value": "copies", + "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." + } + ] + } }, - "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." + "ListContainersSegmentResponse": { + "type": "object", + "description": "The list container segement 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." + }, + "maxxResults": { + "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." + } + }, + "required": [ + "serviceEndpoint", + "containerItems" + ] }, - "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" + "Logging": { + "type": "object", + "description": "The logging properties.", + "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." + } }, - "description": "Specify an ETag value to operate only on blobs with a matching value." + "required": [ + "version", + "delete", + "read", + "write", + "retentionPolicy" + ] }, - "IfModifiedSince": { - "name": "If-Modified-Since", - "x-ms-client-name": "ifModifiedSince", - "in": "header", - "required": false, - "type": "string", - "format": "date-time-rfc1123", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "modified-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." + }, + "serviceProperties": { + "$ref": "#/definitions/MetricsServiceProperties", + "description": "The service properties of the metrics." + } }, - "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time." + "required": [ + "enabled" + ] }, - "IfNoneMatch": { - "name": "If-None-Match", - "x-ms-client-name": "ifNoneMatch", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "modified-access-conditions" + "MetricsProperties": { + "type": "object", + "description": "The metrics properties.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether to include API in the metrics." + }, + "version": { + "type": "string", + "description": "The version of the metrics properties." + }, + "retentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "The retention policy of the metrics." + } }, - "description": "Specify an ETag value to operate only on blobs without a matching value." + "required": [ + "enabled", + "version", + "retentionPolicy" + ] }, - "IfUnmodifiedSince": { - "name": "If-Unmodified-Since", - "x-ms-client-name": "ifUnmodifiedSince", - "in": "header", - "required": false, - "type": "string", - "format": "date-time-rfc1123", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "modified-access-conditions" + "MetricsServiceProperties": { + "type": "object", + "description": "The metrics service properties.", + "properties": { + "hourMetrics": { + "$ref": "#/definitions/MetricsProperties", + "description": "The hour metrics properties." + }, + "minuteMetrics": { + "$ref": "#/definitions/MetricsProperties", + "description": "The minute metrics properties." + } }, - "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time." + "required": [ + "hourMetrics", + "minuteMetrics" + ] }, - "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." + "ObjectReplicationMetadata": { + "type": "object", + "description": "The object replication metadata.", + "additionalProperties": { + "type": "string" + } }, - "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" + "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." + } }, - "description": "Specify this header value to operate only on a blob if it has a sequence number less than the specified." + "required": [ + "pageRange", + "clearRange" + ] }, - "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" + "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." + } }, - "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": [ + "start", + "end" + ] }, - "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" - }, - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value." + "ParquetConfiguration": { + "type": "object", + "description": "Represents the Parquet configuration.", + "additionalProperties": {} }, - "ImmutabilityPolicyExpiry": { - "name": "x-ms-immutability-policy-until-date", - "x-ms-client-name": "immutabilityPolicyExpiry", - "in": "header", - "required": false, + "PremiumPageBlobAccessTier": { "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 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." + } + ] + } }, - "ImmutabilityPolicyMode": { - "name": "x-ms-immutability-policy-mode", - "x-ms-client-name": "immutabilityPolicyMode", - "in": "header", - "required": false, + "PublicAccessType": { "type": "string", + "description": "The public access types.", "enum": [ - "Unlocked", - "Locked" + "blob", + "container" ], "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": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] } }, - "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 - } - }, - "x-ms-parameter-location": "method", - "description": "Include this parameter to specify one or more datasets to include in the response." - }, - "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 + "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." + }, + "parquetConfiguration": { + "$ref": "#/definitions/ParquetConfiguration", + "description": "The Parquet configuration." } }, - "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." - }, - "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" - }, - "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." - }, - "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-" - }, - "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_" - }, - "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." - }, - "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-" - }, - "Prefix": { - "name": "prefix", - "in": "query", - "required": false, - "type": "string", - "description": "Filters the results to return only containers whose name begins with the specified prefix.", - "x-ms-parameter-location": "method" - }, - "PrevSnapshot": { - "name": "prevsnapshot", - "in": "query", - "required": false, - "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." - }, - "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." - }, - "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." - }, - "ProposedLeaseIdRequired": { - "name": "x-ms-proposed-lease-id", - "x-ms-client-name": "proposedLeaseId", - "in": "header", - "required": true, - "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." + "required": [ + "type" + ] }, "QueryRequest": { - "name": "queryRequest", - "in": "body", - "x-ms-parameter-location": "client", - "schema": { - "$ref": "#/definitions/QueryRequest" + "type": "object", + "description": "Groups the set of query request settings.", + "properties": { + "queryType": { + "$ref": "#/definitions/QueryRequestTypeSqlOnly", + "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." + } }, - "description": "the query request" + "required": [ + "queryType", + "expression" + ] }, - "Range": { - "name": "x-ms-range", - "x-ms-client-name": "range", - "in": "header", - "required": false, + "QueryRequestTypeSqlOnly": { "type": "string", - "x-ms-parameter-location": "method", - "description": "Return only the bytes of the blob in the specified range." + "description": "The query request, note only SQL supported", + "enum": [ + "SQL" + ], + "x-ms-enum": { + "name": "QueryRequestTypeSqlOnly", + "modelAsString": true, + "values": [ + { + "name": "SQL", + "value": "SQL", + "description": "The SQL request query type." + } + ] + } }, - "RangeRequiredPutPageFromUrl": { - "name": "x-ms-range", - "x-ms-client-name": "range", - "in": "header", - "required": true, - "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." + "QuerySerialization": { + "type": "object", + "description": "The query serialization settings.", + "properties": { + "format": { + "$ref": "#/definitions/QueryFormat", + "description": "The query format." + } + }, + "required": [ + "format" + ] }, - "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", + "QueryType": { "type": "string", + "description": "The query format type.", "enum": [ - "max", - "update", - "increment" + "delimited", + "json", + "arrow", + "parquet" ], "x-ms-enum": { - "name": "SequenceNumberActionType", - "modelAsString": false + "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." + } + ] } }, - "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, + "RehydratePriority": { "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." - }, - "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." + "description": "The rehydrate priority.", + "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." + } + ] + } }, - "SourceContainerName": { - "name": "x-ms-source-container-name", - "x-ms-client-name": "SourceContainerName", - "type": "string", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Required. Specifies the name of the container to rename." + "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." + }, + "allowPermanentDelete": { + "type": "boolean", + "description": "Whether to allow permanent delete." + } + }, + "required": [ + "enabled", + "days", + "allowPermanentDelete" + ] }, - "SourceContentMD5": { - "name": "x-ms-source-content-md5", - "x-ms-client-name": "sourceContentMD5", - "in": "header", - "required": false, + "SequenceNumberActionType": { "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." + "description": "The sequence number actions.", + "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." + } + ] + } }, - "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." + "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" + ] }, - "SourceRange": { - "name": "x-ms-source-range", - "x-ms-client-name": "sourceRange", - "in": "header", - "required": false, + "SkuName": { "type": "string", - "x-ms-parameter-location": "method", - "description": "Bytes of source data in the specified range." + "description": "The SKU types", + "enum": [ + "Standard_LRS", + "tandard_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": "tandard_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." + } + ] + } }, - "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." + "StaticWebsite": { + "type": "object", + "description": "The static website properties.", + "properties": { + "indexDocument": { + "type": "string", + "description": "The index document." + }, + "errorDocument": { + "type": "string", + "description": "The error document." + } + } }, - "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" + "StorageError": { + "type": "object", + "description": "The error response.", + "properties": { + "Message": { + "type": "string", + "description": "The error message." + } }, - "description": "Specify an ETag value to operate only on blobs with a matching value." + "required": [ + "Message" + ] }, - "SourceIfModifiedSince": { - "name": "x-ms-source-if-modified-since", - "x-ms-client-name": "sourceIfModifiedSince", - "in": "header", - "required": false, - "type": "string", - "format": "date-time-rfc1123", - "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." + "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." + } + } }, - "SourceIfNoneMatch": { - "name": "x-ms-source-if-none-match", - "x-ms-client-name": "sourceIfNoneMatch", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-parameter-grouping": { - "name": "source-modified-access-conditions" + "StorageServiceStats": { + "type": "object", + "description": "Stats for the storage service.", + "properties": { + "geoReplication": { + "$ref": "#/definitions/GeoReplication", + "description": "The geo replication stats." + } }, - "description": "Specify an ETag value to operate only on blobs without a matching value." + "required": [ + "geoReplication" + ] }, - "SourceIfUnmodifiedSince": { - "name": "x-ms-source-if-unmodified-since", - "x-ms-client-name": "sourceIfUnmodifiedSince", - "in": "header", - "required": false, - "type": "string", - "format": "date-time-rfc1123", - "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 this header value to operate only on a blob if it has not been modified since the specified date/time." - }, - "SourceLeaseId": { - "name": "x-ms-source-lease-id", - "x-ms-client-name": "sourceLeaseId", - "in": "header", - "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." - }, - "SourceIfTags": { - "name": "x-ms-source-if-tags", - "x-ms-client-name": "sourceIfTags", + "required": [ + "signedOid", + "signedTid", + "signedStart", + "signedExpiry", + "signedService", + "signedVersion", + "value" + ] + } + }, + "parameters": { + "PremiumPageBlobAccessTierOptional": { + "name": "x-ms-access-tier", "in": "header", + "description": "Optional. Indicates the tier to be set on the page blob.", "required": false, "type": "string", - "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" + "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-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": "accessTier" } } } From e18f78529e6cf20a9886fc4c44df1f741446c86d Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 17:56:34 -0700 Subject: [PATCH 045/129] add template --- .../storage/Microsoft.BlobStorage/routes.tsp | 37 ++++++++++++------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 452a1b9802c0..c87246352edf 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -11,6 +11,16 @@ using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; +op StorageOperation< + TParams extends TypeSpec.Reflection.Model, + TResponse extends TypeSpec.Reflection.Model, + TError = StorageError +>( + ...TParams, + ...ApiVersionParameter, + ...ClientRequestIdParameter, +): TResponse | TError; + interface Service { /** Get the 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" @@ -18,19 +28,20 @@ interface Service { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/?restype=service&comp=properties") - setProperties( - /** The storage service properties that specifies the analytics and CORS rules to set on the Blob service. */ - @body body: StorageServiceProperties, - - ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, - ): { - @statusCode statusCode: 202; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; - } | StorageError; + setProperties is StorageOperation< + { + /** The storage service properties that specifies the analytics and CORS rules to set on the Blob service. */ + @body body: StorageServiceProperties; + + ...TimeoutParameter; + }, + { + @statusCode statusCode: 202; + ...ClientRequestIdResponseHeader; + ...RequestIdResponseHeader; + ...VersionResponseHeader; + } + >; /** 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" From 57eb072e6da9df21d156a473b5964a460ab6754a Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 19:47:26 -0700 Subject: [PATCH 046/129] clean up headers --- .../storage/Microsoft.BlobStorage/routes.tsp | 386 ++---------------- 1 file changed, 25 insertions(+), 361 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index c87246352edf..c3b03b8d295e 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -11,16 +11,18 @@ using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; +/** 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, TResponse extends TypeSpec.Reflection.Model, TError = StorageError ->( - ...TParams, - ...ApiVersionParameter, - ...ClientRequestIdParameter, -): TResponse | TError; +>(...TParams, ...ApiVersionParameter, ...ClientRequestIdParameter): (TResponse & + VersionResponseHeader & + RequestIdResponseHeader & + ClientRequestIdResponseHeader) | TError; +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." interface Service { /** Get the 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" @@ -37,9 +39,6 @@ interface Service { }, { @statusCode statusCode: 202; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; } >; @@ -48,33 +47,24 @@ interface Service { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get @route("/?restype=service&comp=properties") - getProperties( - ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, - ): { - @statusCode statusCode: 200; - @body body: StorageServiceProperties; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; - } | StorageError; + getProperties is StorageOperation< + { + ...TimeoutParameter; + }, + { + @statusCode statusCode: 200; + @body body: 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" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get @route("/?restype=service&comp=stats") - getStatistics( - ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, - ): { + getStatistics(...TimeoutParameter): { @statusCode statusCode: 200; @body body: StorageServiceStats; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -89,14 +79,9 @@ interface Service { ...TimeoutParameter, ...MarkerParameter, ...MaxResultsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: ListContainersSegmentResponse; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; } | StorageError; /** The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS. */ @@ -109,17 +94,11 @@ interface Service { @body body: KeyInfo, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; /** The user delegation key. */ @body body: UserDelegationKey; - - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; } | StorageError; /** Returns the sku name and account kind. */ @@ -130,9 +109,6 @@ interface Service { @route("/?restype=account&comp=properties") getAccountInfo(...ApiVersionParameter): { @statusCode statusCode: 200; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...SkuNameResponseHeader; ...AccountKindResponseHeader; @@ -145,15 +121,8 @@ interface Service { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post @route("/?comp=batch") - submitBatch( - ...ContentLengthParameter, - ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, - ): { + submitBatch(...ContentLengthParameter, ...TimeoutParameter): { @statusCode statusCode: 200; - ...RequestIdResponseHeader; - ...VersionResponseHeader; } | StorageError; /** The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression. */ @@ -168,18 +137,14 @@ interface Service { ...TimeoutParameter, ...MarkerParameter, ...MaxResultsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: FilterBlobSegment; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; } +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." interface 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" @@ -196,15 +161,10 @@ interface Container { ...DefaultEncryptionScopeParameter, ...DenyEncryptionScopeOverrideParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -217,8 +177,6 @@ interface Container { getProperties( ...ContainerNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...LeaseIdOptionalParameter, ): { @statusCode statusCode: 200; @@ -227,9 +185,6 @@ interface Container { ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...LeaseDurationResponseHeader; ...LeaseStateResponseHeader; @@ -251,16 +206,11 @@ interface Container { delete( ...ContainerNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...LeaseIdOptionalParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, ): { @statusCode statusCode: 202; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -277,17 +227,12 @@ interface Container { // TODO: ...MetadataParameter; ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...IfModifiedSinceParameter, ...LeaseIdOptionalParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -299,8 +244,6 @@ interface Container { getAccessPolicy( ...ContainerNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...LeaseIdOptionalParameter, ): { @statusCode statusCode: 200; @@ -308,9 +251,6 @@ interface Container { ...PublicAccessResponseHeader; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -325,8 +265,6 @@ interface Container { ...ContainerNameParameter, ...ContainerAclParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, ...LeaseIdOptionalParameter, @@ -334,9 +272,6 @@ interface Container { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -352,13 +287,8 @@ interface Container { ...DeletedContainerNameParameter, ...DeletedContainerVersionParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -374,13 +304,8 @@ interface Container { ...SourceContainerNameParameter, ...SourceLeaseIdParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -397,13 +322,9 @@ interface Container { ...ContainerNameParameter, ...ContentLengthParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 202; @body body: bytes; - ...RequestIdResponseHeader; - ...VersionResponseHeader; } | 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. */ @@ -419,14 +340,9 @@ interface Container { ...FilterBlobsWhereParameter, ...FilterBlobsIncludeParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: FilterBlobSegment; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -441,8 +357,6 @@ interface Container { ...ContainerNameParameter, ...LeaseDurationParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...ProposedLeaseIdOptionalParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, @@ -451,9 +365,6 @@ interface Container { ...LeaseIdResponseHeader; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -468,17 +379,12 @@ interface Container { ...ContainerNameParameter, ...LeaseIdRequiredParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -493,8 +399,6 @@ interface Container { ...ContainerNameParameter, ...LeaseIdRequiredParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, ): { @@ -502,9 +406,6 @@ interface Container { ...LeaseIdResponseHeader; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -517,8 +418,6 @@ interface Container { breakLease( ...ContainerNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, ...LeaseBreakPeriodParameter, @@ -528,7 +427,6 @@ interface Container { ...EtagResponseHeader; ...LastModifiedResponseHeader; ...LeaseIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -544,8 +442,6 @@ interface Container { ...LeaseIdRequiredParameter, ...ProposedLeaseIdRequiredParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, ): { @@ -554,8 +450,6 @@ interface Container { ...EtagResponseHeader; ...LastModifiedResponseHeader; ...LeaseTimeResponseHeader; - ...ClientRequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -572,14 +466,9 @@ interface Container { ...MaxResultsParameter, ...ListBlobsIncludeParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: ListBlobsFlatSegmentResponse; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -597,14 +486,9 @@ interface Container { ...MaxResultsParameter, ...ListBlobsIncludeParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; @body body: ListBlobsHierarchySegmentResponse; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -616,15 +500,13 @@ interface Container { @route("/{containerName}?restype=account&comp=properties") getAccountInfo(...ContainerNameParameter, ...ApiVersionParameter): { @statusCode statusCode: 200; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...SkuNameResponseHeader; ...AccountKindResponseHeader; } | StorageError; } +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." @route("/{containerName}/{blob}") interface 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. */ @@ -651,8 +533,6 @@ interface Blob { ...IfTagsParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, - ...ClientRequestIdParameter, - ...ApiVersionParameter, ): { #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" @statusCode statusCode: 200 | 206; @@ -681,7 +561,6 @@ interface Blob { ...LeaseDurationResponseHeader; ...LeaseStateResponseHeader; ...LeaseStatusResponseHeader; - ...VersionResponseHeader; ...VersionIdResponseHeader; ...IsCurrentVersionResponseHeader; ...AcceptRangesResponseHeader; @@ -718,8 +597,6 @@ interface Blob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ClientRequestIdParameter, - ...ApiVersionParameter, ): { @statusCode statusCode: 200; @@ -750,9 +627,6 @@ interface Blob { ...ContentDispositionResponseHeader; ...ContentLanguageResponseHeader; ...BlobSequenceNumberResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...AcceptRangesResponseHeader; ...BlobCommittedBlockCountResponseHeader; @@ -793,14 +667,9 @@ interface Blob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...BlobDeleteTypeParameter, ): { @statusCode statusCode: 202; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -810,16 +679,8 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @route("?comp=undelete") @post - undelete( - ...ContainerNameParameter, - ...BlobNameParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, - ): { + undelete(...ContainerNameParameter, ...BlobNameParameter): { @statusCode statusCode: 200; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -832,17 +693,12 @@ interface Blob { setExpiry( ...ContainerNameParameter, ...BlobNameParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...BlobExpiryOptionsParameter, ...BlobExpiryTimeParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -869,16 +725,11 @@ interface Blob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -894,17 +745,12 @@ interface Blob { ...BlobNameParameter, ...TimeoutParameter, ...IfUnmodifiedSinceParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...ImmutabilityPolicyExpiryParameter, ...ImmutabilityPolicyModeParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...ImmutabilityPolicyExpiryResponseHeader; ...ImmutabilityPolicyModeResponseHeader; @@ -920,13 +766,8 @@ interface Blob { ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -941,14 +782,9 @@ interface Blob { ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...LegalHoldRequiredParameter, ): { @statusCode statusCode: 200; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...LegalHoldResponseHeader; } | StorageError; @@ -964,8 +800,6 @@ interface Blob { ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, // TODO: Metadata ...MetadataParameter; ...LeaseIdOptionalParameter, @@ -983,9 +817,6 @@ interface Blob { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; @@ -1003,8 +834,6 @@ interface Blob { ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...LeaseDurationParameter, ...ProposedLeaseIdOptionalParameter, ...IfModifiedSinceParameter, @@ -1016,9 +845,6 @@ interface Blob { @statusCode statusCode: 201; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...LeaseIdResponseHeader; } | StorageError; @@ -1034,8 +860,6 @@ interface Blob { ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...LeaseIdRequiredParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, @@ -1046,9 +870,6 @@ interface Blob { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -1063,8 +884,6 @@ interface Blob { ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...LeaseIdRequiredParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, @@ -1075,9 +894,6 @@ interface Blob { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...LeaseIdResponseHeader; } | StorageError; @@ -1093,8 +909,6 @@ interface Blob { ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...LeaseIdRequiredParameter, ...ProposedLeaseIdOptionalParameter, ...IfModifiedSinceParameter, @@ -1106,9 +920,6 @@ interface Blob { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...LeaseIdResponseHeader; } | StorageError; @@ -1123,8 +934,6 @@ interface Blob { ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...LeaseBreakPeriodParameter, ...IfModifiedSinceParameter, ...IfUnmodifiedSinceParameter, @@ -1135,9 +944,6 @@ interface Blob { @statusCode statusCode: 202; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...LeaseTimeResponseHeader; } | StorageError; @@ -1165,15 +971,10 @@ interface Blob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...SnapshotResponseHeader; ...DateResponseHeader; ...IsServerEncryptedResponseHeader; @@ -1206,8 +1007,6 @@ interface Blob { ...IfTagsParameter, ...CopySourceParameter, ...LeaseIdOptionalParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...BlobTagsHeaderParameter, ...SealBlobParameter, ...ImmutabilityPolicyExpiryParameter, @@ -1217,9 +1016,6 @@ interface Blob { @statusCode statusCode: 202; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...VersionIdResponseHeader; ...DateResponseHeader; ...CopyIdResponseHeader; @@ -1251,8 +1047,6 @@ interface Blob { ...IfTagsParameter, ...CopySourceParameter, ...LeaseIdOptionalParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...SourceContentMd5Parameter, ...BlobTagsHeaderParameter, ...ImmutabilityPolicyExpiryParameter, @@ -1265,9 +1059,6 @@ interface Blob { @statusCode statusCode: 202; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...CopyIdResponseHeader; ...CopyStatusResponseHeader; @@ -1287,13 +1078,8 @@ interface Blob { ...TimeoutParameter, ...CopyIdParameter, ...LeaseIdOptionalParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 204; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -1310,20 +1096,12 @@ interface Blob { ...TimeoutParameter, ...AccessTierRequiredParameter, ...RehydratePriorityParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...LeaseIdOptionalParameter, ...IfTagsParameter, ): { @statusCode statusCode: 200; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; } | { @statusCode statusCode: 202; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; } | StorageError; /** Returns the sku name and account kind */ @@ -1332,16 +1110,8 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get @route("?restype=account&comp=properties") - getAccountInfo( - ...ContainerNameParameter, - ...BlobNameParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, - ): { + getAccountInfo(...ContainerNameParameter, ...BlobNameParameter): { @statusCode statusCode: 200; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...AccountKindResponseHeader; ...SkuNameResponseHeader; @@ -1367,8 +1137,6 @@ interface Blob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" @statusCode statusCode: 200 | 206; @@ -1396,9 +1164,6 @@ interface Blob { ...LeaseDurationResponseHeader; ...LeaseStateResponseHeader; ...LeaseStatusResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...AcceptRangesResponseHeader; ...BlobCommittedBlockCountResponseHeader; @@ -1417,8 +1182,6 @@ interface Blob { ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...SnapshotParameter, ...VersionIdParameter, ...LeaseIdOptionalParameter, @@ -1426,9 +1189,6 @@ interface Blob { ): { @statusCode statusCode: 200; @body body: BlobTags; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -1441,8 +1201,6 @@ interface Blob { ...ContainerNameParameter, ...BlobNameParameter, ...TimeoutParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...VersionIdParameter, ...LeaseIdOptionalParameter, ...ContentMd5Parameter, @@ -1451,13 +1209,11 @@ interface Blob { ...BlobTagsBodyParameter, ): { @statusCode statusCode: 204; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; } +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." interface PageBlob { /** The Create operation creates a new page blob. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -1491,8 +1247,6 @@ interface PageBlob { ...IfTagsParameter, ...BlobContentLengthRequiredParameter, ...BlobSequenceNumberParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...BlobTagsHeaderParameter, ...ImmutabilityPolicyExpiryParameter, ...LegalHoldOptionalParameter, @@ -1501,9 +1255,6 @@ interface PageBlob { ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...VersionIdResponseHeader; ...DateResponseHeader; ...IsServerEncryptedResponseHeader; @@ -1542,8 +1293,6 @@ interface PageBlob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; @@ -1551,9 +1300,6 @@ interface PageBlob { ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; ...BlobSequenceNumberResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; @@ -1582,16 +1328,11 @@ interface PageBlob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -1628,16 +1369,11 @@ interface PageBlob { ...SourceIfUnmodifiedSinceParameter, ...SourceIfMatchParameter, ...SourceIfNoneMatchParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...CopySourceAuthorizationParameter, ): { @statusCode statusCode: 202; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; @@ -1655,8 +1391,6 @@ interface PageBlob { getPageRanges( ...ContainerNameParameter, ...BlobNameParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...SnapshotParameter, ...RangeParameter, ...LeaseIdOptionalParameter, @@ -1673,9 +1407,6 @@ interface PageBlob { ...LastModifiedResponseHeader; ...EtagResponseHeader; ...BlobContentLengthResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -1687,8 +1418,6 @@ interface PageBlob { getPageRangesDiff( ...ContainerNameParameter, ...BlobNameParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...SnapshotParameter, ...TimeoutParameter, ...PrevSnapshotParameter, @@ -1708,9 +1437,6 @@ interface PageBlob { ...LastModifiedResponseHeader; ...EtagResponseHeader; ...BlobContentLengthResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -1736,16 +1462,11 @@ interface PageBlob { ...IfNoneMatchParameter, ...IfTagsParameter, ...BlobContentLengthRequiredParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -1768,16 +1489,11 @@ interface PageBlob { ...IfTagsParameter, ...SequenceNumberActionParameter, ...SequenceNumberParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; @@ -1798,21 +1514,17 @@ interface PageBlob { ...IfTagsParameter, ...LeaseIdOptionalParameter, ...CopySourceParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 202; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...CopyIdResponseHeader; ...CopyStatusResponseHeader; } | StorageError; } +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." @route("/{containerName}/{blob}?AppendBlob") interface AppendBlob { /** The Create operation creates a new append blob. */ @@ -1843,8 +1555,6 @@ interface AppendBlob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...BlobTagsHeaderParameter, ...ImmutabilityPolicyExpiryParameter, ...ImmutabilityPolicyModeParameter, @@ -1854,9 +1564,6 @@ interface AppendBlob { ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...VersionIdResponseHeader; ...DateResponseHeader; ...IsServerEncryptedResponseHeader; @@ -1893,16 +1600,11 @@ interface AppendBlob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; @@ -1941,16 +1643,11 @@ interface AppendBlob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...CopySourceAuthorizationParameter, ): { @statusCode statusCode: 201; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; @@ -1979,20 +1676,16 @@ interface AppendBlob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...IsSealedResponseHeader; } | StorageError; } +#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." interface 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" @@ -2027,8 +1720,6 @@ interface BlockBlob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...BlobTagsHeaderParameter, ...ImmutabilityPolicyExpiryParameter, ...ImmutabilityPolicyModeParameter, @@ -2039,9 +1730,6 @@ interface BlockBlob { ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...VersionIdResponseHeader; ...DateResponseHeader; ...IsServerEncryptedResponseHeader; @@ -2086,8 +1774,6 @@ interface BlockBlob { ...SourceIfMatchParameter, ...SourceIfNoneMatchParameter, ...SourceIfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...SourceContentMd5Parameter, ...BlobTagsHeaderParameter, ...CopySourceParameter, @@ -2099,8 +1785,6 @@ interface BlockBlob { ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; @@ -2127,13 +1811,8 @@ interface BlockBlob { ...EncryptionKeySha256Parameter, ...EncryptionAlgorithmParameter, ...EncryptionScopeParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ): { @statusCode statusCode: 201; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; @@ -2152,8 +1831,6 @@ interface BlockBlob { stageBlockFromUrl( ...ContainerNameParameter, ...BlobNameParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...BlockIdParameter, ...ContentLengthParameter, ...SourceUrlParameter, @@ -2173,9 +1850,6 @@ interface BlockBlob { ...CopySourceAuthorizationParameter, ): { @statusCode statusCode: 201; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; @@ -2217,8 +1891,6 @@ interface BlockBlob { ...IfMatchParameter, ...IfNoneMatchParameter, ...IfTagsParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...BlobTagsHeaderParameter, ...ImmutabilityPolicyExpiryParameter, ...ImmutabilityPolicyModeParameter, @@ -2229,9 +1901,6 @@ interface BlockBlob { ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; @@ -2246,8 +1915,6 @@ interface BlockBlob { getBlockList( ...ContainerNameParameter, ...BlobNameParameter, - ...ApiVersionParameter, - ...ClientRequestIdParameter, ...SnapshotParameter, ...BlockListTypeParameter, ...LeaseIdOptionalParameter, @@ -2258,9 +1925,6 @@ interface BlockBlob { ...LastModifiedResponseHeader; ...EtagResponseHeader; ...BlobContentLengthResponseHeader; - ...ClientRequestIdResponseHeader; - ...RequestIdResponseHeader; - ...VersionResponseHeader; ...DateResponseHeader; } | StorageError; } From e12aa8ddcc5c74b0e3360cb68c75e9ca413d5fbb Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 20:12:23 -0700 Subject: [PATCH 047/129] use template, regen --- .../storage/Microsoft.BlobStorage/routes.tsp | 2941 +++++++++-------- .../stable/2021-12-02/blob.json | 1160 +++---- 2 files changed, 2184 insertions(+), 1917 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index c3b03b8d295e..d993e5303216 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -62,11 +62,14 @@ interface Service { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get @route("/?restype=service&comp=stats") - getStatistics(...TimeoutParameter): { - @statusCode statusCode: 200; - @body body: StorageServiceStats; - ...DateResponseHeader; - } | StorageError; + getStatistics is StorageOperation< + TimeoutParameter, + { + @statusCode statusCode: 200; + @body body: StorageServiceStats; + ...DateResponseHeader; + } + >; /** 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" @@ -74,32 +77,38 @@ interface Service { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get @route("/?comp=list") - listContainersSegment( - ...PrefixParameter, - ...TimeoutParameter, - ...MarkerParameter, - ...MaxResultsParameter, - ): { - @statusCode statusCode: 200; - @body body: ListContainersSegmentResponse; - } | StorageError; + listContainersSegment is StorageOperation< + { + ...PrefixParameter; + ...TimeoutParameter; + ...MarkerParameter; + ...MaxResultsParameter; + }, + { + @statusCode statusCode: 200; + @body body: ListContainersSegmentResponse; + } + >; /** The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @post @route("/?restype=service&comp=userdelegationkey") - getUserDelegationKey( - /** The user delegation key info. */ - @body body: KeyInfo, + getUserDelegationKey is StorageOperation< + { + /** The user delegation key info. */ + @body body: KeyInfo; - ...TimeoutParameter, - ): { - @statusCode statusCode: 200; + ...TimeoutParameter; + }, + { + @statusCode statusCode: 200; - /** The user delegation key. */ - @body body: UserDelegationKey; - } | StorageError; + /** The user delegation key. */ + @body body: UserDelegationKey; + } + >; /** Returns the sku name and account kind. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -107,13 +116,16 @@ interface Service { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get @route("/?restype=account&comp=properties") - getAccountInfo(...ApiVersionParameter): { - @statusCode statusCode: 200; - ...DateResponseHeader; - ...SkuNameResponseHeader; - ...AccountKindResponseHeader; - ...IsHierarchicalNamespaceEnabledResponseHeader; - } | StorageError; + getAccountInfo is StorageOperation< + {}, + { + @statusCode statusCode: 200; + ...DateResponseHeader; + ...SkuNameResponseHeader; + ...AccountKindResponseHeader; + ...IsHierarchicalNamespaceEnabledResponseHeader; + } + >; /** 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" @@ -121,9 +133,15 @@ interface Service { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post @route("/?comp=batch") - submitBatch(...ContentLengthParameter, ...TimeoutParameter): { - @statusCode statusCode: 200; - } | StorageError; + submitBatch is StorageOperation< + { + ...ContentLengthParameter; + ...TimeoutParameter; + }, + { + @statusCode statusCode: 200; + } + >; /** 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" @@ -131,17 +149,20 @@ interface Service { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get @route("/?comp=blobs") - filterBlobs( - ...FilterBlobsWhereParameter, - ...FilterBlobsIncludeParameter, - ...TimeoutParameter, - ...MarkerParameter, - ...MaxResultsParameter, - ): { - @statusCode statusCode: 200; - @body body: FilterBlobSegment; - ...DateResponseHeader; - } | StorageError; + filterBlobs is StorageOperation< + { + ...FilterBlobsWhereParameter; + ...FilterBlobsIncludeParameter; + ...TimeoutParameter; + ...MarkerParameter; + ...MaxResultsParameter; + }, + { + @statusCode statusCode: 200; + @body body: FilterBlobSegment; + ...DateResponseHeader; + } + >; } #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." @@ -152,21 +173,24 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/{containerName}?restype=container") - create( - ...ContainerNameParameter, - - // TODO: x-ms-meta headers - ...BlobPublicAccessParameter, - - ...DefaultEncryptionScopeParameter, - ...DenyEncryptionScopeOverrideParameter, - ...TimeoutParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - } | StorageError; + create is StorageOperation< + { + ...ContainerNameParameter; + + // TODO: x-ms-meta headers + ...BlobPublicAccessParameter; + + ...DefaultEncryptionScopeParameter; + ...DenyEncryptionScopeOverrideParameter; + ...TimeoutParameter; + }, + { + @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" @@ -174,28 +198,31 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get @route("/{containerName}?restype=container") - getProperties( - ...ContainerNameParameter, - ...TimeoutParameter, - ...LeaseIdOptionalParameter, - ): { - @statusCode statusCode: 200; - - // TODO: x-ms-meta headers - ...EtagResponseHeader; - - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...LeaseDurationResponseHeader; - ...LeaseStateResponseHeader; - ...LeaseStatusResponseHeader; - ...PublicAccessResponseHeader; - ...HasImmutabilityPolicyResponseHeader; - ...HasLegalHoldResponseHeader; - ...DefaultEncryptionScopeResponseHeader; - ...DenyEncryptionScopeOverrideResponseHeader; - ...IsImmutableStorageWithVersioningEnabledResponseHeader; - } | StorageError; + getProperties is StorageOperation< + { + ...ContainerNameParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + }, + { + @statusCode statusCode: 200; + + // TODO: x-ms-meta headers + ...EtagResponseHeader; + + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...PublicAccessResponseHeader; + ...HasImmutabilityPolicyResponseHeader; + ...HasLegalHoldResponseHeader; + ...DefaultEncryptionScopeResponseHeader; + ...DenyEncryptionScopeOverrideResponseHeader; + ...IsImmutableStorageWithVersioningEnabledResponseHeader; + } + >; /** 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" @@ -203,16 +230,19 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @delete @route("/{containerName}?restype=container") - delete( - ...ContainerNameParameter, - ...TimeoutParameter, - ...LeaseIdOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ): { - @statusCode statusCode: 202; - ...DateResponseHeader; - } | StorageError; + delete is StorageOperation< + { + ...ContainerNameParameter; + ...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" @@ -221,38 +251,44 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}?restype=container&comp=metadata") - setMetadata( - ...ContainerNameParameter, + setMetadata is StorageOperation< + { + ...ContainerNameParameter; - // TODO: ...MetadataParameter; - ...TimeoutParameter, + // TODO: ...MetadataParameter; + ...TimeoutParameter; - ...IfModifiedSinceParameter, - ...LeaseIdOptionalParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - } | StorageError; + ...IfModifiedSinceParameter; + ...LeaseIdOptionalParameter; + }, + { + @statusCode statusCode: 200; + ...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" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get @route("/{containerName}?restype=container&comp=acl") - getAccessPolicy( - ...ContainerNameParameter, - ...TimeoutParameter, - ...LeaseIdOptionalParameter, - ): { - @statusCode statusCode: 200; - @body body: SignedIdentifiers; - ...PublicAccessResponseHeader; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - } | StorageError; + getAccessPolicy is StorageOperation< + { + ...ContainerNameParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + }, + { + @statusCode statusCode: 200; + @body body: SignedIdentifiers; + ...PublicAccessResponseHeader; + ...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" @@ -261,19 +297,22 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}?restype=container&comp=acl") - setAccessPolicy( - ...ContainerNameParameter, - ...ContainerAclParameter, - ...TimeoutParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...LeaseIdOptionalParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - } | StorageError; + setAccessPolicy is StorageOperation< + { + ...ContainerNameParameter; + ...ContainerAclParameter; + ...TimeoutParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...LeaseIdOptionalParameter; + }, + { + @statusCode statusCode: 200; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; /** Restores a previously-deleted container. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -282,15 +321,18 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}?restype=container&comp=undelete") - undelete( - ...ContainerNameParameter, - ...DeletedContainerNameParameter, - ...DeletedContainerVersionParameter, - ...TimeoutParameter, - ): { - @statusCode statusCode: 201; - ...DateResponseHeader; - } | StorageError; + undelete is StorageOperation< + { + ...ContainerNameParameter; + ...DeletedContainerNameParameter; + ...DeletedContainerVersionParameter; + ...TimeoutParameter; + }, + { + @statusCode statusCode: 201; + ...DateResponseHeader; + } + >; /** Renames an existing container. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -299,15 +341,18 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}?restype=container&comp=rename") - rename( - ...ContainerNameParameter, - ...SourceContainerNameParameter, - ...SourceLeaseIdParameter, - ...TimeoutParameter, - ): { - @statusCode statusCode: 200; - ...DateResponseHeader; - } | StorageError; + rename is StorageOperation< + { + ...ContainerNameParameter; + ...SourceContainerNameParameter; + ...SourceLeaseIdParameter; + ...TimeoutParameter; + }, + { + @statusCode statusCode: 200; + ...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" @@ -315,17 +360,20 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post @route("/{containerName}?restype=container&comp=batch") - submitBatch( - /** The batch request content */ - ...BodyParameter, - - ...ContainerNameParameter, - ...ContentLengthParameter, - ...TimeoutParameter, - ): { - @statusCode statusCode: 202; - @body body: bytes; - } | StorageError; + submitBatch is StorageOperation< + { + /** The batch request content */ + ...BodyParameter; + + ...ContainerNameParameter; + ...ContentLengthParameter; + ...TimeoutParameter; + }, + { + @statusCode statusCode: 202; + @body body: bytes; + } + >; /** 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" @@ -333,18 +381,21 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get @route("/{containerName}?restype=container&comp=blobs") - filterBlobs( - ...ContainerNameParameter, - ...MarkerParameter, - ...MaxResultsParameter, - ...FilterBlobsWhereParameter, - ...FilterBlobsIncludeParameter, - ...TimeoutParameter, - ): { - @statusCode statusCode: 200; - @body body: FilterBlobSegment; - ...DateResponseHeader; - } | StorageError; + filterBlobs is StorageOperation< + { + ...ContainerNameParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...FilterBlobsWhereParameter; + ...FilterBlobsIncludeParameter; + ...TimeoutParameter; + }, + { + @statusCode statusCode: 200; + @body body: FilterBlobSegment; + ...DateResponseHeader; + } + >; /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -353,20 +404,23 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}?comp=lease&restype=container&acquire") - acquireLease( - ...ContainerNameParameter, - ...LeaseDurationParameter, - ...TimeoutParameter, - ...ProposedLeaseIdOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ): { - @statusCode statusCode: 201; - ...LeaseIdResponseHeader; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - } | StorageError; + acquireLease is StorageOperation< + { + ...ContainerNameParameter; + ...LeaseDurationParameter; + ...TimeoutParameter; + ...ProposedLeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + }, + { + @statusCode statusCode: 201; + ...LeaseIdResponseHeader; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -375,18 +429,21 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}?comp=lease&restype=container&release") - releaseLease( - ...ContainerNameParameter, - ...LeaseIdRequiredParameter, - ...TimeoutParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - } | StorageError; + releaseLease is StorageOperation< + { + ...ContainerNameParameter; + ...LeaseIdRequiredParameter; + ...TimeoutParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + }, + { + @statusCode statusCode: 200; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -395,19 +452,22 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}?comp=lease&restype=container&renew") - renewLease( - ...ContainerNameParameter, - ...LeaseIdRequiredParameter, - ...TimeoutParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ): { - @statusCode statusCode: 200; - ...LeaseIdResponseHeader; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - } | StorageError; + renewLease is StorageOperation< + { + ...ContainerNameParameter; + ...LeaseIdRequiredParameter; + ...TimeoutParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + }, + { + @statusCode statusCode: 200; + ...LeaseIdResponseHeader; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -415,20 +475,23 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/{containerName}?comp=lease&restype=container&break") - breakLease( - ...ContainerNameParameter, - ...TimeoutParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...LeaseBreakPeriodParameter, - ): { - @statusCode statusCode: 202; - ...LeaseTimeResponseHeader; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...LeaseIdResponseHeader; - ...DateResponseHeader; - } | StorageError; + breakLease is StorageOperation< + { + ...ContainerNameParameter; + ...TimeoutParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...LeaseBreakPeriodParameter; + }, + { + @statusCode statusCode: 202; + ...LeaseTimeResponseHeader; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...LeaseIdResponseHeader; + ...DateResponseHeader; + } + >; /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -437,21 +500,24 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}?comp=lease&restype=container&change") - changeLease( - ...ContainerNameParameter, - ...LeaseIdRequiredParameter, - ...ProposedLeaseIdRequiredParameter, - ...TimeoutParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ): { - @statusCode statusCode: 200; - ...LeaseIdResponseHeader; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...LeaseTimeResponseHeader; - ...DateResponseHeader; - } | StorageError; + changeLease is StorageOperation< + { + ...ContainerNameParameter; + ...LeaseIdRequiredParameter; + ...ProposedLeaseIdRequiredParameter; + ...TimeoutParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + }, + { + @statusCode statusCode: 200; + ...LeaseIdResponseHeader; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...LeaseTimeResponseHeader; + ...DateResponseHeader; + } + >; /** [Update] 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" @@ -459,18 +525,21 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get @route("/{containerName}?restype=container&comp=list&flat") - listBlobFlatSegment( - ...ContainerNameParameter, - ...PrefixParameter, - ...MarkerParameter, - ...MaxResultsParameter, - ...ListBlobsIncludeParameter, - ...TimeoutParameter, - ): { - @statusCode statusCode: 200; - @body body: ListBlobsFlatSegmentResponse; - ...DateResponseHeader; - } | StorageError; + listBlobFlatSegment is StorageOperation< + { + ...ContainerNameParameter; + ...PrefixParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...ListBlobsIncludeParameter; + ...TimeoutParameter; + }, + { + @statusCode statusCode: 200; + @body body: ListBlobsFlatSegmentResponse; + ...DateResponseHeader; + } + >; /** [Update] 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" @@ -478,19 +547,22 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get @route("/{containerName}?restype=container&comp=list&hierarchy") - listBlobHierarchySegment( - ...ContainerNameParameter, - ...DelimiterParameter, - ...PrefixParameter, - ...MarkerParameter, - ...MaxResultsParameter, - ...ListBlobsIncludeParameter, - ...TimeoutParameter, - ): { - @statusCode statusCode: 200; - @body body: ListBlobsHierarchySegmentResponse; - ...DateResponseHeader; - } | StorageError; + listBlobHierarchySegment is StorageOperation< + { + ...ContainerNameParameter; + ...DelimiterParameter; + ...PrefixParameter; + ...MarkerParameter; + ...MaxResultsParameter; + ...ListBlobsIncludeParameter; + ...TimeoutParameter; + }, + { + @statusCode statusCode: 200; + @body body: ListBlobsHierarchySegmentResponse; + ...DateResponseHeader; + } + >; /** Returns the sku name and account kind */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -498,12 +570,17 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get @route("/{containerName}?restype=account&comp=properties") - getAccountInfo(...ContainerNameParameter, ...ApiVersionParameter): { - @statusCode statusCode: 200; - ...DateResponseHeader; - ...SkuNameResponseHeader; - ...AccountKindResponseHeader; - } | StorageError; + getAccountInfo is StorageOperation< + { + ...ContainerNameParameter; + }, + { + @statusCode statusCode: 200; + ...DateResponseHeader; + ...SkuNameResponseHeader; + ...AccountKindResponseHeader; + } + >; } #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." @@ -515,163 +592,172 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get - download( - ...ContainerNameParameter, - ...BlobNameParameter, - ...SnapshotParameter, - ...VersionIdParameter, - ...TimeoutParameter, - ...RangeParameter, - ...LeaseIdOptionalParameter, - ...GetRangeContentMd5Parameter, - ...GetRangeContentCrc64Parameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ): { - #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" - @statusCode statusCode: 200 | 206; - ...BodyParameter; - - // TODO: x-ms-meta headers - // TODO: x-ms-or headers - ...LastModifiedResponseHeader; - - ...CreationTimeResponseHeader; - ...ObjectReplicationPolicyIdResponseHeader; - ...ContentRangeResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentEncodingResponseParameter; - ...CacheControlResponseHeader; - ...ContentDispositionResponseHeader; - ...ContentLanguageResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...BlobTypeResponseHeader; - ...CopyCompletionTimeResponseHeader; - ...CopyStatusDescriptionResponseHeader; - ...CopyIdResponseHeader; - ...CopyProgressResponseHeader; - ...CopyStatusResponseHeader; - ...CopySourceResponseHeader; - ...LeaseDurationResponseHeader; - ...LeaseStateResponseHeader; - ...LeaseStatusResponseHeader; - ...VersionIdResponseHeader; - ...IsCurrentVersionResponseHeader; - ...AcceptRangesResponseHeader; - ...BlobCommittedBlockCountResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - ...TagCountResponseHeader; - ...IsSealedResponseHeader; - ...LastAccessedResponseHeader; - ...ImmutabilityPolicyExpiresOnResponseHeader; - ...ImmutabilityPolicyModeResponseHeader; - ...LegalHoldResponseHeader; - ...ContentLengthResponseHeader; - ...EtagResponseHeader; - } | StorageError; + download is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...SnapshotParameter; + ...VersionIdParameter; + ...TimeoutParameter; + ...RangeParameter; + ...LeaseIdOptionalParameter; + ...GetRangeContentMd5Parameter; + ...GetRangeContentCrc64Parameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" + @statusCode statusCode: 200 | 206; + ...BodyParameter; + + // TODO: x-ms-meta headers + // TODO: x-ms-or headers + ...LastModifiedResponseHeader; + + ...CreationTimeResponseHeader; + ...ObjectReplicationPolicyIdResponseHeader; + ...ContentRangeResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopyStatusResponseHeader; + ...CopySourceResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; + ...AcceptRangesResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...TagCountResponseHeader; + ...IsSealedResponseHeader; + ...LastAccessedResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + ...LegalHoldResponseHeader; + ...ContentLengthResponseHeader; + ...EtagResponseHeader; + } + >; /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @head - getProperties( - ...ContainerNameParameter, - ...BlobNameParameter, - ...SnapshotParameter, - ...VersionIdParameter, - ...LeaseIdOptionalParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 200; - - // TODO: x-ms-meta headers - // TODO: x-ms-or headers - - ...LastModifiedResponseHeader; - - ...CreationTimeResponseHeader; - ...ObjectReplicationPolicyIdResponseHeader; - ...BlobTypeResponseHeader; - ...CopyCompletionTimeResponseHeader; - ...CopyStatusDescriptionResponseHeader; - ...CopyIdResponseHeader; - ...CopyProgressResponseHeader; - ...CopyStatusResponseHeader; - ...CopySourceResponseHeader; - ...IsIncrementalCopyResponseHeader; - ...DestinationSnapshotResponseHeader; - ...LeaseDurationResponseHeader; - ...LeaseStateResponseHeader; - ...LeaseStatusResponseHeader; - ...ContentLengthResponseHeader; - ...EtagResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentEncodingResponseParameter; - ...CacheControlResponseHeader; - ...ContentDispositionResponseHeader; - ...ContentLanguageResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...DateResponseHeader; - ...AcceptRangesResponseHeader; - ...BlobCommittedBlockCountResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - ...AccessTierResponseHeader; - ...AccessTierInferredResponseHeader; - ...ArchiveStatusResponseHeader; - ...AccessTierChangeTimeResponseHeader; - ...VersionIdResponseHeader; - ...IsCurrentVersionResponseHeader; - ...TagCountResponseHeader; - ...ExpiresOnResponseHeader; - ...IsSealedResponseHeader; - ...RehydratePriorityResponseHeader; - ...LastAccessedResponseHeader; - ...ImmutabilityPolicyExpiresOnResponseHeader; - ...ImmutabilityPolicyModeResponseHeader; - ...LegalHoldResponseHeader; - } | StorageError; + getProperties is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...SnapshotParameter; + ...VersionIdParameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 200; + + // TODO: x-ms-meta headers + // TODO: x-ms-or headers + + ...LastModifiedResponseHeader; + + ...CreationTimeResponseHeader; + ...ObjectReplicationPolicyIdResponseHeader; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopyStatusResponseHeader; + ...CopySourceResponseHeader; + ...IsIncrementalCopyResponseHeader; + ...DestinationSnapshotResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...ContentLengthResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + ...AcceptRangesResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...AccessTierResponseHeader; + ...AccessTierInferredResponseHeader; + ...ArchiveStatusResponseHeader; + ...AccessTierChangeTimeResponseHeader; + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; + ...TagCountResponseHeader; + ...ExpiresOnResponseHeader; + ...IsSealedResponseHeader; + ...RehydratePriorityResponseHeader; + ...LastAccessedResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + ...LegalHoldResponseHeader; + } + >; /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @delete - delete( - ...ContainerNameParameter, - ...BlobNameParameter, - ...SnapshotParameter, - ...VersionIdParameter, - ...TimeoutParameter, - ...LeaseIdOptionalParameter, - ...DeleteSnapshotsParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...BlobDeleteTypeParameter, - ): { - @statusCode statusCode: 202; - ...DateResponseHeader; - } | StorageError; + delete is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...SnapshotParameter; + ...VersionIdParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...DeleteSnapshotsParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...BlobDeleteTypeParameter; + }, + { + @statusCode statusCode: 202; + ...DateResponseHeader; + } + >; /** "Undelete a blob that was previously soft deleted" */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -679,10 +765,16 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @route("?comp=undelete") @post - undelete(...ContainerNameParameter, ...BlobNameParameter): { - @statusCode statusCode: 200; - ...DateResponseHeader; - } | StorageError; + undelete is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + }, + { + @statusCode statusCode: 200; + ...DateResponseHeader; + } + >; /** "Set the expiration time of a blob" */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -690,17 +782,20 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post @route("?comp=expiry") - setExpiry( - ...ContainerNameParameter, - ...BlobNameParameter, - ...BlobExpiryOptionsParameter, - ...BlobExpiryTimeParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - } | StorageError; + setExpiry is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...BlobExpiryOptionsParameter; + ...BlobExpiryTimeParameter; + }, + { + @statusCode statusCode: 200; + ...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" @@ -709,29 +804,32 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("?comp=properties&SetHTTPHeaders") - setHttpHeaders( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...BlobCacheControlParameter, - ...BlobContentTypeParameter, - ...BlobContentMd5Parameter, - ...BlobContentEncodingParameter, - ...BlobContentLanguageParameter, - ...LeaseIdOptionalParameter, - ...BlobContentDispositionParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...DateResponseHeader; - } | StorageError; + setHttpHeaders is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...BlobCacheControlParameter; + ...BlobContentTypeParameter; + ...BlobContentMd5Parameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 200; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + } + >; /** "Set the immutability policy of a blob" */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -740,21 +838,24 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("?comp=immutabilityPolicies") - setImmutabilityPolicy( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...IfUnmodifiedSinceParameter, - ...ImmutabilityPolicyExpiryParameter, - ...ImmutabilityPolicyModeParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...ImmutabilityPolicyExpiryResponseHeader; - ...ImmutabilityPolicyModeResponseHeader; - } | StorageError; + setImmutabilityPolicy is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...IfUnmodifiedSinceParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + }, + { + @statusCode statusCode: 200; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...ImmutabilityPolicyExpiryResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + } + >; /** The Delete Immutability Policy operation deletes the immutability policy on the blob. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -762,14 +863,17 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @delete @route("?comp=immutabilityPolicies") - deleteImmutabilityPolicy( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ): { - @statusCode statusCode: 200; - ...DateResponseHeader; - } | StorageError; + deleteImmutabilityPolicy is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + }, + { + @statusCode statusCode: 200; + ...DateResponseHeader; + } + >; /** The Set Legal Hold operation sets a legal hold on the blob. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -778,16 +882,19 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("?comp=legalhold") - setLegalHold( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...LegalHoldRequiredParameter, - ): { - @statusCode statusCode: 200; - ...DateResponseHeader; - ...LegalHoldResponseHeader; - } | StorageError; + setLegalHold is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LegalHoldRequiredParameter; + }, + { + @statusCode statusCode: 200; + ...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" @@ -796,32 +903,35 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("?comp=metadata") - setMetadata( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - - // TODO: Metadata ...MetadataParameter; - ...LeaseIdOptionalParameter, - - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + setMetadata is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + + // TODO: Metadata ...MetadataParameter; + ...LeaseIdOptionalParameter; + + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 200; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -830,24 +940,27 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("?comp=lease&acquire") - acquireLease( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...LeaseDurationParameter, - ...ProposedLeaseIdOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...LeaseIdResponseHeader; - } | StorageError; + acquireLease is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LeaseDurationParameter; + ...ProposedLeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...LeaseIdResponseHeader; + } + >; /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -856,22 +969,25 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("?comp=lease&release") - releaseLease( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...LeaseIdRequiredParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - } | StorageError; + releaseLease is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LeaseIdRequiredParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 200; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + } + >; /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -880,23 +996,26 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("?comp=lease&renew") - renewLease( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...LeaseIdRequiredParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...LeaseIdResponseHeader; - } | StorageError; + renewLease is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LeaseIdRequiredParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 200; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...LeaseIdResponseHeader; + } + >; /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -905,24 +1024,27 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("?comp=lease&change") - changeLease( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...LeaseIdRequiredParameter, - ...ProposedLeaseIdOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...LeaseIdResponseHeader; - } | StorageError; + changeLease is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LeaseIdRequiredParameter; + ...ProposedLeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 200; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...LeaseIdResponseHeader; + } + >; /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -930,23 +1052,26 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("?comp=lease&break") - breakLease( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...LeaseBreakPeriodParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 202; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...LeaseTimeResponseHeader; - } | StorageError; + breakLease is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LeaseBreakPeriodParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...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" @@ -954,31 +1079,34 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("?comp=snapshot") - createSnapshot( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - - // TODO: ...MetadataParameter; - ...LeaseIdOptionalParameter, - - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...SnapshotResponseHeader; - ...DateResponseHeader; - ...IsServerEncryptedResponseHeader; - } | StorageError; + createSnapshot is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + + // TODO: ...MetadataParameter; + ...LeaseIdOptionalParameter; + + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...SnapshotResponseHeader; + ...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" @@ -986,41 +1114,44 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("?comp=copy") - startCopyFromUrl( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - - // TODO: ...MetadataParameter; - ...AccessTierOptionalParameter, - - ...RehydratePriorityParameter, - ...SourceIfModifiedSinceParameter, - ...SourceIfUnmodifiedSinceParameter, - ...SourceIfMatchParameter, - ...SourceIfNoneMatchParameter, - ...SourceIfTagsParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...CopySourceParameter, - ...LeaseIdOptionalParameter, - ...BlobTagsHeaderParameter, - ...SealBlobParameter, - ...ImmutabilityPolicyExpiryParameter, - ...ImmutabilityPolicyModeParameter, - ...LegalHoldOptionalParameter, - ): { - @statusCode statusCode: 202; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...VersionIdResponseHeader; - ...DateResponseHeader; - ...CopyIdResponseHeader; - ...CopyStatusResponseHeader; - } | StorageError; + startCopyFromUrl is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + + // TODO: ...MetadataParameter; + ...AccessTierOptionalParameter; + + ...RehydratePriorityParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...SourceIfTagsParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...CopySourceParameter; + ...LeaseIdOptionalParameter; + ...BlobTagsHeaderParameter; + ...SealBlobParameter; + ...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" @@ -1028,60 +1159,66 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("?comp=copy&sync") - copyFromUrl( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - - // TODO: ...MetadataParameter; - ...AccessTierOptionalParameter, - - ...SourceIfModifiedSinceParameter, - ...SourceIfUnmodifiedSinceParameter, - ...SourceIfMatchParameter, - ...SourceIfNoneMatchParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...CopySourceParameter, - ...LeaseIdOptionalParameter, - ...SourceContentMd5Parameter, - ...BlobTagsHeaderParameter, - ...ImmutabilityPolicyExpiryParameter, - ...ImmutabilityPolicyModeParameter, - ...LegalHoldOptionalParameter, - ...CopySourceAuthorizationParameter, - ...EncryptionScopeParameter, - ...CopySourceTagsParameter, - ): { - @statusCode statusCode: 202; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...CopyIdResponseHeader; - ...CopyStatusResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentCrc64ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + copyFromUrl is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + + // TODO: ...MetadataParameter; + ...AccessTierOptionalParameter; + + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...CopySourceParameter; + ...LeaseIdOptionalParameter; + ...SourceContentMd5Parameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + ...CopySourceAuthorizationParameter; + ...EncryptionScopeParameter; + ...CopySourceTagsParameter; + }, + { + @statusCode statusCode: 202; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...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" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @put @route("?comp=copy©id") - abortCopyFromUrl( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...CopyIdParameter, - ...LeaseIdOptionalParameter, - ): { - @statusCode statusCode: 204; - ...DateResponseHeader; - } | StorageError; + abortCopyFromUrl is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...CopyIdParameter; + ...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" @@ -1090,19 +1227,21 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("?comp=tier") - setTier( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...AccessTierRequiredParameter, - ...RehydratePriorityParameter, - ...LeaseIdOptionalParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 200; - } | { - @statusCode statusCode: 202; - } | StorageError; + setTier is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...AccessTierRequiredParameter; + ...RehydratePriorityParameter; + ...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" @@ -1110,107 +1249,122 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get @route("?restype=account&comp=properties") - getAccountInfo(...ContainerNameParameter, ...BlobNameParameter): { - @statusCode statusCode: 200; - ...DateResponseHeader; - ...AccountKindResponseHeader; - ...SkuNameResponseHeader; - } | StorageError; + getAccountInfo is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + }, + { + @statusCode statusCode: 200; + ...DateResponseHeader; + ...AccountKindResponseHeader; + ...SkuNameResponseHeader; + } + >; /** 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/no-operation-id" "Existing API" @post @route("/{containerName}/{blob}?comp=query") - query( - ...QueryRequestParameter, - ...ContainerNameParameter, - ...BlobNameParameter, - ...SnapshotParameter, - ...TimeoutParameter, - ...LeaseIdOptionalParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" - @statusCode statusCode: 200 | 206; - ...BodyParameter; - - // TODO: MetadataResponseHeader; - - ...LastModifiedResponseHeader; - - ...ContentLengthResponseHeader; - ...ContentRangeResponseHeader; - ...EtagResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentEncodingResponseParameter; - ...CacheControlResponseHeader; - ...ContentLanguageResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...BlobTypeResponseHeader; - ...CopyCompletionTimeResponseHeader; - ...CopyStatusDescriptionResponseHeader; - ...CopyIdResponseHeader; - ...CopyProgressResponseHeader; - ...CopySourceResponseHeader; - ...CopyStatusResponseHeader; - ...LeaseDurationResponseHeader; - ...LeaseStateResponseHeader; - ...LeaseStatusResponseHeader; - ...DateResponseHeader; - ...AcceptRangesResponseHeader; - ...BlobCommittedBlockCountResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - ...BlobContentMd5ResponseHeader; - } | StorageError; + query is StorageOperation< + { + ...QueryRequestParameter; + ...ContainerNameParameter; + ...BlobNameParameter; + ...SnapshotParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" + @statusCode statusCode: 200 | 206; + ...BodyParameter; + + // TODO: MetadataResponseHeader; + + ...LastModifiedResponseHeader; + + ...ContentLengthResponseHeader; + ...ContentRangeResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopySourceResponseHeader; + ...CopyStatusResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...DateResponseHeader; + ...AcceptRangesResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...BlobContentMd5ResponseHeader; + } + >; /** The Get Blob Tags operation enables users to get tags on a blob. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get @route("/{containerName}/{blob}?comp=tags") - getTags( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...SnapshotParameter, - ...VersionIdParameter, - ...LeaseIdOptionalParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 200; - @body body: BlobTags; - ...DateResponseHeader; - } | StorageError; + getTags is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...SnapshotParameter; + ...VersionIdParameter; + ...LeaseIdOptionalParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 200; + @body body: 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" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @put @route("/{containerName}/{blob}?comp=tags") - setTags( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...VersionIdParameter, - ...LeaseIdOptionalParameter, - ...ContentMd5Parameter, - ...ContentCrc64Parameter, - ...IfTagsParameter, - ...BlobTagsBodyParameter, - ): { - @statusCode statusCode: 204; - ...DateResponseHeader; - } | StorageError; + setTags is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...VersionIdParameter; + ...LeaseIdOptionalParameter; + ...ContentMd5Parameter; + ...ContentCrc64Parameter; + ...IfTagsParameter; + ...BlobTagsBodyParameter; + }, + { + @statusCode statusCode: 204; + ...DateResponseHeader; + } + >; } #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." @@ -1221,46 +1375,49 @@ interface PageBlob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/{containerName}/{blob}?PageBlob") - create( - // TODO: Metadata - ...ContainerNameParameter, - - ...BlobNameParameter, - ...TimeoutParameter, - ...ContentLengthParameter, - ...PremiumPageBlobAccessTierOptional, - ...BlobContentTypeParameter, - ...BlobContentEncodingParameter, - ...BlobContentLanguageParameter, - ...BlobContentMd5Parameter, - ...BlobCacheControlParameter, - ...LeaseIdOptionalParameter, - ...BlobContentDispositionParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...BlobContentLengthRequiredParameter, - ...BlobSequenceNumberParameter, - ...BlobTagsHeaderParameter, - ...ImmutabilityPolicyExpiryParameter, - ...LegalHoldOptionalParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...ContentMd5ResponseHeader; - ...VersionIdResponseHeader; - ...DateResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + create is StorageOperation< + { + // TODO: Metadata + ...ContainerNameParameter; + + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentLengthParameter; + ...PremiumPageBlobAccessTierOptional; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMd5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...BlobContentLengthRequiredParameter; + ...BlobSequenceNumberParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...LegalHoldOptionalParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; /** The Upload Pages operation writes a range of pages to a page blob */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -1269,42 +1426,45 @@ interface PageBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}/{blob}?comp=page&update") - uploadPages( - /** The data to upload. */ - ...BodyParameter, - - ...ContainerNameParameter, - ...BlobNameParameter, - ...ContentLengthParameter, - ...ContentMd5Parameter, - ...ContentCrc64Parameter, - ...TimeoutParameter, - ...RangeParameter, - ...LeaseIdOptionalParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...IfSequenceNumberLessThanOrEqualToParameter, - ...IfSequenceNumberLessThanParameter, - ...IfSequenceNumberEqualToParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentCrc64ResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...DateResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + uploadPages is StorageOperation< + { + /** The data to upload. */ + ...BodyParameter; + + ...ContainerNameParameter; + ...BlobNameParameter; + ...ContentLengthParameter; + ...ContentMd5Parameter; + ...ContentCrc64Parameter; + ...TimeoutParameter; + ...RangeParameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfSequenceNumberLessThanOrEqualToParameter; + ...IfSequenceNumberLessThanParameter; + ...IfSequenceNumberEqualToParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; /** The Clear Pages operation clears a range of pages from a page blob */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @@ -1313,28 +1473,31 @@ interface PageBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}/{blob}?comp=page&clear") - clearPages( - ...ContainerNameParameter, - ...BlobNameParameter, - ...ContentLengthParameter, - ...TimeoutParameter, - ...RangeParameter, - ...LeaseIdOptionalParameter, - ...IfSequenceNumberLessThanOrEqualToParameter, - ...IfSequenceNumberLessThanParameter, - ...IfSequenceNumberEqualToParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...DateResponseHeader; - } | StorageError; + clearPages is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...ContentLengthParameter; + ...TimeoutParameter; + ...RangeParameter; + ...LeaseIdOptionalParameter; + ...IfSequenceNumberLessThanOrEqualToParameter; + ...IfSequenceNumberLessThanParameter; + ...IfSequenceNumberEqualToParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + } + >; /** 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" @@ -1342,103 +1505,112 @@ interface PageBlob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/{containerName}/{blob}?comp=page&update&fromUrl") - uploadPagesFromUrl( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...ContentLengthParameter, - ...SourceUrlParameter, - ...SourceRangeRequiredPutPageFromUrlParameter, - ...SourceContentMd5Parameter, - ...SourceContentCrc64Parameter, - ...RangeRequiredPutPageFromUrlParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...LeaseIdOptionalParameter, - ...IfSequenceNumberLessThanOrEqualToParameter, - ...IfSequenceNumberLessThanParameter, - ...IfSequenceNumberEqualToParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...SourceIfModifiedSinceParameter, - ...SourceIfUnmodifiedSinceParameter, - ...SourceIfMatchParameter, - ...SourceIfNoneMatchParameter, - ...CopySourceAuthorizationParameter, - ): { - @statusCode statusCode: 202; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentCrc64ResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + uploadPagesFromUrl is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentLengthParameter; + ...SourceUrlParameter; + ...SourceRangeRequiredPutPageFromUrlParameter; + ...SourceContentMd5Parameter; + ...SourceContentCrc64Parameter; + ...RangeRequiredPutPageFromUrlParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...LeaseIdOptionalParameter; + ...IfSequenceNumberLessThanOrEqualToParameter; + ...IfSequenceNumberLessThanParameter; + ...IfSequenceNumberEqualToParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...CopySourceAuthorizationParameter; + }, + { + @statusCode statusCode: 202; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; /** 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/no-operation-id" "Existing API" @get @route("/{containerName}/{blob}?comp=pagelist") - getPageRanges( - ...ContainerNameParameter, - ...BlobNameParameter, - ...SnapshotParameter, - ...RangeParameter, - ...LeaseIdOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...MarkerParameter, - ...MaxResultsParameter, - ): { - @statusCode statusCode: 200; - @body body: PageList; - ...LastModifiedResponseHeader; - ...EtagResponseHeader; - ...BlobContentLengthResponseHeader; - ...DateResponseHeader; - } | StorageError; + getPageRanges is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...SnapshotParameter; + ...RangeParameter; + ...LeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...MarkerParameter; + ...MaxResultsParameter; + }, + { + @statusCode statusCode: 200; + @body body: PageList; + ...LastModifiedResponseHeader; + ...EtagResponseHeader; + ...BlobContentLengthResponseHeader; + ...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/no-operation-id" "Existing API" @get @route("/{containerName}/{blob}?comp=pagelist&diff") - getPageRangesDiff( - ...ContainerNameParameter, - ...BlobNameParameter, - ...SnapshotParameter, - ...TimeoutParameter, - ...PrevSnapshotParameter, - ...PrevSnapshotUrlParameter, - ...RangeParameter, - ...LeaseIdOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...MarkerParameter, - ...MaxResultsParameter, - ): { - @statusCode statusCode: 200; - @body body: PageList; - ...LastModifiedResponseHeader; - ...EtagResponseHeader; - ...BlobContentLengthResponseHeader; - ...DateResponseHeader; - } | StorageError; + getPageRangesDiff is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...SnapshotParameter; + ...TimeoutParameter; + ...PrevSnapshotParameter; + ...PrevSnapshotUrlParameter; + ...RangeParameter; + ...LeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...MarkerParameter; + ...MaxResultsParameter; + }, + { + @statusCode statusCode: 200; + @body body: PageList; + ...LastModifiedResponseHeader; + ...EtagResponseHeader; + ...BlobContentLengthResponseHeader; + ...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" @@ -1447,28 +1619,31 @@ interface PageBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}/{blob}?comp=properties&Resize") - resize( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...LeaseIdOptionalParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...BlobContentLengthRequiredParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...DateResponseHeader; - } | StorageError; + resize is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...BlobContentLengthRequiredParameter; + }, + { + @statusCode statusCode: 200; + ...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" @@ -1477,25 +1652,28 @@ interface PageBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}/{blob}?comp=properties&UpdateSequenceNumber") - updateSequenceNumber( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...LeaseIdOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...SequenceNumberActionParameter, - ...SequenceNumberParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...DateResponseHeader; - } | StorageError; + updateSequenceNumber is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...SequenceNumberActionParameter; + ...SequenceNumberParameter; + }, + { + @statusCode statusCode: 200; + ...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" @@ -1503,25 +1681,28 @@ interface PageBlob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/{containerName}/{blob}?comp=incrementalcopy") - copyIncremental( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...LeaseIdOptionalParameter, - ...CopySourceParameter, - ): { - @statusCode statusCode: 202; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...CopyIdResponseHeader; - ...CopyStatusResponseHeader; - } | StorageError; + copyIncremental is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...LeaseIdOptionalParameter; + ...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." @@ -1532,44 +1713,47 @@ interface AppendBlob { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put - create( - // TODO: Metadata - ...ContainerNameParameter, - - ...BlobNameParameter, - ...TimeoutParameter, - ...ContentLengthParameter, - ...BlobContentTypeParameter, - ...BlobContentEncodingParameter, - ...BlobContentLanguageParameter, - ...BlobContentMd5Parameter, - ...BlobCacheControlParameter, - ...LeaseIdOptionalParameter, - ...BlobContentDispositionParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...BlobTagsHeaderParameter, - ...ImmutabilityPolicyExpiryParameter, - ...ImmutabilityPolicyModeParameter, - ...LegalHoldOptionalParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...ContentMd5ResponseHeader; - ...VersionIdResponseHeader; - ...DateResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + create is StorageOperation< + { + // TODO: Metadata + ...ContainerNameParameter; + + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentLengthParameter; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMd5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; /** 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" @@ -1578,42 +1762,45 @@ interface AppendBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}/{blob}?comp=appendblock") - appendBlock( - /** The data to upload. */ - ...BodyParameter, - - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...ContentLengthParameter, - ...ContentMd5Parameter, - ...ContentCrc64Parameter, - ...LeaseIdOptionalParameter, - ...BlobConditionMaxSizeParameter, - ...BlobConditionAppendPosParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...DateResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentCrc64ResponseHeader; - ...BlobAppendOffsetResponseHeader; - ...BlobCommittedBlockCountResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + appendBlock is StorageOperation< + { + /** The data to upload. */ + ...BodyParameter; + + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentLengthParameter; + ...ContentMd5Parameter; + ...ContentCrc64Parameter; + ...LeaseIdOptionalParameter; + ...BlobConditionMaxSizeParameter; + ...BlobConditionAppendPosParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...BlobAppendOffsetResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; /** 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" @@ -1622,41 +1809,44 @@ interface AppendBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}/{blob}?comp=appendblock&fromUrl") - appendBlockFromUrl( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...ContentLengthParameter, - ...SourceUrlParameter, - ...SourceRangeParameter, - ...SourceContentMd5Parameter, - ...SourceContentCrc64Parameter, - ...LeaseIdOptionalParameter, - ...BlobConditionMaxSizeParameter, - ...BlobConditionAppendPosParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...CopySourceAuthorizationParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentCrc64ResponseHeader; - ...BlobAppendOffsetResponseHeader; - ...BlobCommittedBlockCountResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + appendBlockFromUrl is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentLengthParameter; + ...SourceUrlParameter; + ...SourceRangeParameter; + ...SourceContentMd5Parameter; + ...SourceContentCrc64Parameter; + ...LeaseIdOptionalParameter; + ...BlobConditionMaxSizeParameter; + ...BlobConditionAppendPosParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...CopySourceAuthorizationParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...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" @@ -1665,24 +1855,27 @@ interface AppendBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}/{blob}?comp=seal") - seal( - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...LeaseIdOptionalParameter, - ...BlobConditionAppendPosParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 200; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...DateResponseHeader; - ...IsSealedResponseHeader; - } | StorageError; + seal is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...BlobConditionAppendPosParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 200; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...DateResponseHeader; + ...IsSealedResponseHeader; + } + >; } #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." @@ -1694,48 +1887,51 @@ interface BlockBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}/{blob}?BlockBlob") - upload( - // TODO: Metadata - - ...ContainerNameParameter, - - ...BlobNameParameter, - ...BodyParameter, - ...TimeoutParameter, - ...ContentMd5Parameter, - ...BlobContentTypeParameter, - ...BlobContentEncodingParameter, - ...BlobContentLanguageParameter, - ...BlobContentMd5Parameter, - ...BlobCacheControlParameter, - ...LeaseIdOptionalParameter, - ...BlobContentDispositionParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...AccessTierOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...BlobTagsHeaderParameter, - ...ImmutabilityPolicyExpiryParameter, - ...ImmutabilityPolicyModeParameter, - ...LegalHoldOptionalParameter, - ...ContentCrc64Parameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...ContentMd5ResponseHeader; - ...VersionIdResponseHeader; - ...DateResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + upload is StorageOperation< + { + // TODO: Metadata + + ...ContainerNameParameter; + + ...BlobNameParameter; + ...BodyParameter; + ...TimeoutParameter; + ...ContentMd5Parameter; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMd5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...AccessTierOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + ...ContentCrc64Parameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; /** 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" @@ -1744,51 +1940,54 @@ interface BlockBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}/{blob}?BlockBlob&fromUrl") - putBlobFromUrl( - // TODO: Metadata - - ...ContainerNameParameter, - - ...BlobNameParameter, - ...TimeoutParameter, - ...ContentMd5Parameter, - ...ContentLengthParameter, - ...BlobContentTypeParameter, - ...BlobContentEncodingParameter, - ...BlobContentLanguageParameter, - ...BlobContentMd5Parameter, - ...BlobCacheControlParameter, - ...LeaseIdOptionalParameter, - ...BlobContentDispositionParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...AccessTierOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...SourceIfModifiedSinceParameter, - ...SourceIfMatchParameter, - ...SourceIfNoneMatchParameter, - ...SourceIfTagsParameter, - ...SourceContentMd5Parameter, - ...BlobTagsHeaderParameter, - ...CopySourceParameter, - ...CopySourceBlobPropertiesParameter, - ...CopySourceAuthorizationParameter, - ...CopySourceTagsParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...ContentMd5ResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + putBlobFromUrl is StorageOperation< + { + // TODO: Metadata + + ...ContainerNameParameter; + + ...BlobNameParameter; + ...TimeoutParameter; + ...ContentMd5Parameter; + ...ContentLengthParameter; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMd5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...AccessTierOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; + ...SourceIfTagsParameter; + ...SourceContentMd5Parameter; + ...BlobTagsHeaderParameter; + ...CopySourceParameter; + ...CopySourceBlobPropertiesParameter; + ...CopySourceAuthorizationParameter; + ...CopySourceTagsParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; /** 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" @@ -1797,29 +1996,32 @@ interface BlockBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}/{blob}?comp=block") - stageBlock( - ...BodyParameter, - ...ContainerNameParameter, - ...BlobNameParameter, - ...BlockIdParameter, - ...ContentLengthParameter, - ...ContentMd5Parameter, - ...TimeoutParameter, - ...ContentCrc64Parameter, - ...LeaseIdOptionalParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ): { - @statusCode statusCode: 201; - ...DateResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentCrc64ResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + stageBlock is StorageOperation< + { + ...BodyParameter; + ...ContainerNameParameter; + ...BlobNameParameter; + ...BlockIdParameter; + ...ContentLengthParameter; + ...ContentMd5Parameter; + ...TimeoutParameter; + ...ContentCrc64Parameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + }, + { + @statusCode statusCode: 201; + ...DateResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; /** 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" @@ -1828,35 +2030,38 @@ interface BlockBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("?comp=block&fromURL") - stageBlockFromUrl( - ...ContainerNameParameter, - ...BlobNameParameter, - ...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; - } | StorageError; + stageBlockFromUrl is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...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" @@ -1865,66 +2070,72 @@ interface BlockBlob { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("?comp=blocklist") - commitBlockList( - ...BlobBlocksParameter, - ...ContainerNameParameter, - ...BlobNameParameter, - ...TimeoutParameter, - ...BlobCacheControlParameter, - ...BlobContentTypeParameter, - ...BlobContentEncodingParameter, - ...BlobContentLanguageParameter, - ...BlobContentMd5Parameter, - ...ContentMd5Parameter, - ...ContentCrc64Parameter, - - // TODO: ...MetadataParameter; - ...BlobContentDispositionParameter, - - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...EncryptionScopeParameter, - ...AccessTierOptionalParameter, - ...IfModifiedSinceParameter, - ...IfUnmodifiedSinceParameter, - ...IfMatchParameter, - ...IfNoneMatchParameter, - ...IfTagsParameter, - ...BlobTagsHeaderParameter, - ...ImmutabilityPolicyExpiryParameter, - ...ImmutabilityPolicyModeParameter, - ...LegalHoldOptionalParameter, - ): { - @statusCode statusCode: 201; - ...EtagResponseHeader; - ...LastModifiedResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentCrc64ResponseHeader; - ...DateResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - } | StorageError; + commitBlockList is StorageOperation< + { + ...BlobBlocksParameter; + ...ContainerNameParameter; + ...BlobNameParameter; + ...TimeoutParameter; + ...BlobCacheControlParameter; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMd5Parameter; + ...ContentMd5Parameter; + ...ContentCrc64Parameter; + + // TODO: ...MetadataParameter; + ...BlobContentDispositionParameter; + + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...AccessTierOptionalParameter; + ...IfModifiedSinceParameter; + ...IfUnmodifiedSinceParameter; + ...IfMatchParameter; + ...IfNoneMatchParameter; + ...IfTagsParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...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" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get @route("?comp=blocklist") - getBlockList( - ...ContainerNameParameter, - ...BlobNameParameter, - ...SnapshotParameter, - ...BlockListTypeParameter, - ...LeaseIdOptionalParameter, - ...IfTagsParameter, - ): { - @statusCode statusCode: 200; - @body body: BlockLookupList; - ...LastModifiedResponseHeader; - ...EtagResponseHeader; - ...BlobContentLengthResponseHeader; - ...DateResponseHeader; - } | StorageError; + getBlockList is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...SnapshotParameter; + ...BlockListTypeParameter; + ...LeaseIdOptionalParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 200; + @body body: BlockLookupList; + ...LastModifiedResponseHeader; + ...EtagResponseHeader; + ...BlobContentLengthResponseHeader; + ...DateResponseHeader; + } + >; } diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index b65c999fbc01..9c854713cc57 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -271,6 +271,14 @@ "type": "integer", "format": "int32" }, + { + "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-version", "in": "header", @@ -286,14 +294,6 @@ "required": false, "type": "string", "x-ms-client-name": "requestId" - }, - { - "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" } ], "responses": { @@ -653,6 +653,10 @@ "format": "byte" }, "headers": { + "x-ms-client-request-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." + }, "x-ms-request-id": { "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." @@ -690,22 +694,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-lease-id", "in": "header", @@ -731,6 +719,22 @@ "type": "string", "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -908,14 +912,6 @@ "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" }, - { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-version", "in": "header", @@ -923,6 +919,14 @@ "required": true, "type": "string", "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -1019,6 +1023,10 @@ ] } }, + "x-ms-client-request-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." + }, "x-ms-copy-completion-time": { "type": "string", "format": "date-time-rfc1123", @@ -1231,6 +1239,10 @@ "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", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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." @@ -1343,6 +1355,10 @@ ] } }, + "x-ms-client-request-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." + }, "x-ms-copy-completion-time": { "type": "string", "format": "date-time-rfc1123", @@ -1555,6 +1571,10 @@ "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", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting 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." @@ -1962,22 +1982,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "deletetype", "in": "query", @@ -2005,6 +2009,22 @@ ] }, "x-ms-client-name": "blobDeleteType" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -2148,14 +2168,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-version", "in": "header", @@ -2163,6 +2175,14 @@ "required": true, "type": "string", "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -2712,22 +2732,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "snapshot", "in": "query", @@ -2758,6 +2762,22 @@ "required": false, "type": "string", "x-ms-client-name": "ifTags" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -2823,22 +2843,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "versionid", "in": "header", @@ -2879,6 +2883,22 @@ "type": "string", "x-ms-client-name": "ifTags" }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, { "name": "tags", "in": "body", @@ -3623,37 +3643,37 @@ "format": "int32" }, { - "name": "x-ms-version", + "name": "If-Modified-Since", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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", - "x-ms-client-name": "version" + "format": "date-time-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "name": "x-ms-client-request-id", + "name": "x-ms-lease-id", "in": "header", - "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.", + "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": "requestId" + "x-ms-client-name": "leaseId" }, { - "name": "If-Modified-Since", + "name": "x-ms-version", "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, + "description": "Specifies the version of the operation to use for this request.", + "required": true, "type": "string", - "format": "date-time-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "x-ms-client-name": "version" }, { - "name": "x-ms-lease-id", + "name": "x-ms-client-request-id", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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.", "required": false, "type": "string", - "x-ms-client-name": "leaseId" + "x-ms-client-name": "requestId" } ], "responses": { @@ -3717,6 +3737,14 @@ "type": "integer", "format": "int32" }, + { + "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-version", "in": "header", @@ -3732,14 +3760,6 @@ "required": false, "type": "string", "x-ms-client-name": "requestId" - }, - { - "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" } ], "responses": { @@ -3834,46 +3854,46 @@ "format": "int32" }, { - "name": "x-ms-version", + "name": "If-Modified-Since", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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", - "x-ms-client-name": "version" + "format": "date-time-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "name": "x-ms-client-request-id", + "name": "If-Unmodified-Since", "in": "header", - "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.", + "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", - "x-ms-client-name": "requestId" + "format": "date-time-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "name": "If-Modified-Since", + "name": "x-ms-lease-id", "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.", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", "required": false, "type": "string", - "format": "date-time-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "x-ms-client-name": "leaseId" }, { - "name": "If-Unmodified-Since", + "name": "x-ms-version", "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, + "description": "Specifies the version of the operation to use for this request.", + "required": true, "type": "string", - "format": "date-time-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "x-ms-client-name": "version" }, { - "name": "x-ms-lease-id", + "name": "x-ms-client-request-id", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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.", "required": false, "type": "string", - "x-ms-client-name": "leaseId" + "x-ms-client-name": "requestId" }, { "name": "acl", @@ -4253,22 +4273,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-proposed-lease-id", "in": "header", @@ -4294,6 +4298,22 @@ "type": "string", "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -4369,22 +4389,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "If-Modified-Since", "in": "header", @@ -4402,6 +4406,22 @@ "type": "string", "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -4473,22 +4493,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "If-Modified-Since", "in": "header", @@ -4506,6 +4510,22 @@ "type": "string", "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -4573,22 +4593,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "If-Modified-Since", "in": "header", @@ -4615,6 +4619,22 @@ "type": "integer", "format": "int32", "x-ms-client-name": "breakPeriod" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -4635,6 +4655,10 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, + "x-ms-client-request-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." + }, "x-ms-lease-id": { "type": "string", "description": "Uniquely identifies a blobs' lease" @@ -4644,6 +4668,10 @@ "format": "int32", "description": "Approximate time remaining in the lease period, in seconds." }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, "x-ms-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." @@ -4695,22 +4723,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "If-Modified-Since", "in": "header", @@ -4728,6 +4740,22 @@ "type": "string", "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -4761,6 +4789,10 @@ "format": "int32", "description": "Approximate time remaining in the lease period, in seconds." }, + "x-ms-request-id": { + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, "x-ms-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." @@ -5148,6 +5180,14 @@ "required": true, "type": "string", "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -5456,22 +5496,6 @@ "format": "int64", "x-ms-client-name": "blobSequenceNumber" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-tags", "in": "header", @@ -5496,6 +5520,22 @@ "required": false, "type": "boolean", "x-ms-client-name": "legalHold" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -6233,6 +6273,14 @@ "type": "string", "x-ms-client-name": "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" + }, { "name": "x-ms-version", "in": "header", @@ -6248,14 +6296,6 @@ "required": false, "type": "string", "x-ms-client-name": "requestId" - }, - { - "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" } ], "responses": { @@ -6346,22 +6386,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "snapshot", "in": "query", @@ -6441,6 +6465,22 @@ "required": false, "type": "integer", "format": "int32" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -6514,22 +6554,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "snapshot", "in": "query", @@ -6632,6 +6656,22 @@ "required": false, "type": "integer", "format": "int32" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -7408,22 +7448,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-tags", "in": "header", @@ -7482,6 +7506,22 @@ "required": false, "type": "boolean", "x-ms-client-name": "legalHold" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -7813,22 +7853,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-tags", "in": "header", @@ -7896,6 +7920,22 @@ "type": "string", "x-ms-client-name": "transactionalContentCrc64" }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, { "name": "body", "in": "body", @@ -8278,22 +8318,6 @@ "type": "string", "x-ms-client-name": "sourceIfTags" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-source-content-md5", "in": "header", @@ -8341,6 +8365,22 @@ "required": false, "type": "string", "x-ms-client-name": "copySourceTags" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -8379,6 +8419,10 @@ "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-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." } } }, @@ -9002,6 +9046,14 @@ "type": "string", "x-ms-client-name": "ifTags" }, + { + "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" + }, { "name": "x-ms-version", "in": "header", @@ -9017,14 +9069,6 @@ "required": false, "type": "string", "x-ms-client-name": "requestId" - }, - { - "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" } ], "responses": { @@ -9507,22 +9551,6 @@ "type": "string", "x-ms-client-name": "leaseId" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-tags", "in": "header", @@ -9589,6 +9617,22 @@ "required": false, "type": "boolean", "x-ms-client-name": "legalHold" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -9993,22 +10037,6 @@ "type": "string", "x-ms-client-name": "leaseId" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-source-content-md5", "in": "header", @@ -10099,6 +10127,22 @@ "required": false, "type": "string", "x-ms-client-name": "copySourceTags" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -10216,22 +10260,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-expiry-option", "in": "header", @@ -10279,6 +10307,22 @@ "required": true, "type": "string", "x-ms-client-name": "ExpiresOn" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -10361,22 +10405,6 @@ "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-immutability-policy-until-date", "in": "header", @@ -10419,6 +10447,22 @@ ] }, "x-ms-client-name": "immutabilityPolicyMode" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -10606,22 +10650,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-lease-duration", "in": "header", @@ -10680,6 +10708,22 @@ "required": false, "type": "string", "x-ms-client-name": "ifTags" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -10757,22 +10801,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-lease-break-period", "in": "header", @@ -10823,6 +10851,22 @@ "required": false, "type": "string", "x-ms-client-name": "ifTags" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -10901,22 +10945,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-lease-id", "in": "header", @@ -10974,6 +11002,22 @@ "required": false, "type": "string", "x-ms-client-name": "ifTags" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -11051,22 +11095,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-lease-id", "in": "header", @@ -11116,6 +11144,22 @@ "required": false, "type": "string", "x-ms-client-name": "ifTags" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -11189,22 +11233,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-lease-id", "in": "header", @@ -11254,6 +11282,22 @@ "required": false, "type": "string", "x-ms-client-name": "ifTags" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -11331,6 +11375,14 @@ "type": "integer", "format": "int32" }, + { + "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" + }, { "name": "x-ms-version", "in": "header", @@ -11346,14 +11398,6 @@ "required": false, "type": "string", "x-ms-client-name": "requestId" - }, - { - "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" } ], "responses": { @@ -11422,22 +11466,6 @@ "type": "integer", "format": "int32" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-lease-id", "in": "header", @@ -11519,6 +11547,22 @@ "required": false, "type": "string", "x-ms-client-name": "ifTags" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -11911,36 +11955,36 @@ "x-ms-client-name": "rehydratePriority" }, { - "name": "x-ms-version", + "name": "x-ms-lease-id", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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": "version" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-client-request-id", + "name": "x-ms-if-tags", "in": "header", - "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.", + "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": "requestId" + "x-ms-client-name": "ifTags" }, { - "name": "x-ms-lease-id", + "name": "x-ms-version", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", - "required": false, + "description": "Specifies the version of the operation to use for this request.", + "required": true, "type": "string", - "x-ms-client-name": "leaseId" + "x-ms-client-name": "version" }, { - "name": "x-ms-if-tags", + "name": "x-ms-client-request-id", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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.", "required": false, "type": "string", - "x-ms-client-name": "ifTags" + "x-ms-client-name": "requestId" } ], "responses": { @@ -12185,6 +12229,10 @@ "200": { "description": "The request has succeeded.", "headers": { + "x-ms-client-request-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." + }, "x-ms-request-id": { "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." @@ -12344,22 +12392,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "blockid", "in": "query", @@ -12498,6 +12530,22 @@ "required": false, "type": "string", "x-ms-client-name": "copySourceAuthorization" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -12820,22 +12868,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "x-ms-tags", "in": "header", @@ -12895,6 +12927,22 @@ "type": "boolean", "x-ms-client-name": "legalHold" }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" + }, { "name": "blocks", "in": "body", @@ -12988,22 +13036,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "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-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" - }, { "name": "snapshot", "in": "query", @@ -13060,6 +13092,22 @@ "required": false, "type": "string", "x-ms-client-name": "ifTags" + }, + { + "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-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { @@ -13205,6 +13253,14 @@ "required": true, "type": "string", "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "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.", + "required": false, + "type": "string", + "x-ms-client-name": "requestId" } ], "responses": { From 3bb504e33015b4f3ad504477c5e5b612b306f3f6 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 1 Oct 2024 20:15:49 -0700 Subject: [PATCH 048/129] remove operation id suppressions --- .../storage/Microsoft.BlobStorage/routes.tsp | 69 ------------------- 1 file changed, 69 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index d993e5303216..b513f8ee197f 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -26,7 +26,6 @@ op StorageOperation< interface Service { /** Get the 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" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/?restype=service&comp=properties") @@ -44,7 +43,6 @@ interface Service { /** 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" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get @route("/?restype=service&comp=properties") getProperties is StorageOperation< @@ -59,7 +57,6 @@ interface Service { /** 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" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get @route("/?restype=service&comp=stats") getStatistics is StorageOperation< @@ -73,7 +70,6 @@ interface Service { /** 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/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get @route("/?comp=list") @@ -92,7 +88,6 @@ interface Service { /** The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @post @route("/?restype=service&comp=userdelegationkey") getUserDelegationKey is StorageOperation< @@ -112,7 +107,6 @@ interface Service { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get @route("/?restype=account&comp=properties") @@ -129,7 +123,6 @@ interface Service { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post @route("/?comp=batch") @@ -145,7 +138,6 @@ interface Service { /** 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/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get @route("/?comp=blobs") @@ -169,7 +161,6 @@ interface Service { interface 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/{containerName}?restype=container") @@ -194,7 +185,6 @@ interface Container { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get @route("/{containerName}?restype=container") @@ -226,7 +216,6 @@ interface Container { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @delete @route("/{containerName}?restype=container") @@ -246,7 +235,6 @@ interface Container { /** 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-operation-id" "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 @@ -271,7 +259,6 @@ interface Container { /** 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" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get @route("/{containerName}?restype=container&comp=acl") getAccessPolicy is StorageOperation< @@ -292,7 +279,6 @@ interface Container { /** 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-operation-id" "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 @@ -316,7 +302,6 @@ interface Container { /** Restores a previously-deleted container. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 @@ -336,7 +321,6 @@ interface Container { /** Renames an existing container. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 @@ -356,7 +340,6 @@ interface Container { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post @route("/{containerName}?restype=container&comp=batch") @@ -377,7 +360,6 @@ interface Container { /** 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/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get @route("/{containerName}?restype=container&comp=blobs") @@ -399,7 +381,6 @@ interface Container { /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 @@ -424,7 +405,6 @@ interface Container { /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 @@ -447,7 +427,6 @@ interface Container { /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 @@ -471,7 +450,6 @@ interface Container { /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/{containerName}?comp=lease&restype=container&break") @@ -495,7 +473,6 @@ interface Container { /** [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 */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 @@ -521,7 +498,6 @@ interface Container { /** [Update] 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/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get @route("/{containerName}?restype=container&comp=list&flat") @@ -543,7 +519,6 @@ interface Container { /** [Update] 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/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get @route("/{containerName}?restype=container&comp=list&hierarchy") @@ -566,7 +541,6 @@ interface Container { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get @route("/{containerName}?restype=account&comp=properties") @@ -588,7 +562,6 @@ interface Container { interface 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-operation-id" "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 @@ -660,7 +633,6 @@ interface Blob { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @head getProperties is StorageOperation< @@ -734,7 +706,6 @@ interface Blob { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @delete delete is StorageOperation< @@ -761,7 +732,6 @@ interface Blob { /** "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/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @route("?comp=undelete") @post @@ -778,7 +748,6 @@ interface Blob { /** "Set the expiration time of a blob" */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post @route("?comp=expiry") @@ -799,7 +768,6 @@ interface Blob { /** 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-operation-id" "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 @@ -833,7 +801,6 @@ interface Blob { /** "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-operation-id" "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 @@ -859,7 +826,6 @@ interface Blob { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @delete @route("?comp=immutabilityPolicies") @@ -877,7 +843,6 @@ interface Blob { /** 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-operation-id" "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 @@ -898,7 +863,6 @@ interface Blob { /** 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-operation-id" "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 @@ -935,7 +899,6 @@ interface Blob { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 @@ -964,7 +927,6 @@ interface Blob { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 @@ -991,7 +953,6 @@ interface Blob { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 @@ -1019,7 +980,6 @@ interface Blob { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "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 @@ -1048,7 +1008,6 @@ interface Blob { /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("?comp=lease&break") @@ -1075,7 +1034,6 @@ interface Blob { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("?comp=snapshot") @@ -1110,7 +1068,6 @@ interface Blob { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("?comp=copy") @@ -1155,7 +1112,6 @@ interface Blob { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("?comp=copy&sync") @@ -1203,7 +1159,6 @@ interface Blob { /** 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" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @put @route("?comp=copy©id") abortCopyFromUrl is StorageOperation< @@ -1222,7 +1177,6 @@ interface Blob { /** 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-operation-id" "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 @@ -1245,7 +1199,6 @@ interface Blob { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get @route("?restype=account&comp=properties") @@ -1264,7 +1217,6 @@ interface Blob { /** 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/no-operation-id" "Existing API" @post @route("/{containerName}/{blob}?comp=query") query is StorageOperation< @@ -1323,7 +1275,6 @@ interface Blob { /** The Get Blob Tags operation enables users to get tags on a blob. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get @route("/{containerName}/{blob}?comp=tags") getTags is StorageOperation< @@ -1345,7 +1296,6 @@ interface Blob { /** The Set Tags operation enables users to set tags on a blob. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @put @route("/{containerName}/{blob}?comp=tags") setTags is StorageOperation< @@ -1371,7 +1321,6 @@ interface Blob { interface 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/{containerName}/{blob}?PageBlob") @@ -1421,7 +1370,6 @@ interface PageBlob { /** 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-operation-id" "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 @@ -1468,7 +1416,6 @@ interface PageBlob { /** 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-operation-id" "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 @@ -1501,7 +1448,6 @@ interface PageBlob { /** 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/no-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/{containerName}/{blob}?comp=page&update&fromUrl") @@ -1551,7 +1497,6 @@ interface PageBlob { /** 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/no-operation-id" "Existing API" @get @route("/{containerName}/{blob}?comp=pagelist") getPageRanges is StorageOperation< @@ -1581,7 +1526,6 @@ interface PageBlob { /** 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/no-operation-id" "Existing API" @get @route("/{containerName}/{blob}?comp=pagelist&diff") getPageRangesDiff is StorageOperation< @@ -1614,7 +1558,6 @@ interface PageBlob { /** 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-operation-id" "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 @@ -1647,7 +1590,6 @@ interface PageBlob { /** 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-operation-id" "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 @@ -1677,7 +1619,6 @@ interface PageBlob { /** 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put @route("/{containerName}/{blob}?comp=incrementalcopy") @@ -1710,7 +1651,6 @@ interface PageBlob { interface 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-operation-id" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @put create is StorageOperation< @@ -1757,7 +1697,6 @@ interface AppendBlob { /** 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-operation-id" "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 @@ -1804,7 +1743,6 @@ interface AppendBlob { /** 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-operation-id" "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 @@ -1850,7 +1788,6 @@ interface AppendBlob { /** 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-operation-id" "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 @@ -1882,7 +1819,6 @@ interface AppendBlob { interface 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-operation-id" "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 @@ -1935,7 +1871,6 @@ interface BlockBlob { /** 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-operation-id" "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 @@ -1991,7 +1926,6 @@ interface BlockBlob { /** 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-operation-id" "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 @@ -2025,7 +1959,6 @@ interface BlockBlob { /** 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-operation-id" "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 @@ -2065,7 +1998,6 @@ interface BlockBlob { /** 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-operation-id" "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 @@ -2117,7 +2049,6 @@ interface BlockBlob { /** 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" - #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Existing API" @get @route("?comp=blocklist") getBlockList is StorageOperation< From 036cd02aa8aadea21f1ec75de13eda96637f25ee Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Wed, 2 Oct 2024 11:20:49 -0700 Subject: [PATCH 049/129] clientName clean up --- .../storage/Microsoft.BlobStorage/models.tsp | 112 ------------------ 1 file changed, 112 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 108a071e7450..7baf55d1a97c 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -1049,7 +1049,6 @@ union QueryType { /** 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 */ - @clientName("BlobContentMD5") @header("x-ms-blob-content-md5") blobContentMd5: string; }; @@ -1064,7 +1063,6 @@ alias QueryRequestParameter = { /** 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. */ - @clientName("BlobAppendOffset") @header("x-ms-blob-append-offset") blobAppendOffset: int64; }; @@ -1088,7 +1086,6 @@ alias BlobConditionMaxSizeParameter = { /** 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 */ - @clientName("sequenceNumberAction") @header("x-ms-sequence-number-action") sequenceNumberAction: SequenceNumberActionType; }; @@ -1111,7 +1108,6 @@ union SequenceNumberActionType { /** 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. */ - @clientName("blobSequenceNumber") @header("x-ms-blob-sequence-number") blobSequenceNumber: int64; }; @@ -1119,7 +1115,6 @@ alias SequenceNumberParameter = { /** 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. */ - @clientName("blobContentLength") @header("x-ms-blob-content-length") blobContentLength: int64; }; @@ -1150,7 +1145,6 @@ alias IsImmutableStorageWithVersioningEnabledResponseHeader = { /** The deny encryption scope override response header. */ alias DenyEncryptionScopeOverrideResponseHeader = { /** 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("DenyEncryptionScopeOverride") @header("x-ms-deny-encryption-scope-override") denyEncryptionScopeOverride: boolean; }; @@ -1158,7 +1152,6 @@ alias DenyEncryptionScopeOverrideResponseHeader = { /** The default encryption scope response header. */ alias DefaultEncryptionScopeResponseHeader = { /** The default encryption scope for the container. */ - @clientName("DefaultEncryptionScope") @header("x-ms-default-encryption-scope") defaultEncryptionScope: string; }; @@ -1174,7 +1167,6 @@ alias HasLegalHoldResponseHeader = { /** The has immutability policy response header. */ alias HasImmutabilityPolicyResponseHeader = { /** Indicates if a blob has an active immutability policy. */ - @clientName("HasImmutabilityPolicy") @header("x-ms-has-immutability-policy") hasImmutabilityPolicy: boolean; }; @@ -1182,7 +1174,6 @@ alias HasImmutabilityPolicyResponseHeader = { /** The public access response header. */ alias PublicAccessResponseHeader = { /** The public access setting for the container. */ - @clientName("PublicAccess") @header("x-ms-blob-public-access") publicAccess: PublicAccessType; }; @@ -1190,7 +1181,6 @@ alias PublicAccessResponseHeader = { /** The rehydrate priority response header. */ alias RehydratePriorityResponseHeader = { /** If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard. */ - @clientName("RehydratePriority") @header("x-ms-rehydrate-priority") rehydratePriority: RehydratePriority; }; @@ -1210,7 +1200,6 @@ alias AccessTierChangeTimeResponseHeader = { /** 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("date-time-rfc1123") - @clientName("AccessTierChangeTime") @header("x-ms-access-tier-change-time") accessTierChangeTime: utcDateTime; }; @@ -1218,7 +1207,6 @@ alias AccessTierChangeTimeResponseHeader = { /** The archive status response header. */ alias ArchiveStatusResponseHeader = { /** 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. */ - @clientName("ArchiveStatus") @header("x-ms-archive-status") archiveStatus: ArchiveStatus; }; @@ -1226,7 +1214,6 @@ alias ArchiveStatusResponseHeader = { /** The access tier inferred response header. */ alias AccessTierInferredResponseHeader = { /** 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. */ - @clientName("AccessTierInferred") @header("x-ms-access-tier-inferred") accessTierInferred: boolean; }; @@ -1234,7 +1221,6 @@ alias AccessTierInferredResponseHeader = { /** The access tier response header. */ alias AccessTierResponseHeader = { /** 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. */ - @clientName("AccessTier") @header("x-ms-access-tier") accessTier: AccessTier; }; @@ -1286,7 +1272,6 @@ alias IsSealedResponseHeader = { /** The tag count response header. */ alias TagCountResponseHeader = { /** The number of tags associated with the blob */ - @clientName("TagCount") @header("x-ms-tag-count") tagCount: int64; }; @@ -1294,7 +1279,6 @@ alias TagCountResponseHeader = { /** 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. */ - @clientName("BlobCommittedBlockCount") @header("x-ms-blob-committed-block-count") blobCommittedBlockCount: int32; }; @@ -1308,7 +1292,6 @@ alias AcceptRangesResponseHeader = { /** 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. */ - @clientName("IsCurrentVersion") @header("x-ms-is-current-version") isCurrentVersion: boolean; }; @@ -1316,7 +1299,6 @@ alias IsCurrentVersionResponseHeader = { /** The lease status response header. */ alias LeaseStatusResponseHeader = { /** The lease status of the blob. */ - @clientName("LeaseStatus") @header("x-ms-lease-status") leaseStatus: LeaseStatus; }; @@ -1324,7 +1306,6 @@ alias LeaseStatusResponseHeader = { /** The lease state response header. */ alias LeaseStateResponseHeader = { /** Lease state of the blob. */ - @clientName("LeaseState") @header("x-ms-lease-state") leaseState: LeaseState; }; @@ -1332,7 +1313,6 @@ alias LeaseStateResponseHeader = { /** The lease duration response header. */ alias LeaseDurationResponseHeader = { /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ - @clientName("LeaseDuration") @header("x-ms-lease-duration") leaseDuration: LeaseDuration; }; @@ -1340,7 +1320,6 @@ alias LeaseDurationResponseHeader = { /** 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. */ - @clientName("CopySource") @header("x-ms-copy-source") copySource: string; }; @@ -1348,7 +1327,6 @@ alias CopySourceResponseHeader = { /** 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 */ - @clientName("CopyProgress") @header("x-ms-copy-progress") copyProgress: string; }; @@ -1356,7 +1334,6 @@ alias CopyProgressResponseHeader = { /** 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 */ - @clientName("CopyStatusDescription") @header("x-ms-copy-status-description") copyStatusDescription: string; }; @@ -1365,7 +1342,6 @@ alias CopyStatusDescriptionResponseHeader = { 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" - @clientName("CopyCompletionTime") @encode("date-time-rfc1123") @header("x-ms-copy-completion-time") copyCompletionTime: utcDateTime; @@ -1374,7 +1350,6 @@ alias CopyCompletionTimeResponseHeader = { /** The blob type response header. */ alias BlobTypeResponseHeader = { /** The type of the blob. */ - @clientName("BlobType") @header("x-ms-blob-type") blobType: BlobType; }; @@ -1382,7 +1357,6 @@ alias BlobTypeResponseHeader = { /** 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. */ - @clientName("ObjectReplicationPolicyId") @header("x-ms-or-policy-id") objectReplicationPolicyId: string; }; @@ -1390,7 +1364,6 @@ alias ObjectReplicationPolicyIdResponseHeader = { /** The range required put page from URL parameter. */ alias RangeRequiredPutPageFromUrlParameter = { /** 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. */ - @clientName("range") @header("x-ms-range") range: string; }; @@ -1398,7 +1371,6 @@ alias RangeRequiredPutPageFromUrlParameter = { /** The source range required put page from URL parameter. */ alias SourceRangeRequiredPutPageFromUrlParameter = { /** 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. */ - @clientName("sourceRange") @header("x-ms-source-range") sourceRange: string; }; @@ -1406,7 +1378,6 @@ alias SourceRangeRequiredPutPageFromUrlParameter = { /** The if seuqnce number equal to parameter. */ alias IfSequenceNumberEqualToParameter = { /** Specify this header value to operate only on a blob if it has the specified sequence number. */ - @clientName("ifSequenceNumberEqualTo") @header("x-ms-if-sequence-number-eq") ifSequenceNumberEqualTo?: int64; }; @@ -1414,7 +1385,6 @@ alias IfSequenceNumberEqualToParameter = { /** 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. */ - @clientName("ifSequenceNumberLessThan") @header("x-ms-if-sequence-number-lt") ifSequenceNumberLessThan?: int64; }; @@ -1422,7 +1392,6 @@ alias IfSequenceNumberLessThanParameter = { /** 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. */ - @clientName("ifSequenceNumberLessThanOrEqualTo") @header("x-ms-if-sequence-number-le") ifSequenceNumberLessThanOrEqualTo?: int64; }; @@ -1430,7 +1399,6 @@ alias IfSequenceNumberLessThanOrEqualToParameter = { /** The blob content-length response header. */ alias BlobContentLengthResponseHeader = { /** The size of the blob in bytes. */ - @clientName("blobContentLength") @header("x-ms-blob-content-length") blobContentLength: int64; }; @@ -1467,7 +1435,6 @@ alias BlobBlocksParameter = { /** The source content CRC64 parameter. */ alias SourceContentCrc64Parameter = { /** Specify the crc64 calculated for the range of bytes that must be read from the copy source. */ - @clientName("sourceContentCrc64") @header("x-ms-source-content-crc64") sourceContentCrc64?: string; }; @@ -1475,7 +1442,6 @@ alias SourceContentCrc64Parameter = { /** The source range parameter. */ alias SourceRangeParameter = { /** Bytes of source data in the specified range. */ - @clientName("sourceRange") @header("x-ms-source-range") sourceRange: string; }; @@ -1483,7 +1449,6 @@ alias SourceRangeParameter = { /** The source URL parameter. */ alias SourceUrlParameter = { /** Specify a URL to the copy source. */ - @clientName("sourceUrl") @header("x-ms-source-url") sourceUrl: string; }; @@ -1499,7 +1464,6 @@ alias BlockIdParameter = { /** The is hierarchical namespace enabled response header. */ alias IsHierarchicalNamespaceEnabledResponseHeader = { /** Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled. */ - @clientName("IsHierarchicalNamespaceEnabled") @header("x-ms-is-hns-enabled") isHierarchicalNamespaceEnabled: boolean; }; @@ -1507,7 +1471,6 @@ alias IsHierarchicalNamespaceEnabledResponseHeader = { /** The account kind response header. */ alias AccountKindResponseHeader = { /** Identifies the account kind */ - @clientName("AccountKind") @header("x-ms-account-kind") accountKind: AccountKind; }; @@ -1515,7 +1478,6 @@ alias AccountKindResponseHeader = { /** The SKU name response header. */ alias SkuNameResponseHeader = { /** Identifies the sku name of the account */ - @clientName("SkuName") @header("x-ms-sku-name") skuName: SkuName; }; @@ -1523,7 +1485,6 @@ alias SkuNameResponseHeader = { /** The access tier required parameter. */ alias AccessTierRequiredParameter = { /** Indicates the tier to be set on the blob. */ - @clientName("AccessTier") @header("x-ms-access-tier") accessTier: AccessTier; }; @@ -1531,7 +1492,6 @@ alias AccessTierRequiredParameter = { /** The copy ID parameter. */ alias CopyIdParameter = { /** The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation. */ - @clientName("CopyId") @header("x-ms-copy-id") copyId: string; }; @@ -1539,7 +1499,6 @@ alias CopyIdParameter = { /** 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. */ - @clientName("ContentCrc64") @header("x-ms-content-crc64") contentCrc64: string; }; @@ -1547,7 +1506,6 @@ alias ContentCrc64ResponseHeader = { /** The copy status response header. */ alias CopyStatusResponseHeader = { /** State of the copy operation identified by x-ms-copy-id. */ - @clientName("CopyStatus") @header("x-ms-copy-status") copyStatus: CopyStatus; }; @@ -1555,7 +1513,6 @@ alias CopyStatusResponseHeader = { /** 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. */ - @clientName("CopyId") @header("x-ms-copy-id") copyId: string; }; @@ -1563,7 +1520,6 @@ alias CopyIdResponseHeader = { /** The seal blob parameter. */ alias SealBlobParameter = { /** Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer. */ - @clientName("SealBlob") @header("x-ms-seal-blob") sealBlob?: boolean; }; @@ -1572,7 +1528,6 @@ alias SealBlobParameter = { 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" - @clientName("sourceIfUnmodifiedSince") @encode("date-time-rfc1123") @header("x-ms-source-if-unmodified-since") sourceIfUnmodifiedSince?: utcDateTime; @@ -1581,7 +1536,6 @@ alias SourceIfUnmodifiedSinceParameter = { /** The rehydrate priority parameter. */ alias RehydratePriorityParameter = { /** Optional: Indicates the priority with which to rehydrate an archived blob. */ - @clientName("rehydratePriority") @header("x-ms-rehydrate-priority") rehydratePriority?: RehydratePriority; }; @@ -1589,7 +1543,6 @@ alias RehydratePriorityParameter = { /** The snapshot response header. */ alias SnapshotResponseHeader = { /** Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot. */ - @clientName("Snapshot") @header("x-ms-snapshot") snapshot: string; }; @@ -1597,7 +1550,6 @@ alias SnapshotResponseHeader = { /** The lease time response header. */ alias LeaseTimeResponseHeader = { /** Approximate time remaining in the lease period, in seconds. */ - @clientName("LeaseTime") @header("x-ms-lease-time") leaseTime: int32; }; @@ -1613,7 +1565,6 @@ alias LeaseBreakPeriodParameter = { /** 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. */ - @clientName("leaseId") @header("x-ms-lease-id") leaseId: string; }; @@ -1621,7 +1572,6 @@ alias LeaseIdRequiredParameter = { /** The lease ID response header. */ alias LeaseIdResponseHeader = { /** Uniquely identifies a blobs' lease */ - @clientName("LeaseId") @header("x-ms-lease-id") leaseId: string; }; @@ -1629,7 +1579,6 @@ alias LeaseIdResponseHeader = { /** 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 */ - @clientName("EncryptionScope") @header("x-ms-encryption-scope") encryptionScope: string; }; @@ -1637,7 +1586,6 @@ alias EncryptionScopeResponseHeader = { /** 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. */ - @clientName("EncryptionKeySha256") @header("x-ms-encryption-key-sha256") encryptionKeySha256: string; }; @@ -1653,7 +1601,6 @@ alias IsServerEncryptedResponseHeader = { /** The legal hold response header. */ alias LegalHoldResponseHeader = { /** Specifies the legal hold status to set on the blob. */ - @clientName("legalHold") @header("x-ms-legal-hold") legalHold: boolean; }; @@ -1661,7 +1608,6 @@ alias LegalHoldResponseHeader = { /** The legal hold required parameter. */ alias LegalHoldRequiredParameter = { /** Required. Specifies the legal hold status to set on the blob. */ - @clientName("legalHold") @header("x-ms-legal-hold") legalHold: boolean; }; @@ -1669,7 +1615,6 @@ alias LegalHoldRequiredParameter = { /** The immutability policy mode response header. */ alias ImmutabilityPolicyModeResponseHeader = { /** Indicates the immutability policy mode of the blob. */ - @clientName("ImmutabilityPolicyMode") @header("x-ms-immutability-policy-mode") immutabilityPolicyMode: BlobImmutabilityPolicyMode; }; @@ -1687,7 +1632,6 @@ alias ImmutabilityPolicyExpiryResponseHeader = { /** 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. */ - @clientName("BlobSequenceNumber") @header("x-ms-blob-sequence-number") blobSequenceNumber: int64; }; @@ -1703,7 +1647,6 @@ alias BlobExpiryTimeParameter = { /** The blob expiration options parameter. */ alias BlobExpiryOptionsParameter = { /** Required. Indicates mode of the expiry time */ - @clientName("ExpiryOptions") @header("x-ms-expiry-option") expiryOptions: BlobExpiryOptions; }; @@ -1771,7 +1714,6 @@ alias ContentLengthResponseHeader = { /** 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. */ - @clientName("VersionId") @header("x-ms-version-id") versionId: string; }; @@ -1779,7 +1721,6 @@ alias VersionIdResponseHeader = { /** The version response header. */ alias VersionResponseHeader = { /** 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. */ - @clientName("Version") @header("x-ms-version") version: string; }; @@ -1789,7 +1730,6 @@ alias CreationTimeResponseHeader = { /** Returns the date and time the blob was created. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") - @clientName("CreationTime") @header("x-ms-creation-time") creationTime: utcDateTime; }; @@ -1806,7 +1746,6 @@ alias LastModifiedResponseHeader = { /** The request ID response header. */ alias RequestIdResponseHeader = { /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */ - @clientName("RequestId") @header("x-ms-request-id") requestId: string; }; @@ -1814,7 +1753,6 @@ alias RequestIdResponseHeader = { /** The client request ID response header. */ alias ClientRequestIdResponseHeader = { /** If a client request id header is sent in the request, this header will be present in the response with the same value. */ - @clientName("ClientRequestId") @header("x-ms-client-request-id") clientRequestId?: string; }; @@ -1837,7 +1775,6 @@ alias EtagResponseHeader = { /** 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. */ - @clientName("copySourceTags") @header("x-ms-copy-source-tags") copySourceTags?: string; }; @@ -1858,7 +1795,6 @@ union BlobCopySourceTags { alias CopySourceAuthorizationParameter = { /** Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source. */ @header("x-ms-copy-source-authorization") - @clientName("copySourceAuthorization") copySourceAuthorization?: string; }; @@ -1866,7 +1802,6 @@ alias CopySourceAuthorizationParameter = { alias CopySourceBlobPropertiesParameter = { /** Optional, default is true. Indicates if properties from the source blob should be copied. */ @header("x-ms-copy-source-blob-properties") - @clientName("copySourceBlobProperties") copySourceBlobProperties?: boolean; }; @@ -1874,7 +1809,6 @@ alias CopySourceBlobPropertiesParameter = { 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") - @clientName("copySource") copySource: string; }; @@ -1882,7 +1816,6 @@ alias CopySourceParameter = { 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") - @clientName("sourceContentMD5") sourceContentMd5?: string; }; @@ -1890,7 +1823,6 @@ alias SourceContentMd5Parameter = { 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") - @clientName("sourceIfTags") sourceIfTags?: string; }; @@ -1898,7 +1830,6 @@ alias SourceIfTagsParameter = { alias SourceIfMatchParameter = { /** Specify an ETag value to operate only on blobs with a matching value. */ @header("x-ms-source-if-match") - @clientName("sourceIfMatch") sourceIfMatch?: string; }; @@ -1906,7 +1837,6 @@ alias SourceIfMatchParameter = { 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") - @clientName("sourceIfNoneMatch") sourceIfNoneMatch?: string; }; @@ -1915,7 +1845,6 @@ 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") - @clientName("sourceIfModifiedSince") @encode("date-time-rfc1123") sourceIfModifiedSince?: utcDateTime; }; @@ -1947,7 +1876,6 @@ alias ContentMd5Parameter = { /** The legal hold optional parameter. */ alias LegalHoldOptionalParameter = { /** Specified if a legal hold should be set on the blob. */ - @clientName("legalHold") @header("x-ms-legal-hold") legalHold?: boolean; }; @@ -1955,7 +1883,6 @@ alias LegalHoldOptionalParameter = { /** The immutability policy mode parameter. */ alias ImmutabilityPolicyModeParameter = { /** Specifies the immutability policy mode to set on the blob. */ - @clientName("immutabilityPolicyMode") @header("x-ms-immutability-policy-mode") immutabilityPolicyMode?: BlobImmutabilityPolicyMode; }; @@ -1964,7 +1891,6 @@ alias ImmutabilityPolicyModeParameter = { 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" - @clientName("immutabilityPolicyExpiry") @encode("date-time-rfc1123") @header("x-ms-immutability-policy-until-date") immutabilityPolicyExpiry?: string; @@ -1981,7 +1907,6 @@ alias BlobTagsHeaderParameter = { /** 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. */ - @clientName("blobSequenceNumber") @header("x-ms-blob-sequence-number") blobSequenceNumber?: int64; }; @@ -1989,7 +1914,6 @@ alias BlobSequenceNumberParameter = { /** The blob content length parameter. */ alias BlobContentLengthRequiredParameter = { /** 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. */ - @clientName("blobContentLength") @header("x-ms-blob-content-length") blobContentLength: int64; }; @@ -1997,7 +1921,6 @@ alias BlobContentLengthRequiredParameter = { /** 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. */ - @clientName("encryptionScope") @header("x-ms-encryption-scope") encryptionScope?: string; }; @@ -2005,7 +1928,6 @@ alias EncryptionScopeParameter = { /** 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. */ - @clientName("blobContentDisposition") @header("x-ms-blob-content-disposition") blobContentDisposition?: string; }; @@ -2013,7 +1935,6 @@ alias BlobContentDispositionParameter = { /** 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. */ - @clientName("blobCacheControl") @header("x-ms-blob-cache-control") blobCacheControl?: string; }; @@ -2021,7 +1942,6 @@ alias BlobCacheControlParameter = { /** 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. */ - @clientName("blobContentMD5") @header("x-ms-blob-content-md5") blobContentMd5?: string; }; @@ -2029,7 +1949,6 @@ alias BlobContentMd5Parameter = { /** 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. */ - @clientName("blobContentLanguage") @header("x-ms-blob-content-language") blobContentLanguage?: string; }; @@ -2037,7 +1956,6 @@ alias BlobContentLanguageParameter = { /** 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. */ - @clientName("blobContentEncoding") @header("x-ms-blob-content-encoding") blobContentEncoding?: string; }; @@ -2045,7 +1963,6 @@ alias BlobContentEncodingParameter = { /** 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. */ - @clientName("blobContentType") @header("x-ms-blob-content-type") blobContentType?: string; }; @@ -2126,7 +2043,6 @@ union BlobDeleteType { /** The delete snapshot parameter. */ alias DeleteSnapshotsParameter = { /** 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 */ - @clientName("deleteSnapshots") @header("x-ms-delete-snapshots") deleteSnapshots?: DeleteSnapshotsOptionType; }; @@ -2146,7 +2062,6 @@ union DeleteSnapshotsOptionType { /** 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. */ - @clientName("encryptionAlgorithm") @header("x-ms-encryption-algorithm") encryptionAlgorithm?: string; }; @@ -2154,7 +2069,6 @@ alias EncryptionAlgorithmParameter = { /** 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. */ - @clientName("encryptionKeySha256") @header("x-ms-encryption-key-sha256") encryptionKeySha256?: string; }; @@ -2162,7 +2076,6 @@ alias EncryptionKeySha256Parameter = { /** 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. */ - @clientName("encryptionKey") @header("x-ms-encryption-key") encryptionKey?: string; }; @@ -2170,7 +2083,6 @@ alias EncryptionKeyParameter = { /** The If-Tags parameters. */ alias IfTagsParameter = { /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ - @clientName("ifTags") @header("x-ms-if-tags") ifTags?: string; }; @@ -2178,7 +2090,6 @@ alias IfTagsParameter = { /** The If-Match parameter. */ alias IfMatchParameter = { /** A condition that must be met in order for the request to be processed. */ - @clientName("ifMatch") @header("If-Match") ifMatch?: string; }; @@ -2186,7 +2097,6 @@ alias IfMatchParameter = { /** The If-None-Match parameter. */ alias IfNoneMatchParameter = { /** A condition that must be met in order for the request to be processed. */ - @clientName("ifNoneMatch") @header("If-None-Match") ifNoneMatch?: string; }; @@ -2206,7 +2116,6 @@ alias GetRangeContentMd5Parameter = { /** The range parameter. */ alias RangeParameter = { /** Return only the bytes of the blob in the specified range. */ - @clientName("range") @header("x-ms-range") range?: string; }; @@ -2345,7 +2254,6 @@ alias LeaseDurationParameter = { /** The source lease ID header parameter. */ alias SourceLeaseIdParameter = { /** A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match. */ - @clientName("sourceLeaseId") @header("x-ms-source-lease-id") sourceLeaseId?: string; }; @@ -2353,7 +2261,6 @@ alias SourceLeaseIdParameter = { /** The source container name header parameter. */ alias SourceContainerNameParameter = { /** Required. Specifies the name of the container to rename. */ - @clientName("SourceContainerName") @header("x-ms-source-container-name") sourceContainerName: string; }; @@ -2361,7 +2268,6 @@ alias SourceContainerNameParameter = { /** The deleted container name header. */ alias DeletedContainerNameParameter = { /** Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore. */ - @clientName("DeletedContainerName") @header("x-ms-deleted-container-name") deletedContainerName?: string; }; @@ -2369,7 +2275,6 @@ alias DeletedContainerNameParameter = { /** The deleted container version header. */ alias DeletedContainerVersionParameter = { /** Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore. */ - @clientName("DeletedContainerVersion") @header("x-ms-deleted-container-version") deletedContainerVersion?: string; }; @@ -2394,7 +2299,6 @@ 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("date-time-rfc1123") - @clientName("ifUnmodifiedSince") @header("If-Unmodified-Since") ifUnmodifiedSince?: utcDateTime; }; @@ -2404,7 +2308,6 @@ 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("date-time-rfc1123") - @clientName("ifModifiedSince") @header("If-Modified-Since") ifModifiedSince?: utcDateTime; }; @@ -2486,14 +2389,6 @@ alias PrefixParameter = { @query prefix?: string; }; -/** The client request ID parameter. */ -alias ClientRequestIdParameter = { - /** 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. */ - @clientName("requestId") - @header("x-ms-client-request-id") - clientRequestId?: string; -}; - /** The timeout parameter. */ alias TimeoutParameter = { @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") @@ -2501,13 +2396,6 @@ alias TimeoutParameter = { timeout?: int32; }; -/** The API version parameter. */ -alias ApiVersionParameter = { - /** Specifies the version of the operation to use for this request. */ - @header("x-ms-version") - version: string; -}; - /** The required lease ID header. */ alias ProposedLeaseIdRequiredParameter = { /** Required. The proposed lease ID for the container. */ From fda2a85b292ab0d24145401fd2498e9aa9317ad1 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Mon, 7 Oct 2024 18:42:59 -0700 Subject: [PATCH 050/129] clean up headers and template --- .../storage/Microsoft.BlobStorage/models.tsp | 21 ---------------- .../storage/Microsoft.BlobStorage/routes.tsp | 24 ++++++++++++++----- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 7baf55d1a97c..2618183c8777 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -1718,13 +1718,6 @@ alias VersionIdResponseHeader = { versionId: string; }; -/** The version response header. */ -alias VersionResponseHeader = { - /** 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. */ - @header("x-ms-version") - version: string; -}; - /** The creation time response header. */ alias CreationTimeResponseHeader = { /** Returns the date and time the blob was created. */ @@ -1743,20 +1736,6 @@ alias LastModifiedResponseHeader = { lastModified: utcDateTime; }; -/** The request ID response header. */ -alias RequestIdResponseHeader = { - /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */ - @header("x-ms-request-id") - requestId: string; -}; - -/** The client request ID response header. */ -alias ClientRequestIdResponseHeader = { - /** If a client request id header is sent in the request, this header will be present in the response with the same value. */ - @header("x-ms-client-request-id") - clientRequestId?: string; -}; - /** The Date response header */ alias DateResponseHeader = { /** UTC date/time value generated by the service that indicates the time at which the response was initiated */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index b513f8ee197f..30bd7a2ff4d5 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -14,13 +14,25 @@ using Azure.Core; /** 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, - TResponse extends TypeSpec.Reflection.Model, + TParams extends TypeSpec.Reflection.Model | void, + TResponse extends TypeSpec.Reflection.Model | void, TError = StorageError ->(...TParams, ...ApiVersionParameter, ...ClientRequestIdParameter): (TResponse & - VersionResponseHeader & - RequestIdResponseHeader & - ClientRequestIdResponseHeader) | TError; +>( + ...TParams, + + /** Specifies the version of the operation to use for this request. */ + @header("x-ms-version") + version: string, + + ...ClientRequestIdHeader, +): (TResponse & { + /** 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. */ + @header("x-ms-version") + version: string; + + ...RequestIdResponseHeader; + ...ClientRequestIdHeader; +}) | TError; #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." interface Service { From e112ea6c874812c0211d0403c91ff2b347d7273e Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Thu, 10 Oct 2024 15:14:52 -0700 Subject: [PATCH 051/129] add rust configs --- specification/storage/Microsoft.BlobStorage/tspconfig.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml index 08ab9f6ef6c7..54392d478832 100644 --- a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml +++ b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml @@ -31,6 +31,9 @@ options: "@azure-tools/typespec-java": package-dir: "azure-storage-blob" namespace: com.azure.storage.blob + "@azure-tools/typespec-rust": + package-dir: "storage_blob" + crate-name: "storage_blob" linter: extends: - "@azure-tools/typespec-azure-core/all" From e914450c801c90150099c46454aa468302c2be0a Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Thu, 10 Oct 2024 15:16:39 -0700 Subject: [PATCH 052/129] clean up and fix models --- .../storage/Microsoft.BlobStorage/models.tsp | 33 +++---------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 2618183c8777..36c2a59b20e4 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -703,6 +703,7 @@ model BlobMetadata is Record { } /** The blob tags. */ +@Xml.name("Tag") model BlobTag { /** The key of the tag. */ @Xml.name("Key") key: string; @@ -852,7 +853,7 @@ model ListBlobsFlatSegmentResponse { containerName: string; /** The prefix of the blobs. */ - @Xml.name("Prefix") rrefix?: string; + @Xml.name("Prefix") prefix?: string; /** The marker of the blobs. */ @Xml.name("Marker") marker?: string; @@ -860,6 +861,7 @@ model ListBlobsFlatSegmentResponse { /** The max results of the blobs. */ @Xml.name("MaxResults") maxResults?: int32; + // TODO: is this correct? Looks like the name is wrong...should be "Blobs" /** The blob segment. */ @Xml.name("Segment") segment: BlobFlatListSegment; @@ -905,13 +907,6 @@ model ClearRange { @Xml.name("End") end: int64; } -/** The blob tags body parameter. */ -alias BlobTagsBodyParameter = { - /** The blob tags. */ - @body - tags: BlobTags; -}; - /** Represents blob tags. */ @Xml.name("Tags") model BlobTags { @@ -1053,13 +1048,6 @@ alias BlobContentMd5ResponseHeader = { blobContentMd5: string; }; -/** The query request body parameter. */ -alias QueryRequestParameter = { - /** The query request */ - @body - queryRequest: QueryRequest; -}; - /** 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. */ @@ -1426,12 +1414,6 @@ union BlockListType { string, } -/** The blob blocks body parameter. */ -alias BlobBlocksParameter = { - /** Blob Blocks. */ - @body blocks: BlockLookupList; -}; - /** The source content CRC64 parameter. */ alias SourceContentCrc64Parameter = { /** Specify the crc64 calculated for the range of bytes that must be read from the copy source. */ @@ -2166,6 +2148,7 @@ model ListBlobsHierarchySegmentResponse { /** The max results of the blobs. */ @Xml.name("MaxResults") maxResults?: int32; + // TODO: Is this correct? Looks like it should be blobs /** The blob segment. */ @Xml.name("Segment") segment: BlobHierarchyListSegment; @@ -2258,14 +2241,6 @@ alias DeletedContainerVersionParameter = { deletedContainerVersion?: string; }; -/** The container ACL parameter. */ -alias ContainerAclParameter = { - /** The access control list for the container. */ - #suppress "@azure-tools/typespec-azure-core/request-body-problem" "Existing API" - @body - acl: SignedIdentifiers; -}; - /** The container name header */ alias ContainerNameParameter = { /** The name of the container. */ From 95ee3bf09b30b4cd13e366d92cd24e93464d3fef Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Thu, 10 Oct 2024 15:17:14 -0700 Subject: [PATCH 053/129] fix routes --- .../storage/Microsoft.BlobStorage/routes.tsp | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 30bd7a2ff4d5..46bec4229a94 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -298,7 +298,12 @@ interface Container { setAccessPolicy is StorageOperation< { ...ContainerNameParameter; - ...ContainerAclParameter; + + /** The access control list for the container. */ + #suppress "@azure-tools/typespec-azure-core/request-body-problem" "Existing API" + @body + acl: SignedIdentifiers; + ...TimeoutParameter; ...IfModifiedSinceParameter; ...IfUnmodifiedSinceParameter; @@ -1233,7 +1238,10 @@ interface Blob { @route("/{containerName}/{blob}?comp=query") query is StorageOperation< { - ...QueryRequestParameter; + /** The query request */ + @body + queryRequest: QueryRequest; + ...ContainerNameParameter; ...BlobNameParameter; ...SnapshotParameter; @@ -1320,7 +1328,10 @@ interface Blob { ...ContentMd5Parameter; ...ContentCrc64Parameter; ...IfTagsParameter; - ...BlobTagsBodyParameter; + + /** The blob tags. */ + @body + tags: BlobTags; }, { @statusCode statusCode: 204; @@ -2016,7 +2027,9 @@ interface BlockBlob { @route("?comp=blocklist") commitBlockList is StorageOperation< { - ...BlobBlocksParameter; + /** Blob Blocks. */ + @body blocks: BlockLookupList; + ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; From 982a0894c15ae75a6afac2c3b7332a4b967c6b36 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Thu, 10 Oct 2024 15:18:48 -0700 Subject: [PATCH 054/129] regen openapi --- .../stable/2021-12-02/blob.json | 963 +++++++----------- 1 file changed, 386 insertions(+), 577 deletions(-) diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 9c854713cc57..87d34b9fa795 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -82,12 +82,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -99,11 +94,13 @@ "headers": { "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -140,12 +137,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "body", @@ -163,11 +155,13 @@ "headers": { "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -204,12 +198,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "body", @@ -230,11 +219,13 @@ "headers": { "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -288,12 +279,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -340,7 +326,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-default-encryption-scope": { "type": "string", @@ -454,7 +441,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -542,12 +530,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -570,11 +553,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -627,12 +612,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "body", @@ -655,11 +635,13 @@ "headers": { "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -729,12 +711,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -748,11 +725,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -921,12 +900,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -1025,7 +999,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-copy-completion-time": { "type": "string", @@ -1241,7 +1216,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -1357,7 +1333,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-copy-completion-time": { "type": "string", @@ -1573,7 +1550,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -1653,7 +1631,7 @@ "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": "blobContentMD5" + "x-ms-client-name": "blobContentMd5" }, { "name": "x-ms-blob-content-encoding", @@ -1738,12 +1716,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -1771,11 +1744,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -1821,12 +1796,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -1840,11 +1810,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -2019,12 +1991,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -2038,11 +2005,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -2177,12 +2146,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -2419,7 +2383,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-copy-completion-time": { "type": "string", @@ -2672,7 +2637,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -2772,12 +2738,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -2794,11 +2755,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -2892,12 +2855,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "tags", @@ -2920,11 +2878,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -3059,12 +3019,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "queryRequest", @@ -3173,7 +3128,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-copy-completion-time": { "type": "string", @@ -3332,7 +3288,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -3440,7 +3397,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-copy-completion-time": { "type": "string", @@ -3599,7 +3557,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -3668,12 +3627,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -3696,11 +3650,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -3754,12 +3710,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -3812,11 +3763,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -3888,12 +3841,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "acl", @@ -3928,11 +3876,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -3967,7 +3917,7 @@ "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" + "x-ms-client-name": "deletedContainerName" }, { "name": "x-ms-deleted-container-version", @@ -3975,7 +3925,7 @@ "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" + "x-ms-client-name": "deletedContainerVersion" }, { "name": "timeout", @@ -3994,12 +3944,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -4013,11 +3958,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -4052,7 +3999,7 @@ "description": "Required. Specifies the name of the container to rename.", "required": true, "type": "string", - "x-ms-client-name": "SourceContainerName" + "x-ms-client-name": "sourceContainerName" }, { "name": "x-ms-source-lease-id", @@ -4079,12 +4026,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -4098,11 +4040,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -4201,12 +4145,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -4223,11 +4162,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -4308,12 +4249,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -4336,7 +4272,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-lease-id": { "type": "string", @@ -4344,7 +4281,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -4416,12 +4354,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -4444,11 +4377,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -4520,12 +4455,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -4548,7 +4478,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-lease-id": { "type": "string", @@ -4556,7 +4487,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -4629,12 +4561,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -4657,7 +4584,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-lease-id": { "type": "string", @@ -4670,7 +4598,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -4750,12 +4679,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -4778,7 +4702,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-lease-id": { "type": "string", @@ -4791,7 +4716,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -4938,12 +4864,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -4960,11 +4881,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -5118,12 +5041,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -5140,11 +5058,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -5182,12 +5102,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -5243,11 +5158,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-sku-name": { "type": "string", @@ -5378,7 +5295,7 @@ "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": "blobContentMD5" + "x-ms-client-name": "blobContentMd5" }, { "name": "x-ms-blob-cache-control", @@ -5530,12 +5447,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -5562,7 +5474,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-encryption-key-sha256": { "type": "string", @@ -5574,7 +5487,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -5780,12 +5694,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "body", @@ -5827,7 +5736,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-content-crc64": { "type": "string", @@ -5843,7 +5753,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -5997,12 +5908,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -6030,11 +5936,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -6112,7 +6020,7 @@ "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" + "x-ms-client-name": "sourceContentMd5" }, { "name": "x-ms-source-content-crc64", @@ -6290,12 +6198,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -6327,7 +6230,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-content-crc64": { "type": "string", @@ -6343,7 +6247,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -6475,12 +6380,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -6511,11 +6411,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -6666,12 +6568,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -6702,11 +6599,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -6853,12 +6752,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -6886,11 +6780,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -7039,12 +6935,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -7072,11 +6963,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -7190,12 +7083,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -7218,7 +7106,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-copy-id": { "type": "string", @@ -7262,7 +7151,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -7348,7 +7238,7 @@ "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": "blobContentMD5" + "x-ms-client-name": "blobContentMd5" }, { "name": "x-ms-blob-cache-control", @@ -7516,12 +7406,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -7548,7 +7433,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-encryption-key-sha256": { "type": "string", @@ -7560,7 +7446,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -7653,7 +7540,7 @@ "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": "blobContentMD5" + "x-ms-client-name": "blobContentMd5" }, { "name": "x-ms-blob-cache-control", @@ -7929,12 +7816,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "body", @@ -7971,7 +7853,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-encryption-key-sha256": { "type": "string", @@ -7983,7 +7866,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -8085,7 +7969,7 @@ "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": "blobContentMD5" + "x-ms-client-name": "blobContentMd5" }, { "name": "x-ms-blob-cache-control", @@ -8324,7 +8208,7 @@ "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" + "x-ms-client-name": "sourceContentMd5" }, { "name": "x-ms-tags", @@ -8375,12 +8259,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -8402,7 +8281,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-encryption-key-sha256": { "type": "string", @@ -8414,7 +8294,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -8547,12 +8428,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "body", @@ -8580,7 +8456,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-content-crc64": { "type": "string", @@ -8596,7 +8473,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -8781,12 +8659,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "body", @@ -8838,7 +8711,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-content-crc64": { "type": "string", @@ -8854,7 +8728,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -8936,7 +8811,7 @@ "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" + "x-ms-client-name": "sourceContentMd5" }, { "name": "x-ms-source-content-crc64", @@ -9063,12 +8938,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -9105,7 +8975,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-content-crc64": { "type": "string", @@ -9121,7 +8992,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -9240,12 +9112,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -9272,11 +9139,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -9565,7 +9434,7 @@ "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" + "x-ms-client-name": "sealBlob" }, { "name": "x-ms-immutability-policy-until-date", @@ -9627,12 +9496,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -9655,7 +9519,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-copy-id": { "type": "string", @@ -9699,7 +9564,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -9756,7 +9622,7 @@ "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" + "x-ms-client-name": "copyId" }, { "name": "x-ms-lease-id", @@ -9775,12 +9641,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -9794,11 +9655,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -10043,7 +9906,7 @@ "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" + "x-ms-client-name": "sourceContentMd5" }, { "name": "x-ms-tags", @@ -10137,12 +10000,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -10169,7 +10027,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-content-crc64": { "type": "string", @@ -10221,7 +10080,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -10298,7 +10158,7 @@ } ] }, - "x-ms-client-name": "ExpiryOptions" + "x-ms-client-name": "expiryOptions" }, { "name": "x-ms-expiry-time", @@ -10317,12 +10177,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -10345,11 +10200,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -10457,12 +10314,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -10485,7 +10337,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-immutability-policy-mode": { "type": "string", @@ -10524,7 +10377,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -10580,12 +10434,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -10599,11 +10448,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -10718,12 +10569,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -10746,7 +10592,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-lease-id": { "type": "string", @@ -10754,7 +10601,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -10861,12 +10709,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -10889,7 +10732,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-lease-time": { "type": "integer", @@ -10898,7 +10742,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -11012,12 +10857,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -11040,7 +10880,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-lease-id": { "type": "string", @@ -11048,7 +10889,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -11154,12 +10996,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -11182,11 +11019,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -11292,12 +11131,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -11320,7 +11154,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-lease-id": { "type": "string", @@ -11328,7 +11163,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -11392,12 +11228,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -11411,7 +11242,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-legal-hold": { "type": "boolean", @@ -11419,7 +11251,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -11557,12 +11390,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -11585,7 +11413,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-encryption-key-sha256": { "type": "string", @@ -11597,7 +11426,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -11739,12 +11569,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -11767,11 +11592,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -11924,7 +11751,7 @@ } ] }, - "x-ms-client-name": "AccessTier" + "x-ms-client-name": "accessTier" }, { "name": "x-ms-rehydrate-priority", @@ -11979,12 +11806,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -11993,11 +11815,13 @@ "headers": { "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -12010,11 +11834,13 @@ "headers": { "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -12062,12 +11888,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -12123,11 +11944,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-sku-name": { "type": "string", @@ -12217,12 +12040,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -12231,11 +12049,13 @@ "headers": { "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -12327,12 +12147,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -12349,11 +12164,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -12431,7 +12248,7 @@ "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" + "x-ms-client-name": "sourceContentMd5" }, { "name": "x-ms-source-content-crc64", @@ -12540,12 +12357,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -12563,7 +12375,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-content-crc64": { "type": "string", @@ -12579,7 +12392,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -12668,7 +12482,7 @@ "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": "blobContentMD5" + "x-ms-client-name": "blobContentMd5" }, { "name": "Content-MD5", @@ -12936,12 +12750,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "blocks", @@ -12977,7 +12786,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-content-crc64": { "type": "string", @@ -12993,7 +12803,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-request-server-encrypted": { "type": "boolean", @@ -13102,12 +12913,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -13138,11 +12944,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -13203,12 +13011,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -13220,11 +13023,13 @@ "headers": { "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -13255,12 +13060,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -13316,7 +13116,8 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-is-hns-enabled": { "type": "boolean", @@ -13324,7 +13125,8 @@ }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-sku-name": { "type": "string", @@ -13405,12 +13207,7 @@ "x-ms-client-name": "version" }, { - "name": "x-ms-client-request-id", - "in": "header", - "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.", - "required": false, - "type": "string", - "x-ms-client-name": "requestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -13427,11 +13224,13 @@ }, "x-ms-client-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "x-ms-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, server-generated string identifier for the request." }, "x-ms-version": { "type": "string", @@ -14776,7 +14575,7 @@ "type": "string", "description": "The container name." }, - "rrefix": { + "prefix": { "type": "string", "description": "The prefix of the blobs." }, @@ -15609,6 +15408,16 @@ } }, "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": "uuid", + "x-ms-parameter-location": "method", + "x-ms-client-name": "clientRequestId" + }, "PremiumPageBlobAccessTierOptional": { "name": "x-ms-access-tier", "in": "header", From 8eb9093f2ae67bfd30ac76b9c0654ef2c387854b Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 11 Oct 2024 17:07:31 -0700 Subject: [PATCH 055/129] add content type to template --- specification/storage/Microsoft.BlobStorage/routes.tsp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 46bec4229a94..3e3898779e53 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -18,6 +18,11 @@ op StorageOperation< TResponse extends TypeSpec.Reflection.Model | void, TError = StorageError >( + /** Content-Type header */ + #suppress "@typespec/http/content-type-ignored" "Template for exisitng API" + @header("Content-Type") + contentType: "application/xml", + ...TParams, /** Specifies the version of the operation to use for this request. */ @@ -26,6 +31,11 @@ op StorageOperation< ...ClientRequestIdHeader, ): (TResponse & { + /** Content-Type header */ + #suppress "@typespec/http/content-type-ignored" "Template for exisitng API" + @header("Content-Type") + contentType: "application/xml"; + /** 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. */ @header("x-ms-version") version: string; From 94198b568dc2364bee3e1e4708d8f7f90df9f69e Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Mon, 14 Oct 2024 15:46:21 -0700 Subject: [PATCH 056/129] revert - package.json update --- package-lock.json | 666 ++++++++++++++++++++++++++++++++++++++-------- package.json | 8 +- 2 files changed, 556 insertions(+), 118 deletions(-) diff --git a/package-lock.json b/package-lock.json index e54bdd8e9b3c..feb4b24b4a7a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,9 @@ "packages": { "": { "name": "azure-rest-api-specs", + "dependencies": { + "@azure-tools/typespec-python": "^0.35.1" + }, "devDependencies": { "@azure-tools/typespec-apiview": "0.4.9", "@azure-tools/typespec-autorest": "0.46.0", @@ -22,6 +25,7 @@ "@typespec/openapi3": "0.60.0", "@typespec/rest": "0.60.0", "@typespec/versioning": "0.60.1", + "@typespec/xml": "0.60.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", "oav": "^3.3.7", "prettier": "~3.3.3", @@ -410,7 +414,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "dev": true, "license": "MIT" }, "node_modules/@apidevtools/swagger-parser": { @@ -884,7 +887,6 @@ "version": "0.46.0", "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.46.0.tgz", "integrity": "sha512-LCIvxQgjczWUq/wi6fzKBqYHWJYD0hRLA8wBPzFasriHdBDHjpZ6vgTPmApzt0H5ArZX92Ar53Q5+ZXD9ktMUg==", - "dev": true, "license": "MIT", "engines": { "node": ">=18.0.0" @@ -904,7 +906,6 @@ "version": "0.46.0", "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.46.0.tgz", "integrity": "sha512-BNE31enSHWtWlrdIKShBS6CNFGk3OYmHSBnWqobcFJkTGXC090EoV2u6otn4BMI99fZRSR4gpwp/kYU9KLE9Jw==", - "dev": true, "license": "MIT", "engines": { "node": ">=18.0.0" @@ -930,7 +931,6 @@ "version": "0.46.1", "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-resource-manager/-/typespec-azure-resource-manager-0.46.1.tgz", "integrity": "sha512-8md8AwnxoYVkDBavQL5dbToUTS10PTSkcF+emd9BKEdnF9MKuA542vZudzaQOz2BzFbArMVUE/PLm2mhuwRkLw==", - "dev": true, "license": "MIT", "dependencies": { "change-case": "~5.4.4", @@ -952,7 +952,6 @@ "version": "0.46.0", "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-rulesets/-/typespec-azure-rulesets-0.46.0.tgz", "integrity": "sha512-HssO+0ARHbnuLhRiT/7l5DF2hV91Jf/MmsSPdOsDMbVZG26YsB8JD1MiBqs9VJZjB+1xn2DiimYrgqF4n9aDvw==", - "dev": true, "license": "MIT", "engines": { "node": ">=18.0.0" @@ -998,7 +997,6 @@ "version": "0.46.0", "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.46.0.tgz", "integrity": "sha512-Ss0dNcOeTyc9CBsNFV6OToLV7OOKidAfeewmKePtY2qAHW+CqWZnVvUHunpFt2jFs6CqjFpgU9g+1wPbLCFj9A==", - "dev": true, "license": "MIT", "dependencies": { "change-case": "~5.4.4", @@ -1022,6 +1020,76 @@ "integrity": "sha512-O+FhUAt1R4z/bzflY1x90fk5ap9vYiw9mue9Gn7mCyjSueVeV3la0etaqsFMQM6D+IXpelC5567P8Lbvaxmx3Q==", "dev": true }, + "node_modules/@azure-tools/typespec-python": { + "version": "0.35.1", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-python/-/typespec-python-0.35.1.tgz", + "integrity": "sha512-660sRF7FZMadBQX+GHkLCGUMcp6xVnULV0/l530CiggqHJxL+t+A3S4N1VKbTFIya/IPYqzGI+zJVCpKz8HbHw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@typespec/http-client-python": "0.2.0", + "@typespec/openapi3": "~0.60.0", + "fs-extra": "~11.2.0", + "js-yaml": "~4.1.0", + "semver": "~7.6.2", + "tsx": "4.17.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@azure-tools/typespec-autorest": ">=0.46.0 <1.0.0", + "@azure-tools/typespec-azure-core": ">=0.46.0 <1.0.0", + "@azure-tools/typespec-azure-resource-manager": ">=0.46.0 <1.0.0", + "@azure-tools/typespec-azure-rulesets": ">=0.46.0 <3.0.0", + "@azure-tools/typespec-client-generator-core": ">=0.46.2 <1.0.0", + "@typespec/compiler": ">=0.60.0 <1.0.0", + "@typespec/http": ">=0.60.0 <1.0.0", + "@typespec/openapi": ">=0.60.0 <1.0.0", + "@typespec/rest": ">=0.60.0 <1.0.0", + "@typespec/versioning": ">=0.60.0 <1.0.0" + } + }, + "node_modules/@azure-tools/typespec-python/node_modules/@typespec/http-client-python": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@typespec/http-client-python/-/http-client-python-0.2.0.tgz", + "integrity": "sha512-LIxMmYX3uP6OjoOC8fFFFEjuFaRieELnztYC2b/BK8uY2RxpgaH3pm1LyZTgrOUdWtjHM86RhtuqsRuhWMewEg==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "js-yaml": "~4.1.0", + "semver": "~7.6.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@azure-tools/typespec-autorest": ">=0.46.0 <1.0.0", + "@azure-tools/typespec-azure-core": ">=0.46.0 <1.0.0", + "@azure-tools/typespec-azure-resource-manager": ">=0.46.0 <1.0.0", + "@azure-tools/typespec-azure-rulesets": ">=0.46.0 <3.0.0", + "@azure-tools/typespec-client-generator-core": ">=0.46.2 <1.0.0", + "@typespec/compiler": ">=0.60.0 <1.0.0", + "@typespec/http": ">=0.60.0 <1.0.0", + "@typespec/openapi": ">=0.60.0 <1.0.0", + "@typespec/rest": ">=0.60.0 <1.0.0", + "@typespec/versioning": ">=0.60.0 <1.0.0" + } + }, + "node_modules/@azure-tools/typespec-python/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/@azure-tools/typespec-requirement": { "resolved": "eng/tools/typespec-requirement", "link": true @@ -1490,7 +1558,6 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/highlight": "^7.24.7", @@ -1514,7 +1581,6 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -1524,7 +1590,6 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.24.7", @@ -1540,7 +1605,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^1.9.0" @@ -1553,7 +1617,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", @@ -1584,7 +1647,6 @@ "version": "7.25.6", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", - "dev": true, "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -1944,6 +2006,22 @@ "node": ">=12" } }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/openbsd-x64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", @@ -2154,7 +2232,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", - "dev": true, "license": "Apache-2.0", "engines": { "node": ">=10.10.0" @@ -2338,7 +2415,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true, "license": "MIT" }, "node_modules/@kwsites/file-exists": { @@ -2362,7 +2438,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -2376,7 +2451,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -2386,7 +2460,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -2475,7 +2548,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/@readme/better-ajv-errors/-/better-ajv-errors-1.6.0.tgz", "integrity": "sha512-9gO9rld84Jgu13kcbKRU+WHseNhaVt76wYMeRDGsUGYxwJtI3RmEJ9LY9dZCYQGI8eUZLuxb5qDja0nqklpFjQ==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@babel/code-frame": "^7.16.0", @@ -2497,7 +2569,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -2514,7 +2585,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2524,7 +2594,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -2537,7 +2606,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@readme/json-schema-ref-parser/-/json-schema-ref-parser-1.2.0.tgz", "integrity": "sha512-Bt3QVovFSua4QmHa65EHUmh2xS0XJ3rgTEUPH998f4OW4VVJke3BuS16f+kM0ZLOGdvIrzrPRqwihuv5BAjtrA==", - "dev": true, "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", @@ -2550,7 +2618,6 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/@readme/openapi-parser/-/openapi-parser-2.6.0.tgz", "integrity": "sha512-pyFJXezWj9WI1O+gdp95CoxfY+i+Uq3kKk4zXIFuRAZi9YnHpHOpjumWWr67wkmRTw19Hskh9spyY0Iyikf3fA==", - "dev": true, "license": "MIT", "dependencies": { "@apidevtools/swagger-methods": "^3.0.2", @@ -2573,7 +2640,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@readme/openapi-schemas/-/openapi-schemas-3.1.0.tgz", "integrity": "sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw==", - "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -2814,7 +2880,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", - "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -3123,7 +3188,6 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, "license": "MIT" }, "node_modules/@types/node": { @@ -3446,7 +3510,6 @@ "version": "0.60.0", "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.60.0.tgz", "integrity": "sha512-qAS99tJv6RvxSescfxRVal4QWSfdf3BzIOgE8+Az6emL68aTE/W8zQ0Ijpgmhax7sC2AnLTxCK1tM9kj1YguRw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "~7.24.7", @@ -3476,7 +3539,6 @@ "version": "2.4.5", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", - "dev": true, "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -3489,7 +3551,6 @@ "version": "0.60.0", "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.60.0.tgz", "integrity": "sha512-ktfS9vpHfltyeAaQLNAZdqrn6Per3vmB/HDH/iyudYLA5wWblT1siKvpFCMWq53CJorRO7yeOKv+Q/M26zwEtg==", - "dev": true, "license": "MIT", "engines": { "node": ">=18.0.0" @@ -3502,7 +3563,6 @@ "version": "0.60.0", "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.60.0.tgz", "integrity": "sha512-YVwLppgHY8r/MudHNSLSUXzdw+CIpjmb31gI2a0KDGnI6sWDwY7LSWfjGU4TY/ubt0+X0Tjoy330mTvw71YBTg==", - "dev": true, "license": "MIT", "engines": { "node": ">=18.0.0" @@ -3516,7 +3576,6 @@ "version": "0.60.0", "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.60.0.tgz", "integrity": "sha512-gvrTHZACdeQtV7GfhVOHqkyTgMFyM2nKAIiz2P83LIncMCDUc00bGKGmaBk+xpuwKtCJyxBeVpCbID31YAq96g==", - "dev": true, "license": "MIT", "dependencies": { "@readme/openapi-parser": "~2.6.0", @@ -3539,7 +3598,6 @@ "version": "2.4.5", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", - "dev": true, "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -3562,7 +3620,6 @@ "version": "0.60.0", "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.60.0.tgz", "integrity": "sha512-mHYubyuBvwdV2xkHrJfPwV7b/Ksyb9lA1Q/AQwpVFa7Qu1X075TBVALmH+hK3V0EdUG1CGJZ5Sw4BWgl8ZS0BA==", - "dev": true, "license": "MIT", "engines": { "node": ">=18.0.0" @@ -3576,6 +3633,18 @@ "version": "0.60.1", "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.60.1.tgz", "integrity": "sha512-HogYL7P9uOPoSvkLLDjF22S6E9td6EY3c6TcIHhCzDTAQoi54csikD0gNrtcCkFG0UeQk29HgQymV397j+vp4g==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.60.0" + } + }, + "node_modules/@typespec/xml": { + "version": "0.60.0", + "resolved": "https://registry.npmjs.org/@typespec/xml/-/xml-0.60.0.tgz", + "integrity": "sha512-Cr1Vih4ovB1OKHJNrXf23Bq4IiVNGlf7F6kN5Yfc7UDqxy+hiCfuwXfjlu3ida/bYTalGPd4/KL9EAx+m41Bxw==", "dev": true, "license": "MIT", "engines": { @@ -3744,7 +3813,6 @@ "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -3761,7 +3829,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "dev": true, "license": "MIT", "peerDependencies": { "ajv": "^8.5.0" @@ -3786,7 +3853,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -3802,7 +3868,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -3815,7 +3880,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/arg": { @@ -3829,7 +3893,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, "license": "Python-2.0" }, "node_modules/array-union": { @@ -3991,7 +4054,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -4070,7 +4132,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true, "license": "MIT" }, "node_modules/callsites": { @@ -4155,7 +4216,6 @@ "version": "5.4.4", "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", - "dev": true, "license": "MIT" }, "node_modules/change-case-all": { @@ -4260,7 +4320,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -4275,7 +4334,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4285,7 +4343,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -4298,7 +4355,6 @@ "version": "0.0.230", "resolved": "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz", "integrity": "sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -4319,7 +4375,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "1.1.3" @@ -4329,7 +4384,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, "license": "MIT" }, "node_modules/color-string": { @@ -4680,7 +4734,6 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, "license": "MIT" }, "node_modules/enabled": { @@ -4757,7 +4810,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -4767,7 +4819,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" @@ -5374,14 +5425,12 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -5412,14 +5461,12 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", - "dev": true, "license": "MIT" }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -5509,7 +5556,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -5690,7 +5736,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -5715,7 +5760,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -5761,6 +5805,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -5797,7 +5853,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -5826,7 +5881,6 @@ "version": "14.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", - "dev": true, "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", @@ -5847,14 +5901,12 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, "node_modules/grapheme-splitter": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true, "license": "MIT" }, "node_modules/graphemer": { @@ -5946,7 +5998,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -6105,7 +6156,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -6233,7 +6283,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -6243,7 +6292,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -6253,7 +6301,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -6266,7 +6313,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -6492,14 +6538,12 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -6573,7 +6617,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { @@ -6594,7 +6637,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/json-to-ast/-/json-to-ast-2.1.0.tgz", "integrity": "sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==", - "dev": true, "license": "MIT", "dependencies": { "code-error-fragment": "0.0.230", @@ -6608,7 +6650,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -6631,7 +6672,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -6683,7 +6723,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -6700,7 +6739,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -6915,7 +6953,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -6925,7 +6962,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -7052,7 +7088,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "dev": true, "license": "MIT", "bin": { "mustache": "bin/mustache" @@ -7585,7 +7620,6 @@ "version": "12.1.3", "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", - "dev": true, "license": "MIT", "peer": true }, @@ -7767,7 +7801,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -7804,14 +7837,12 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -7824,7 +7855,6 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -8121,7 +8151,6 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "dev": true, "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -8173,7 +8202,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, "license": "MIT", "dependencies": { "kleur": "^3.0.3", @@ -8245,7 +8273,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -8342,7 +8369,6 @@ "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true, "license": "MIT" }, "node_modules/regexp-tree": { @@ -8381,7 +8407,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -8391,7 +8416,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -8439,6 +8463,15 @@ "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -8453,7 +8486,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -8517,7 +8549,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -8586,7 +8617,6 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -8705,14 +8735,12 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, "license": "MIT" }, "node_modules/slash": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true, "license": "MIT", "engines": { "node": ">=14.16" @@ -8864,7 +8892,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -8918,7 +8945,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -8928,7 +8954,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -9023,7 +9048,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^3.0.0" @@ -9067,7 +9091,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/temporal-polyfill/-/temporal-polyfill-0.2.5.tgz", "integrity": "sha512-ye47xp8Cb0nDguAhrrDS1JT1SzwEV9e26sSsrWzVu+yPZ7LzceEcH0i2gci9jWfOfSCCgM3Qv5nOYShVUUFUXA==", - "dev": true, "license": "MIT", "dependencies": { "temporal-spec": "^0.2.4" @@ -9077,7 +9100,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/temporal-spec/-/temporal-spec-0.2.4.tgz", "integrity": "sha512-lDMFv4nKQrSjlkHKAlHVqKrBG4DyFfa9F74cmBZ3Iy3ed8yvWnlWSIdi4IKfSqwmazAohBNwiN64qGx4y5Q3IQ==", - "dev": true, "license": "ISC" }, "node_modules/test-exclude": { @@ -9224,7 +9246,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -9277,6 +9298,432 @@ "dev": true, "license": "0BSD" }, + "node_modules/tsx": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.17.0.tgz", + "integrity": "sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg==", + "license": "MIT", + "dependencies": { + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -9393,7 +9840,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -9406,7 +9852,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -9654,7 +10099,6 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", - "dev": true, "license": "MIT", "dependencies": { "vscode-languageserver-protocol": "3.17.5" @@ -9667,7 +10111,6 @@ "version": "3.17.5", "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", - "dev": true, "license": "MIT", "dependencies": { "vscode-jsonrpc": "8.2.0", @@ -9678,7 +10121,6 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", - "dev": true, "license": "MIT", "engines": { "node": ">=14.0.0" @@ -9688,14 +10130,12 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", - "dev": true, "license": "MIT" }, "node_modules/vscode-languageserver-types": { "version": "3.17.5", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", - "dev": true, "license": "MIT" }, "node_modules/web-streams-polyfill": { @@ -9835,7 +10275,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -9895,7 +10334,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -9905,7 +10343,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -9959,7 +10396,6 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -9989,7 +10425,6 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -10008,7 +10443,6 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, "license": "ISC", "engines": { "node": ">=12" @@ -10106,4 +10540,4 @@ } } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 2159e8f89683..0c19f3e9e65b 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@typespec/openapi3": "0.60.0", "@typespec/rest": "0.60.0", "@typespec/versioning": "0.60.1", + "@typespec/xml": "0.60.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", "oav": "^3.3.7", "prettier": "~3.3.3", @@ -26,5 +27,8 @@ "node": ">=18.0.0", "npm": ">=9.0.0" }, - "private": true -} + "private": true, + "dependencies": { + "@azure-tools/typespec-python": "^0.35.1" + } +} \ No newline at end of file From c617d51262f71877a75260fea4db96cb108421f4 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Thu, 17 Oct 2024 19:47:40 -0700 Subject: [PATCH 057/129] rename endpoint param --- specification/storage/Microsoft.BlobStorage/main.tsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index 5bca0092dae0..4eb526bce0fd 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -21,11 +21,11 @@ using Azure.Core; title: "Azure Storage Blob service", }) @server( - "{endpoint}", + "{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") - endpoint: url, + url: url, } ) @versioned(Versions) From ff84cd46ef2d53b0aa8e89559bdd07cb54ff643e Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Thu, 17 Oct 2024 19:54:49 -0700 Subject: [PATCH 058/129] move version param to client init --- specification/storage/Microsoft.BlobStorage/client.tsp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index f8db730b2227..66db27a735cd 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -1,9 +1,18 @@ import "@azure-tools/typespec-client-generator-core"; import "./main.tsp"; +using TypeSpec.Http; using Azure.ClientGenerator.Core; using Storage.Blob; +/** client init */ +model StorageClientOptions { + /** Specifies the version of the operation to use for this request. */ + version: string; +} + +@@clientInitialization(Storage.Blob, StorageClientOptions); + @@clientName(ContainerProperties.denyEncryptionScopeOverride, "PreventEncryptionScopeOverride" ); From b13c9b9487a4a102351e76fad61a80341675854a Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Thu, 17 Oct 2024 19:55:04 -0700 Subject: [PATCH 059/129] model corrections --- .../storage/Microsoft.BlobStorage/models.tsp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 36c2a59b20e4..88ac3bdb00ca 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -1499,13 +1499,6 @@ alias CopyIdResponseHeader = { copyId: string; }; -/** The seal blob parameter. */ -alias SealBlobParameter = { - /** Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer. */ - @header("x-ms-seal-blob") - sealBlob?: boolean; -}; - /** 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. */ @@ -2084,9 +2077,9 @@ alias RangeParameter = { /** 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. */ - @header + @query @clientName("versionId") - versionid: string; + versionid?: string; }; /** The snapshot parameter. */ From de02b790dffac5698eff11df6ef503cf26775471 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 18 Oct 2024 13:36:17 -0700 Subject: [PATCH 060/129] update routes and openapi --- .../storage/Microsoft.BlobStorage/routes.tsp | 295 +-- .../stable/2021-12-02/blob.json | 2178 +++++++---------- 2 files changed, 880 insertions(+), 1593 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 3e3898779e53..a01c6c5c0a1c 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -23,12 +23,11 @@ op StorageOperation< @header("Content-Type") contentType: "application/xml", - ...TParams, - /** Specifies the version of the operation to use for this request. */ @header("x-ms-version") version: string, + ...TParams, ...ClientRequestIdHeader, ): (TResponse & { /** Content-Type header */ @@ -52,12 +51,7 @@ interface Service { @put @route("/?restype=service&comp=properties") setProperties is StorageOperation< - { - /** The storage service properties that specifies the analytics and CORS rules to set on the Blob service. */ - @body body: StorageServiceProperties; - - ...TimeoutParameter; - }, + TimeoutParameter & StorageServiceProperties, { @statusCode statusCode: 202; } @@ -67,15 +61,7 @@ interface Service { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @get @route("/?restype=service&comp=properties") - getProperties is StorageOperation< - { - ...TimeoutParameter; - }, - { - @statusCode statusCode: 200; - @body body: StorageServiceProperties; - } - >; + getProperties is StorageOperation; /** 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" @@ -83,11 +69,7 @@ interface Service { @route("/?restype=service&comp=stats") getStatistics is StorageOperation< TimeoutParameter, - { - @statusCode statusCode: 200; - @body body: StorageServiceStats; - ...DateResponseHeader; - } + DateResponseHeader & StorageServiceStats >; /** The List Containers Segment operation returns a list of the containers under the specified account */ @@ -102,10 +84,7 @@ interface Service { ...MarkerParameter; ...MaxResultsParameter; }, - { - @statusCode statusCode: 200; - @body body: ListContainersSegmentResponse; - } + ListContainersSegmentResponse >; /** The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS. */ @@ -113,18 +92,8 @@ interface Service { @post @route("/?restype=service&comp=userdelegationkey") getUserDelegationKey is StorageOperation< - { - /** The user delegation key info. */ - @body body: KeyInfo; - - ...TimeoutParameter; - }, - { - @statusCode statusCode: 200; - - /** The user delegation key. */ - @body body: UserDelegationKey; - } + KeyInfo & TimeoutParameter, + UserDelegationKey >; /** Returns the sku name and account kind. */ @@ -135,7 +104,6 @@ interface Service { getAccountInfo is StorageOperation< {}, { - @statusCode statusCode: 200; ...DateResponseHeader; ...SkuNameResponseHeader; ...AccountKindResponseHeader; @@ -153,9 +121,7 @@ interface Service { ...ContentLengthParameter; ...TimeoutParameter; }, - { - @statusCode statusCode: 200; - } + {} >; /** The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression. */ @@ -171,11 +137,7 @@ interface Service { ...MarkerParameter; ...MaxResultsParameter; }, - { - @statusCode statusCode: 200; - @body body: FilterBlobSegment; - ...DateResponseHeader; - } + DateResponseHeader & FilterBlobSegment >; } @@ -217,8 +179,6 @@ interface Container { ...LeaseIdOptionalParameter; }, { - @statusCode statusCode: 200; - // TODO: x-ms-meta headers ...EtagResponseHeader; @@ -272,7 +232,6 @@ interface Container { ...LeaseIdOptionalParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...DateResponseHeader; @@ -290,7 +249,6 @@ interface Container { ...LeaseIdOptionalParameter; }, { - @statusCode statusCode: 200; @body body: SignedIdentifiers; ...PublicAccessResponseHeader; ...EtagResponseHeader; @@ -320,7 +278,6 @@ interface Container { ...LeaseIdOptionalParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...DateResponseHeader; @@ -359,10 +316,7 @@ interface Container { ...SourceLeaseIdParameter; ...TimeoutParameter; }, - { - @statusCode statusCode: 200; - ...DateResponseHeader; - } + DateResponseHeader >; /** The Batch operation allows multiple API calls to be embedded into a single HTTP request. */ @@ -381,8 +335,7 @@ interface Container { }, { @statusCode statusCode: 202; - @body body: bytes; - } + } & BodyParameter >; /** 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. */ @@ -399,11 +352,7 @@ interface Container { ...FilterBlobsIncludeParameter; ...TimeoutParameter; }, - { - @statusCode statusCode: 200; - @body body: FilterBlobSegment; - ...DateResponseHeader; - } + DateResponseHeader & FilterBlobSegment >; /** [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 */ @@ -445,7 +394,6 @@ interface Container { ...IfUnmodifiedSinceParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...DateResponseHeader; @@ -467,7 +415,6 @@ interface Container { ...IfUnmodifiedSinceParameter; }, { - @statusCode statusCode: 200; ...LeaseIdResponseHeader; ...EtagResponseHeader; ...LastModifiedResponseHeader; @@ -514,7 +461,6 @@ interface Container { ...IfUnmodifiedSinceParameter; }, { - @statusCode statusCode: 200; ...LeaseIdResponseHeader; ...EtagResponseHeader; ...LastModifiedResponseHeader; @@ -537,11 +483,7 @@ interface Container { ...ListBlobsIncludeParameter; ...TimeoutParameter; }, - { - @statusCode statusCode: 200; - @body body: ListBlobsFlatSegmentResponse; - ...DateResponseHeader; - } + ListBlobsFlatSegmentResponse & DateResponseHeader >; /** [Update] The List Blobs operation returns a list of the blobs under the specified container */ @@ -559,11 +501,7 @@ interface Container { ...ListBlobsIncludeParameter; ...TimeoutParameter; }, - { - @statusCode statusCode: 200; - @body body: ListBlobsHierarchySegmentResponse; - ...DateResponseHeader; - } + ListBlobsHierarchySegmentResponse & DateResponseHeader >; /** Returns the sku name and account kind */ @@ -576,7 +514,6 @@ interface Container { ...ContainerNameParameter; }, { - @statusCode statusCode: 200; ...DateResponseHeader; ...SkuNameResponseHeader; ...AccountKindResponseHeader; @@ -606,16 +543,12 @@ interface Blob { ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; ...IfTagsParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; + ...ConditionalRequestHeaders; }, - { + BodyParameter & { #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" @statusCode statusCode: 200 | 206; - ...BodyParameter; // TODO: x-ms-meta headers // TODO: x-ms-or headers @@ -672,15 +605,10 @@ interface Blob { ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { - @statusCode statusCode: 200; - // TODO: x-ms-meta headers // TODO: x-ms-or headers @@ -744,10 +672,7 @@ interface Blob { ...TimeoutParameter; ...LeaseIdOptionalParameter; ...DeleteSnapshotsParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...BlobDeleteTypeParameter; }, @@ -767,10 +692,7 @@ interface Blob { ...ContainerNameParameter; ...BlobNameParameter; }, - { - @statusCode statusCode: 200; - ...DateResponseHeader; - } + DateResponseHeader >; /** "Set the expiration time of a blob" */ @@ -786,7 +708,6 @@ interface Blob { ...BlobExpiryTimeParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...DateResponseHeader; @@ -811,14 +732,10 @@ interface Blob { ...BlobContentLanguageParameter; ...LeaseIdOptionalParameter; ...BlobContentDispositionParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; @@ -842,7 +759,6 @@ interface Blob { ...ImmutabilityPolicyModeParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...DateResponseHeader; @@ -862,10 +778,7 @@ interface Blob { ...BlobNameParameter; ...TimeoutParameter; }, - { - @statusCode statusCode: 200; - ...DateResponseHeader; - } + DateResponseHeader >; /** The Set Legal Hold operation sets a legal hold on the blob. */ @@ -882,7 +795,6 @@ interface Blob { ...LegalHoldRequiredParameter; }, { - @statusCode statusCode: 200; ...DateResponseHeader; ...LegalHoldResponseHeader; } @@ -907,14 +819,10 @@ interface Blob { ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...DateResponseHeader; @@ -937,10 +845,7 @@ interface Blob { ...TimeoutParameter; ...LeaseDurationParameter; ...ProposedLeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { @@ -964,14 +869,10 @@ interface Blob { ...BlobNameParameter; ...TimeoutParameter; ...LeaseIdRequiredParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...DateResponseHeader; @@ -990,14 +891,10 @@ interface Blob { ...BlobNameParameter; ...TimeoutParameter; ...LeaseIdRequiredParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...DateResponseHeader; @@ -1018,14 +915,10 @@ interface Blob { ...TimeoutParameter; ...LeaseIdRequiredParameter; ...ProposedLeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...DateResponseHeader; @@ -1044,10 +937,7 @@ interface Blob { ...BlobNameParameter; ...TimeoutParameter; ...LeaseBreakPeriodParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { @@ -1077,10 +967,7 @@ interface Blob { ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { @@ -1113,15 +1000,16 @@ interface Blob { ...SourceIfMatchParameter; ...SourceIfNoneMatchParameter; ...SourceIfTagsParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...CopySourceParameter; ...LeaseIdOptionalParameter; ...BlobTagsHeaderParameter; - ...SealBlobParameter; + + /** 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; @@ -1155,10 +1043,7 @@ interface Blob { ...SourceIfUnmodifiedSinceParameter; ...SourceIfMatchParameter; ...SourceIfNoneMatchParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...CopySourceParameter; ...LeaseIdOptionalParameter; @@ -1235,7 +1120,6 @@ interface Blob { ...BlobNameParameter; }, { - @statusCode statusCode: 200; ...DateResponseHeader; ...AccountKindResponseHeader; ...SkuNameResponseHeader; @@ -1260,16 +1144,12 @@ interface Blob { ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, - { + BodyParameter & { #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" @statusCode statusCode: 200 | 206; - ...BodyParameter; // TODO: MetadataResponseHeader; @@ -1317,11 +1197,7 @@ interface Blob { ...LeaseIdOptionalParameter; ...IfTagsParameter; }, - { - @statusCode statusCode: 200; - @body body: BlobTags; - ...DateResponseHeader; - } + BlobTags & DateResponseHeader >; /** The Set Tags operation enables users to set tags on a blob. */ @@ -1377,10 +1253,7 @@ interface PageBlob { ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...BlobContentLengthRequiredParameter; ...BlobSequenceNumberParameter; @@ -1427,10 +1300,7 @@ interface PageBlob { ...IfSequenceNumberLessThanOrEqualToParameter; ...IfSequenceNumberLessThanParameter; ...IfSequenceNumberEqualToParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { @@ -1464,10 +1334,7 @@ interface PageBlob { ...IfSequenceNumberLessThanOrEqualToParameter; ...IfSequenceNumberLessThanParameter; ...IfSequenceNumberEqualToParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { @@ -1503,10 +1370,7 @@ interface PageBlob { ...IfSequenceNumberLessThanOrEqualToParameter; ...IfSequenceNumberLessThanParameter; ...IfSequenceNumberEqualToParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...SourceIfModifiedSinceParameter; ...SourceIfUnmodifiedSinceParameter; @@ -1539,17 +1403,12 @@ interface PageBlob { ...SnapshotParameter; ...RangeParameter; ...LeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...MarkerParameter; ...MaxResultsParameter; }, - { - @statusCode statusCode: 200; - @body body: PageList; + PageList & { ...LastModifiedResponseHeader; ...EtagResponseHeader; ...BlobContentLengthResponseHeader; @@ -1571,17 +1430,12 @@ interface PageBlob { ...PrevSnapshotUrlParameter; ...RangeParameter; ...LeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...MarkerParameter; ...MaxResultsParameter; }, - { - @statusCode statusCode: 200; - @body body: PageList; + PageList & { ...LastModifiedResponseHeader; ...EtagResponseHeader; ...BlobContentLengthResponseHeader; @@ -1605,15 +1459,11 @@ interface PageBlob { ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...BlobContentLengthRequiredParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; @@ -1633,16 +1483,12 @@ interface PageBlob { ...BlobNameParameter; ...TimeoutParameter; ...LeaseIdOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...SequenceNumberActionParameter; ...SequenceNumberParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...BlobSequenceNumberResponseHeader; @@ -1660,10 +1506,7 @@ interface PageBlob { ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...LeaseIdOptionalParameter; ...CopySourceParameter; @@ -1705,10 +1548,7 @@ interface AppendBlob { ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...BlobTagsHeaderParameter; ...ImmutabilityPolicyExpiryParameter; @@ -1752,10 +1592,7 @@ interface AppendBlob { ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { @@ -1797,10 +1634,7 @@ interface AppendBlob { ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...CopySourceAuthorizationParameter; }, @@ -1832,14 +1666,10 @@ interface AppendBlob { ...TimeoutParameter; ...LeaseIdOptionalParameter; ...BlobConditionAppendPosParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; }, { - @statusCode statusCode: 200; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...DateResponseHeader; @@ -1878,10 +1708,7 @@ interface BlockBlob { ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; ...AccessTierOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...BlobTagsHeaderParameter; ...ImmutabilityPolicyExpiryParameter; @@ -1930,10 +1757,7 @@ interface BlockBlob { ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; ...AccessTierOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...SourceIfModifiedSinceParameter; ...SourceIfMatchParameter; @@ -2059,10 +1883,7 @@ interface BlockBlob { ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; ...AccessTierOptionalParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...IfMatchParameter; - ...IfNoneMatchParameter; + ...ConditionalRequestHeaders; ...IfTagsParameter; ...BlobTagsHeaderParameter; ...ImmutabilityPolicyExpiryParameter; @@ -2095,9 +1916,7 @@ interface BlockBlob { ...LeaseIdOptionalParameter; ...IfTagsParameter; }, - { - @statusCode statusCode: 200; - @body body: BlockLookupList; + BlockLookupList & { ...LastModifiedResponseHeader; ...EtagResponseHeader; ...BlobContentLengthResponseHeader; diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 87d34b9fa795..723309e0b3a3 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -13,11 +13,11 @@ "https" ], "x-ms-parameterized-host": { - "hostTemplate": "{endpoint}", + "hostTemplate": "{url}", "useSchemePrefix": false, "parameters": [ { - "name": "endpoint", + "name": "url", "in": "path", "description": "The host name of the blob storage account, e.g. accountName.blob.core.windows.net", "required": true, @@ -64,15 +64,11 @@ "get": { "operationId": "Service_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" + ], "parameters": [ - { - "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" - }, { "name": "x-ms-version", "in": "header", @@ -81,6 +77,14 @@ "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" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -119,15 +123,10 @@ "put": { "operationId": "Service_SetProperties", "description": "Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "consumes": [ + "application/xml" + ], "parameters": [ - { - "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" - }, { "name": "x-ms-version", "in": "header", @@ -136,13 +135,20 @@ "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" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "body", "in": "body", - "description": "The storage service properties that specifies the analytics and CORS rules to set on the Blob service.", "required": true, "schema": { "$ref": "#/definitions/StorageServiceProperties" @@ -180,15 +186,14 @@ "post": { "operationId": "Service_GetUserDelegationKey", "description": "The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS.", + "produces": [ + "application/xml", + "application/json" + ], + "consumes": [ + "application/xml" + ], "parameters": [ - { - "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" - }, { "name": "x-ms-version", "in": "header", @@ -197,13 +202,20 @@ "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" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { "name": "body", "in": "body", - "description": "The user delegation key info.", "required": true, "schema": { "$ref": "#/definitions/KeyInfo" @@ -247,6 +259,14 @@ "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": [ + { + "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", @@ -270,14 +290,6 @@ "type": "string", "x-ms-client-name": "leaseId" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -462,6 +474,14 @@ "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": [ + { + "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", @@ -521,14 +541,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -578,7 +590,22 @@ "post": { "operationId": "Container_SubmitBatch", "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "produces": [ + "application/xml", + "application/json" + ], + "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" + }, { "name": "containerName", "in": "path", @@ -603,14 +630,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" }, @@ -621,7 +640,7 @@ "required": true, "schema": { "type": "string", - "format": "byte" + "format": "binary" } } ], @@ -629,8 +648,7 @@ "202": { "description": "The request has been accepted for processing, but processing has not yet completed.", "schema": { - "type": "string", - "format": "byte" + "type": "file" }, "headers": { "x-ms-client-request-id": { @@ -661,6 +679,14 @@ "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": [ + { + "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", @@ -702,14 +728,6 @@ "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -752,7 +770,19 @@ "get": { "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/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", @@ -779,9 +809,9 @@ }, { "name": "versionid", - "in": "header", + "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": true, + "required": false, "type": "string", "x-ms-client-name": "versionId" }, @@ -849,22 +879,6 @@ "type": "string", "x-ms-client-name": "encryptionAlgorithm" }, - { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" - }, - { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" - }, { "name": "x-ms-if-tags", "in": "header", @@ -874,30 +888,16 @@ "x-ms-client-name": "ifTags" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "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/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -907,8 +907,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "type": "string", - "format": "byte" + "type": "file" }, "headers": { "Accept-Ranges": { @@ -1241,8 +1240,7 @@ "206": { "description": "Successful", "schema": { - "type": "string", - "format": "byte" + "type": "file" }, "headers": { "Accept-Ranges": { @@ -1584,6 +1582,14 @@ "operationId": "Blob_SetHttpHeaders", "description": "The Set HTTP Headers operation sets system properties on the blob.", "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", @@ -1666,38 +1672,16 @@ "x-ms-client-name": "blobContentDisposition" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -1707,14 +1691,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -1770,6 +1746,14 @@ "operationId": "Blob_Undelete", "description": "\"Undelete a blob that was previously soft deleted\"", "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", @@ -1787,14 +1771,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -1836,6 +1812,14 @@ "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": [ + { + "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", @@ -1862,9 +1846,9 @@ }, { "name": "versionid", - "in": "header", + "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": true, + "required": false, "type": "string", "x-ms-client-name": "versionId" }, @@ -1913,38 +1897,16 @@ "x-ms-client-name": "deleteSnapshots" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -1982,14 +1944,6 @@ }, "x-ms-client-name": "blobDeleteType" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -2031,6 +1985,14 @@ "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": [ + { + "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", @@ -2057,9 +2019,9 @@ }, { "name": "versionid", - "in": "header", + "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": true, + "required": false, "type": "string", "x-ms-client-name": "versionId" }, @@ -2096,38 +2058,16 @@ "x-ms-client-name": "encryptionAlgorithm" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -2137,14 +2077,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -2672,7 +2604,19 @@ "get": { "operationId": "Blob_GetTags", "description": "The Get Blob Tags operation enables users to get tags on a 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" + }, { "name": "containerName", "in": "path", @@ -2707,9 +2651,9 @@ }, { "name": "versionid", - "in": "header", + "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": true, + "required": false, "type": "string", "x-ms-client-name": "versionId" }, @@ -2729,14 +2673,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -2780,7 +2716,18 @@ "put": { "operationId": "Blob_SetTags", "description": "The Set Tags operation enables users to set tags on a blob.", + "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" + }, { "name": "containerName", "in": "path", @@ -2808,9 +2755,9 @@ }, { "name": "versionid", - "in": "header", + "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": true, + "required": false, "type": "string", "x-ms-client-name": "versionId" }, @@ -2846,14 +2793,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" }, @@ -2903,7 +2842,22 @@ "post": { "operationId": "Blob_Query", "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", + "produces": [ + "application/xml", + "application/json" + ], + "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" + }, { "name": "containerName", "in": "path", @@ -2969,38 +2923,16 @@ "x-ms-client-name": "encryptionAlgorithm" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -3010,14 +2942,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" }, @@ -3035,8 +2959,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "type": "string", - "format": "byte" + "type": "file" }, "headers": { "Accept-Ranges": { @@ -3304,8 +3227,7 @@ "206": { "description": "Successful", "schema": { - "type": "string", - "format": "byte" + "type": "file" }, "headers": { "Accept-Ranges": { @@ -3586,6 +3508,14 @@ "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", @@ -3618,14 +3548,6 @@ "type": "string", "x-ms-client-name": "leaseId" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -3677,7 +3599,19 @@ "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", @@ -3701,14 +3635,6 @@ "type": "string", "x-ms-client-name": "leaseId" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -3790,7 +3716,18 @@ "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" + }, { "name": "containerName", "in": "path", @@ -3832,14 +3769,6 @@ "type": "string", "x-ms-client-name": "leaseId" }, - { - "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/Azure.Core.ClientRequestIdHeader" }, @@ -3904,6 +3833,14 @@ "operationId": "Container_Undelete", "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", @@ -3935,14 +3872,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -3986,6 +3915,14 @@ "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", @@ -4017,14 +3954,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -4067,7 +3996,19 @@ "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", @@ -4136,14 +4077,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -4190,6 +4123,14 @@ "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": [ + { + "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", @@ -4240,14 +4181,6 @@ "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -4304,6 +4237,14 @@ "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", "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", @@ -4345,14 +4286,6 @@ "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -4406,7 +4339,15 @@ "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": [ { - "name": "containerName", + "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, @@ -4446,14 +4387,6 @@ "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -4510,6 +4443,14 @@ "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": [ + { + "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", @@ -4552,14 +4493,6 @@ "format": "int32", "x-ms-client-name": "breakPeriod" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -4621,6 +4554,14 @@ "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": [ + { + "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", @@ -4670,14 +4611,6 @@ "format": "date-time-rfc1123", "x-ms-client-name": "ifUnmodifiedSince" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -4738,7 +4671,19 @@ "get": { "operationId": "Container_ListBlobFlatSegment", "description": "[Update] 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", @@ -4855,14 +4800,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -4908,7 +4845,19 @@ "get": { "operationId": "Container_ListBlobHierarchySegment", "description": "[Update] 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", @@ -5032,14 +4981,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -5086,13 +5027,6 @@ "operationId": "Container_GetAccountInfo", "description": "Returns the sku name and account kind", "parameters": [ - { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" - }, { "name": "x-ms-version", "in": "header", @@ -5101,6 +5035,13 @@ "type": "string", "x-ms-client-name": "version" }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -5228,6 +5169,14 @@ "operationId": "PageBlob_Create", "description": "The Create operation creates a new page blob.", "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", @@ -5354,38 +5303,16 @@ "x-ms-client-name": "encryptionScope" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -5438,14 +5365,6 @@ "type": "boolean", "x-ms-client-name": "legalHold" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -5517,7 +5436,18 @@ "put": { "operationId": "PageBlob_UploadPages", "description": "The Upload Pages operation writes a range of pages to a page blob", + "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" + }, { "name": "containerName", "in": "path", @@ -5644,38 +5574,16 @@ "x-ms-client-name": "ifSequenceNumberEqualTo" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -5685,14 +5593,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" }, @@ -5703,7 +5603,7 @@ "required": true, "schema": { "type": "string", - "format": "byte" + "format": "binary" } } ], @@ -5780,6 +5680,14 @@ "operationId": "PageBlob_ClearPages", "description": "The Clear Pages operation clears a range of pages from a page blob", "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", @@ -5858,38 +5766,16 @@ "x-ms-client-name": "ifSequenceNumberEqualTo" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -5899,14 +5785,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -5964,6 +5842,14 @@ "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": [ + { + "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", @@ -6106,38 +5992,16 @@ "x-ms-client-name": "ifSequenceNumberEqualTo" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -6189,14 +6053,6 @@ "type": "string", "x-ms-client-name": "copySourceAuthorization" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -6273,7 +6129,19 @@ "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": [ + { + "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", @@ -6315,38 +6183,16 @@ "x-ms-client-name": "leaseId" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -6371,14 +6217,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -6438,7 +6276,19 @@ "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" + }, { "name": "containerName", "in": "path", @@ -6503,38 +6353,16 @@ "x-ms-client-name": "leaseId" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -6559,14 +6387,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -6627,6 +6447,14 @@ "operationId": "PageBlob_Resize", "description": "The Resize operation increases the size of the page blob to the specified size.", "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", @@ -6693,38 +6521,16 @@ "x-ms-client-name": "encryptionScope" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -6743,14 +6549,6 @@ "format": "int64", "x-ms-client-name": "blobContentLength" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -6808,6 +6606,14 @@ "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": [ + { + "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", @@ -6842,38 +6648,16 @@ "x-ms-client-name": "leaseId" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -6926,14 +6710,6 @@ "format": "int64", "x-ms-client-name": "blobSequenceNumber" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -6991,6 +6767,14 @@ "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": [ + { + "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", @@ -7017,38 +6801,16 @@ "format": "int32" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -7074,14 +6836,6 @@ "type": "string", "x-ms-client-name": "copySource" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -7174,6 +6928,14 @@ "operationId": "AppendBlob_Create", "description": "The Create operation creates a new append blob.", "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", @@ -7297,38 +7059,16 @@ "x-ms-client-name": "encryptionScope" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -7397,14 +7137,6 @@ "type": "boolean", "x-ms-client-name": "legalHold" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -7476,7 +7208,18 @@ "put": { "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/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" + }, { "name": "containerName", "in": "path", @@ -7699,38 +7442,16 @@ "x-ms-client-name": "tier" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -7807,14 +7528,6 @@ "type": "string", "x-ms-client-name": "transactionalContentCrc64" }, - { - "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/Azure.Core.ClientRequestIdHeader" }, @@ -7825,7 +7538,7 @@ "required": true, "schema": { "type": "string", - "format": "byte" + "format": "binary" } } ], @@ -7897,6 +7610,14 @@ "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": [ + { + "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", @@ -8128,38 +7849,16 @@ "x-ms-client-name": "tier" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -8250,14 +7949,6 @@ "type": "string", "x-ms-client-name": "copySourceTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -8320,7 +8011,18 @@ "put": { "operationId": "BlockBlob_StageBlock", "description": "The Stage Block operation creates a new block to be committed as part of a blob", + "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" + }, { "name": "containerName", "in": "path", @@ -8419,14 +8121,6 @@ "type": "string", "x-ms-client-name": "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/Azure.Core.ClientRequestIdHeader" }, @@ -8437,7 +8131,7 @@ "required": true, "schema": { "type": "string", - "format": "byte" + "format": "binary" } } ], @@ -8499,7 +8193,18 @@ "put": { "operationId": "AppendBlob_AppendBlock", "description": "The Append Block operation commits a new block of data to the end of an append blob.", + "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" + }, { "name": "containerName", "in": "path", @@ -8609,38 +8314,16 @@ "x-ms-client-name": "encryptionScope" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -8650,14 +8333,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" }, @@ -8668,7 +8343,7 @@ "required": true, "schema": { "type": "string", - "format": "byte" + "format": "binary" } } ], @@ -8755,6 +8430,14 @@ "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": [ + { + "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", @@ -8880,38 +8563,16 @@ "x-ms-client-name": "encryptionScope" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -8929,14 +8590,6 @@ "type": "string", "x-ms-client-name": "copySourceAuthorization" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -9019,6 +8672,14 @@ "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": [ + { + "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", @@ -9062,38 +8723,16 @@ "x-ms-client-name": "appendPosition" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -9103,14 +8742,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -9167,6 +8798,14 @@ "operationId": "Blob_StartCopyFromUrl", "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", "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", @@ -9363,38 +9002,16 @@ "x-ms-client-name": "sourceIfTags" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -9487,14 +9104,6 @@ "type": "boolean", "x-ms-client-name": "legalHold" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -9591,6 +9200,14 @@ "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": [ + { + "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", @@ -9632,14 +9249,6 @@ "type": "string", "x-ms-client-name": "leaseId" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -9683,6 +9292,14 @@ "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": [ + { + "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", @@ -9843,38 +9460,16 @@ "x-ms-client-name": "sourceIfNoneMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -9991,14 +9586,6 @@ "type": "string", "x-ms-client-name": "copySourceTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -10103,6 +9690,14 @@ "operationId": "Blob_SetExpiry", "description": "\"Set the expiration time of a blob\"", "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", @@ -10168,14 +9763,6 @@ "type": "string", "x-ms-client-name": "ExpiresOn" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -10228,6 +9815,14 @@ "operationId": "Blob_SetImmutabilityPolicy", "description": "\"Set the immutability policy of a blob\"", "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", @@ -10305,14 +9900,6 @@ }, "x-ms-client-name": "immutabilityPolicyMode" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -10400,6 +9987,14 @@ "operationId": "Blob_DeleteImmutabilityPolicy", "description": "The Delete Immutability Policy operation deletes the immutability policy on the blob.", "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", @@ -10425,14 +10020,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -10476,6 +10063,14 @@ "operationId": "Blob_AcquireLease", "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "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", @@ -10519,38 +10114,16 @@ "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -10560,14 +10133,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -10624,6 +10189,14 @@ "operationId": "Blob_BreakLease", "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "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", @@ -10659,38 +10232,16 @@ "x-ms-client-name": "breakPeriod" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -10700,14 +10251,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -10765,6 +10308,14 @@ "operationId": "Blob_ChangeLease", "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "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", @@ -10807,38 +10358,16 @@ "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -10848,14 +10377,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -10912,6 +10433,14 @@ "operationId": "Blob_ReleaseLease", "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "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", @@ -10946,38 +10475,16 @@ "x-ms-client-name": "leaseId" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -10987,14 +10494,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -11047,6 +10546,14 @@ "operationId": "Blob_RenewLease", "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "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", @@ -11081,38 +10588,16 @@ "x-ms-client-name": "leaseId" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -11122,14 +10607,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -11186,6 +10663,14 @@ "operationId": "Blob_SetLegalHold", "description": "The Set Legal Hold operation sets a legal hold on the blob.", "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", @@ -11219,14 +10704,6 @@ "type": "boolean", "x-ms-client-name": "legalHold" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -11274,6 +10751,14 @@ "operationId": "Blob_SetMetadata", "description": "The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs.", "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", @@ -11340,38 +10825,16 @@ "x-ms-client-name": "encryptionScope" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -11381,14 +10844,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -11453,6 +10908,14 @@ "operationId": "Blob_CreateSnapshot", "description": "The Create Snapshot operation creates a read-only snapshot of a blob", "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", @@ -11519,38 +10982,16 @@ "x-ms-client-name": "encryptionScope" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -11560,14 +11001,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -11628,6 +11061,14 @@ "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", @@ -11797,14 +11238,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -11862,6 +11295,14 @@ "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", @@ -11879,14 +11320,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -12014,6 +11447,14 @@ "operationId": "Service_SubmitBatch", "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", "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": "Content-Length", "in": "header", @@ -12031,14 +11472,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -12076,7 +11509,19 @@ "get": { "operationId": "Service_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": "where", "in": "query", @@ -12138,14 +11583,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -12192,6 +11629,14 @@ "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": [ + { + "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", @@ -12348,14 +11793,6 @@ "type": "string", "x-ms-client-name": "copySourceAuthorization" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -12418,7 +11855,18 @@ "put": { "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" + ], "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", @@ -12641,38 +12089,16 @@ "x-ms-client-name": "tier" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "If-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "name": "If-None-Match", - "in": "header", - "description": "A condition that must be met in order for the request to be processed.", - "required": false, - "type": "string", - "x-ms-client-name": "ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -12741,14 +12167,6 @@ "type": "boolean", "x-ms-client-name": "legalHold" }, - { - "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/Azure.Core.ClientRequestIdHeader" }, @@ -12829,7 +12247,19 @@ "get": { "operationId": "BlockBlob_GetBlockList", "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": [ + { + "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", @@ -12904,14 +12334,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -12971,7 +12393,19 @@ "get": { "operationId": "Service_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", @@ -13002,14 +12436,6 @@ "type": "integer", "format": "int32" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -13189,15 +12615,11 @@ "get": { "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.", + "produces": [ + "application/xml", + "application/json" + ], "parameters": [ - { - "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" - }, { "name": "x-ms-version", "in": "header", @@ -13206,6 +12628,14 @@ "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" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -15418,6 +14848,44 @@ "x-ms-parameter-location": "method", "x-ms-client-name": "clientRequestId" }, + "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-client-name": "ifMatch" + }, + "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", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifModifiedSince" + }, + "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", + "x-ms-client-name": "ifNoneMatch" + }, + "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-client-name": "ifUnmodifiedSince" + }, "PremiumPageBlobAccessTierOptional": { "name": "x-ms-access-tier", "in": "header", From 0a6102e42bcdbb57d4fa39d4ba31843317ebc86d Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 18 Oct 2024 13:42:11 -0700 Subject: [PATCH 061/129] remove incorrect file changes --- package.json | 7 +- .../Microsoft.BlobStorage/.editorconfig | 8 -- .../stable/0000-00-00/openapi.json | 114 ------------------ 3 files changed, 2 insertions(+), 127 deletions(-) delete mode 100644 specification/storage/Microsoft.BlobStorage/.editorconfig delete mode 100644 specification/storage/data-plane/Microsoft.BlobStorage/stable/0000-00-00/openapi.json diff --git a/package.json b/package.json index bf8b7014a387..d190c303ee5f 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,5 @@ "node": ">=18.0.0", "npm": ">=9.0.0" }, - "private": true, - "dependencies": { - "@azure-tools/typespec-python": "^0.35.1" - } -} + "private": true +} \ No newline at end of file diff --git a/specification/storage/Microsoft.BlobStorage/.editorconfig b/specification/storage/Microsoft.BlobStorage/.editorconfig deleted file mode 100644 index 035388c1bf0c..000000000000 --- a/specification/storage/Microsoft.BlobStorage/.editorconfig +++ /dev/null @@ -1,8 +0,0 @@ -root = true - -[*] -indent_size = 2 -indent_style = space -end_of_line = lf -insert_final_newline = true -charset = utf-8 \ No newline at end of file diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/0000-00-00/openapi.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/0000-00-00/openapi.json deleted file mode 100644 index 4a1025de907e..000000000000 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/0000-00-00/openapi.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Azure.Storage.Blob service", - "version": "0000-00-00", - "x-typespec-generated": [ - { - "emitter": "@azure-tools/typespec-autorest" - } - ] - }, - "schemes": [ - "https" - ], - "x-ms-parameterized-host": { - "hostTemplate": "{endpoint}", - "useSchemePrefix": false, - "parameters": [ - { - "name": "endpoint", - "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 - } - ] - }, - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "ApiKeyAuth": [] - }, - { - "OAuth2Auth": [ - "https://storage.azure.com/.default" - ] - } - ], - "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": {}, - "definitions": { - "Versions": { - "type": "string", - "description": "The Azure.Storage.Blob service versions.", - "enum": [ - "2020-10-02-preview", - "2020-12-06-preview", - "2021-02-12-preview", - "2021-04-10-preview", - "2021-08-06-preview", - "2021-12-02-preview" - ], - "x-ms-enum": { - "name": "Versions", - "modelAsString": true, - "values": [ - { - "name": "2020-10-02-preview", - "value": "2020-10-02-preview", - "description": "The 2020-10-02-preview version of the Azure.Storage.Blob service." - }, - { - "name": "2020-12-06-preview", - "value": "2020-12-06-preview", - "description": "The 2020-12-06-preview version of the Azure.Storage.Blob service." - }, - { - "name": "2021-02-12-preview", - "value": "2021-02-12-preview", - "description": "The 2021-02-12-preview version of the Azure.Storage.Blob service." - }, - { - "name": "2021-04-10-preview", - "value": "2021-04-10-preview", - "description": "The 2021-04-10-preview version of the Azure.Storage.Blob service." - }, - { - "name": "2021-08-06-preview", - "value": "2021-08-06-preview", - "description": "The 2021-08-06-preview version of the Azure.Storage.Blob service." - }, - { - "name": "2021-12-02-preview", - "value": "2021-12-02-preview", - "description": "The 2021-12-02-preview version of the Azure.Storage.Blob service." - } - ] - } - } - }, - "parameters": {} -} From 6b9b4cc3bc2ce00b5ac0a0e3fbca4659257a7daf Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 18 Oct 2024 13:54:32 -0700 Subject: [PATCH 062/129] undo package json changes --- package-lock.json | 638 ++++++++-------------------------------------- package.json | 2 +- 2 files changed, 103 insertions(+), 537 deletions(-) diff --git a/package-lock.json b/package-lock.json index 30f76da75346..28c55f0f16eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,6 @@ "packages": { "": { "name": "azure-rest-api-specs", - "dependencies": { - "@azure-tools/typespec-python": "^0.35.1" - }, "devDependencies": { "@azure-tools/typespec-apiview": "0.4.9", "@azure-tools/typespec-autorest": "0.47.0", @@ -413,6 +410,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", + "dev": true, "license": "MIT" }, "node_modules/@apidevtools/swagger-parser": { @@ -1018,76 +1016,6 @@ "integrity": "sha512-O+FhUAt1R4z/bzflY1x90fk5ap9vYiw9mue9Gn7mCyjSueVeV3la0etaqsFMQM6D+IXpelC5567P8Lbvaxmx3Q==", "dev": true }, - "node_modules/@azure-tools/typespec-python": { - "version": "0.35.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-python/-/typespec-python-0.35.1.tgz", - "integrity": "sha512-660sRF7FZMadBQX+GHkLCGUMcp6xVnULV0/l530CiggqHJxL+t+A3S4N1VKbTFIya/IPYqzGI+zJVCpKz8HbHw==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@typespec/http-client-python": "0.2.0", - "@typespec/openapi3": "~0.60.0", - "fs-extra": "~11.2.0", - "js-yaml": "~4.1.0", - "semver": "~7.6.2", - "tsx": "4.17.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "@azure-tools/typespec-autorest": ">=0.46.0 <1.0.0", - "@azure-tools/typespec-azure-core": ">=0.46.0 <1.0.0", - "@azure-tools/typespec-azure-resource-manager": ">=0.46.0 <1.0.0", - "@azure-tools/typespec-azure-rulesets": ">=0.46.0 <3.0.0", - "@azure-tools/typespec-client-generator-core": ">=0.46.2 <1.0.0", - "@typespec/compiler": ">=0.60.0 <1.0.0", - "@typespec/http": ">=0.60.0 <1.0.0", - "@typespec/openapi": ">=0.60.0 <1.0.0", - "@typespec/rest": ">=0.60.0 <1.0.0", - "@typespec/versioning": ">=0.60.0 <1.0.0" - } - }, - "node_modules/@azure-tools/typespec-python/node_modules/@typespec/http-client-python": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@typespec/http-client-python/-/http-client-python-0.2.0.tgz", - "integrity": "sha512-LIxMmYX3uP6OjoOC8fFFFEjuFaRieELnztYC2b/BK8uY2RxpgaH3pm1LyZTgrOUdWtjHM86RhtuqsRuhWMewEg==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "js-yaml": "~4.1.0", - "semver": "~7.6.2" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@azure-tools/typespec-autorest": ">=0.46.0 <1.0.0", - "@azure-tools/typespec-azure-core": ">=0.46.0 <1.0.0", - "@azure-tools/typespec-azure-resource-manager": ">=0.46.0 <1.0.0", - "@azure-tools/typespec-azure-rulesets": ">=0.46.0 <3.0.0", - "@azure-tools/typespec-client-generator-core": ">=0.46.2 <1.0.0", - "@typespec/compiler": ">=0.60.0 <1.0.0", - "@typespec/http": ">=0.60.0 <1.0.0", - "@typespec/openapi": ">=0.60.0 <1.0.0", - "@typespec/rest": ">=0.60.0 <1.0.0", - "@typespec/versioning": ">=0.60.0 <1.0.0" - } - }, - "node_modules/@azure-tools/typespec-python/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/@azure-tools/typespec-requirement": { "resolved": "eng/tools/typespec-requirement", "link": true @@ -1560,6 +1488,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/highlight": "^7.24.7", @@ -1583,6 +1512,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -1592,6 +1522,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.24.7", @@ -1607,6 +1538,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^1.9.0" @@ -1619,6 +1551,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", @@ -1649,6 +1582,7 @@ "version": "7.25.6", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "dev": true, "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -2008,22 +1942,6 @@ "node": ">=12" } }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", - "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, "node_modules/@esbuild/openbsd-x64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", @@ -2235,6 +2153,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=10.10.0" @@ -2418,6 +2337,7 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "dev": true, "license": "MIT" }, "node_modules/@jsep-plugin/assignment": { @@ -2467,6 +2387,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -2480,6 +2401,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -2489,6 +2411,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -2577,6 +2500,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/@readme/better-ajv-errors/-/better-ajv-errors-1.6.0.tgz", "integrity": "sha512-9gO9rld84Jgu13kcbKRU+WHseNhaVt76wYMeRDGsUGYxwJtI3RmEJ9LY9dZCYQGI8eUZLuxb5qDja0nqklpFjQ==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@babel/code-frame": "^7.16.0", @@ -2598,6 +2522,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -2614,6 +2539,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2623,6 +2549,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -2635,6 +2562,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@readme/json-schema-ref-parser/-/json-schema-ref-parser-1.2.0.tgz", "integrity": "sha512-Bt3QVovFSua4QmHa65EHUmh2xS0XJ3rgTEUPH998f4OW4VVJke3BuS16f+kM0ZLOGdvIrzrPRqwihuv5BAjtrA==", + "dev": true, "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", @@ -2647,6 +2575,7 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/@readme/openapi-parser/-/openapi-parser-2.6.0.tgz", "integrity": "sha512-pyFJXezWj9WI1O+gdp95CoxfY+i+Uq3kKk4zXIFuRAZi9YnHpHOpjumWWr67wkmRTw19Hskh9spyY0Iyikf3fA==", + "dev": true, "license": "MIT", "dependencies": { "@apidevtools/swagger-methods": "^3.0.2", @@ -2669,6 +2598,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@readme/openapi-schemas/-/openapi-schemas-3.1.0.tgz", "integrity": "sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -2909,6 +2839,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -3217,6 +3148,7 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, "license": "MIT" }, "node_modules/@types/node": { @@ -3822,6 +3754,7 @@ "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -3838,6 +3771,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "dev": true, "license": "MIT", "peerDependencies": { "ajv": "^8.5.0" @@ -3862,6 +3796,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -3877,6 +3812,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -3889,6 +3825,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "license": "MIT" }, "node_modules/arg": { @@ -3902,6 +3839,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, "license": "Python-2.0" }, "node_modules/array-union": { @@ -4063,6 +4001,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -4166,6 +4105,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "dev": true, "license": "MIT" }, "node_modules/callsites": { @@ -4250,6 +4190,7 @@ "version": "5.4.4", "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "dev": true, "license": "MIT" }, "node_modules/change-case-all": { @@ -4353,6 +4294,7 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -4367,6 +4309,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4376,6 +4319,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -4388,6 +4332,7 @@ "version": "0.0.230", "resolved": "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz", "integrity": "sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -4408,6 +4353,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "license": "MIT", "dependencies": { "color-name": "1.1.3" @@ -4417,6 +4363,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, "license": "MIT" }, "node_modules/color-string": { @@ -4767,6 +4714,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/enabled": { @@ -4843,6 +4791,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -4852,6 +4801,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" @@ -5468,12 +5418,14 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -5511,6 +5463,7 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -5600,6 +5553,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -5780,6 +5734,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -5804,6 +5759,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -5849,18 +5805,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-tsconfig": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", - "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -5897,6 +5841,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -5925,6 +5870,7 @@ "version": "14.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "dev": true, "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", @@ -5945,12 +5891,14 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, "license": "ISC" }, "node_modules/grapheme-splitter": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true, "license": "MIT" }, "node_modules/graphemer": { @@ -6042,6 +5990,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -6221,6 +6170,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -6348,6 +6298,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -6357,6 +6308,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -6366,6 +6318,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -6378,6 +6331,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -6603,12 +6557,14 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -6692,6 +6648,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { @@ -6712,6 +6669,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/json-to-ast/-/json-to-ast-2.1.0.tgz", "integrity": "sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==", + "dev": true, "license": "MIT", "dependencies": { "code-error-fragment": "0.0.230", @@ -6725,6 +6683,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -6756,6 +6715,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -6807,6 +6767,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -6823,6 +6784,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -7037,6 +6999,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -7046,6 +7009,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -7172,6 +7136,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true, "license": "MIT", "bin": { "mustache": "bin/mustache" @@ -7707,6 +7672,7 @@ "version": "12.1.3", "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", + "dev": true, "license": "MIT", "peer": true }, @@ -7888,6 +7854,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -7924,12 +7891,14 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -7942,6 +7911,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -8245,6 +8215,7 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" @@ -8296,6 +8267,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, "license": "MIT", "dependencies": { "kleur": "^3.0.3", @@ -8365,6 +8337,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -8461,6 +8434,7 @@ "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, "license": "MIT" }, "node_modules/regexp-tree": { @@ -8499,6 +8473,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -8508,6 +8483,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -8555,15 +8531,6 @@ "node": ">=4" } }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -8578,6 +8545,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -8641,6 +8609,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -8709,6 +8678,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -8827,12 +8797,14 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, "license": "MIT" }, "node_modules/slash": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, "license": "MIT", "engines": { "node": ">=14.16" @@ -8983,6 +8955,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -9036,6 +9009,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -9045,6 +9019,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -9139,6 +9114,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^3.0.0" @@ -9181,6 +9157,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/temporal-polyfill/-/temporal-polyfill-0.2.5.tgz", "integrity": "sha512-ye47xp8Cb0nDguAhrrDS1JT1SzwEV9e26sSsrWzVu+yPZ7LzceEcH0i2gci9jWfOfSCCgM3Qv5nOYShVUUFUXA==", + "dev": true, "license": "MIT", "dependencies": { "temporal-spec": "^0.2.4" @@ -9190,6 +9167,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/temporal-spec/-/temporal-spec-0.2.4.tgz", "integrity": "sha512-lDMFv4nKQrSjlkHKAlHVqKrBG4DyFfa9F74cmBZ3Iy3ed8yvWnlWSIdi4IKfSqwmazAohBNwiN64qGx4y5Q3IQ==", + "dev": true, "license": "ISC" }, "node_modules/test-exclude": { @@ -9335,6 +9313,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -9387,432 +9366,6 @@ "dev": true, "license": "0BSD" }, - "node_modules/tsx": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.17.0.tgz", - "integrity": "sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg==", - "license": "MIT", - "dependencies": { - "esbuild": "~0.23.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", - "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", - "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", - "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/android-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", - "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", - "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/darwin-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", - "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", - "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", - "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", - "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", - "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", - "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-loong64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", - "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", - "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", - "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", - "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-s390x": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", - "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/linux-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", - "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", - "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", - "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/sunos-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", - "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", - "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", - "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/@esbuild/win32-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", - "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/tsx/node_modules/esbuild": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", - "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.1", - "@esbuild/android-arm": "0.23.1", - "@esbuild/android-arm64": "0.23.1", - "@esbuild/android-x64": "0.23.1", - "@esbuild/darwin-arm64": "0.23.1", - "@esbuild/darwin-x64": "0.23.1", - "@esbuild/freebsd-arm64": "0.23.1", - "@esbuild/freebsd-x64": "0.23.1", - "@esbuild/linux-arm": "0.23.1", - "@esbuild/linux-arm64": "0.23.1", - "@esbuild/linux-ia32": "0.23.1", - "@esbuild/linux-loong64": "0.23.1", - "@esbuild/linux-mips64el": "0.23.1", - "@esbuild/linux-ppc64": "0.23.1", - "@esbuild/linux-riscv64": "0.23.1", - "@esbuild/linux-s390x": "0.23.1", - "@esbuild/linux-x64": "0.23.1", - "@esbuild/netbsd-x64": "0.23.1", - "@esbuild/openbsd-arm64": "0.23.1", - "@esbuild/openbsd-x64": "0.23.1", - "@esbuild/sunos-x64": "0.23.1", - "@esbuild/win32-arm64": "0.23.1", - "@esbuild/win32-ia32": "0.23.1", - "@esbuild/win32-x64": "0.23.1" - } - }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -9929,6 +9482,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -9941,6 +9495,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -10194,6 +9749,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "dev": true, "license": "MIT", "dependencies": { "vscode-languageserver-protocol": "3.17.5" @@ -10206,6 +9762,7 @@ "version": "3.17.5", "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "dev": true, "license": "MIT", "dependencies": { "vscode-jsonrpc": "8.2.0", @@ -10216,6 +9773,7 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "dev": true, "license": "MIT", "engines": { "node": ">=14.0.0" @@ -10225,12 +9783,14 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "dev": true, "license": "MIT" }, "node_modules/vscode-languageserver-types": { "version": "3.17.5", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "dev": true, "license": "MIT" }, "node_modules/web-streams-polyfill": { @@ -10387,6 +9947,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -10446,6 +10007,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -10455,6 +10017,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -10508,6 +10071,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -10537,6 +10101,7 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -10555,6 +10120,7 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, "license": "ISC", "engines": { "node": ">=12" diff --git a/package.json b/package.json index d190c303ee5f..b7548435eada 100644 --- a/package.json +++ b/package.json @@ -27,4 +27,4 @@ "npm": ">=9.0.0" }, "private": true -} \ No newline at end of file +} From ef9d940cf796e39f8d44e63e9301d0cc0e15e4ae Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 18 Oct 2024 18:34:38 -0700 Subject: [PATCH 063/129] add missing param --- .../storage/Microsoft.BlobStorage/models.tsp | 14 +++ .../storage/Microsoft.BlobStorage/routes.tsp | 7 +- .../stable/2021-12-02/blob.json | 85 +++++++++++++++++-- 3 files changed, 95 insertions(+), 11 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 88ac3bdb00ca..2617c2a64bcf 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -89,6 +89,20 @@ model FilterBlobItem { @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 FilterBlobsIncludes { /** The filter includes no versions. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index a01c6c5c0a1c..9c349293d707 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -45,7 +45,7 @@ op StorageOperation< #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." interface Service { - /** Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. */ + /** 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 @@ -80,9 +80,12 @@ interface Service { listContainersSegment is StorageOperation< { ...PrefixParameter; - ...TimeoutParameter; ...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 >; diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 723309e0b3a3..1a106dbda6bb 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -122,7 +122,7 @@ }, "put": { "operationId": "Service_SetProperties", - "description": "Get the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "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" ], @@ -12413,14 +12413,6 @@ "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" - }, { "name": "marker", "in": "query", @@ -12436,6 +12428,51 @@ "type": "integer", "format": "int32" }, + { + "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" + }, + { + "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" } @@ -14149,6 +14186,36 @@ ] } }, + "ListContainersIncludeType": { + "type": "string", + "description": "Include this parameter to specify that the container's metadata be returned as part of the response body.", + "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" + } + ] + } + }, "ListContainersSegmentResponse": { "type": "object", "description": "The list container segement response", From 99e5fe67743e2dc6d342f99a1be4262633f1f578 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 18 Oct 2024 18:35:00 -0700 Subject: [PATCH 064/129] fix tspconfig.yaml example dir --- specification/storage/Microsoft.BlobStorage/tspconfig.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml index 54392d478832..0b4da9bfed37 100644 --- a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml +++ b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml @@ -10,7 +10,7 @@ options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" emitter-output-dir: "{project-root}/.." - examples-directory: "{project-root}/examples" + 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" From 7e2a4738fbf17dfe74058222e958bb0bd8391b65 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 18 Oct 2024 18:37:52 -0700 Subject: [PATCH 065/129] specify page response --- specification/storage/Microsoft.BlobStorage/models.tsp | 5 ++++- .../Microsoft.BlobStorage/stable/2021-12-02/blob.json | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 2617c2a64bcf..242e615774a5 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -158,6 +158,7 @@ union SkuName { } /** The list container segement response */ +@pagedResult @Xml.name("EnumerationResults") model ListContainersSegmentResponse { /** The service endpoint. */ @@ -178,7 +179,9 @@ model ListContainersSegmentResponse { @Xml.name("ContainerItems") containerItems: ContainerItem[]; /** The next marker of the containers. */ - @Xml.name("NextMarker") nextMarker?: string; + @nextLink + @Xml.name("NextMarker") + nextMarker?: string; } /** An Azure Storage container. */ diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 1a106dbda6bb..a27c1651da26 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -12506,6 +12506,9 @@ "$ref": "#/definitions/StorageError" } } + }, + "x-ms-pageable": { + "nextLinkName": "nextMarker" } } }, From 5b057744277df5c31c812ad4442ceb2fe4d2f57d Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 18 Oct 2024 18:40:45 -0700 Subject: [PATCH 066/129] add missing header --- specification/storage/Microsoft.BlobStorage/routes.tsp | 4 ++-- .../Microsoft.BlobStorage/stable/2021-12-02/blob.json | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 9c349293d707..b90c6912284e 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -90,13 +90,13 @@ interface Service { ListContainersSegmentResponse >; - /** The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS. */ + /** 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") getUserDelegationKey is StorageOperation< KeyInfo & TimeoutParameter, - UserDelegationKey + UserDelegationKey & DateResponseHeader >; /** Returns the sku name and account kind. */ diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index a27c1651da26..94e47620afa0 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -185,7 +185,7 @@ }, "post": { "operationId": "Service_GetUserDelegationKey", - "description": "The Get User Delegation Key operation gets the user delegation key for the Blob service. This is only a valid operation when using User Delegation SAS. For more information, see Create a user delegation SAS.", + "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" @@ -229,6 +229,11 @@ "$ref": "#/definitions/UserDelegationKey" }, "headers": { + "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-client-request-id": { "type": "string", "format": "uuid", From 6cd92aed17ba121a6f792003f3c30d92bf9f0bd3 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 18 Oct 2024 19:00:07 -0700 Subject: [PATCH 067/129] more spec fixes --- .../storage/Microsoft.BlobStorage/models.tsp | 2 +- .../storage/Microsoft.BlobStorage/routes.tsp | 33 ++++++++--- .../stable/2021-12-02/blob.json | 59 ++++++++++++------- 3 files changed, 64 insertions(+), 30 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 242e615774a5..16edb7ea84d8 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -142,7 +142,7 @@ union SkuName { StandardLRS: "Standard_LRS", /** The standard GRS SKU. */ - StandardGRS: "tandard_GRS", + StandardGRS: "Standard_GRS", /** The standard RAGRS SKU. */ StandardRAGRS: "Standard_RAGRS", diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index b90c6912284e..e0858b611167 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -99,6 +99,7 @@ interface Service { UserDelegationKey & DateResponseHeader >; + // TODO: The swagger didnt specify all of the headers we have in the template, like the request id headers /** 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" @@ -119,13 +120,31 @@ interface Service { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post @route("/?comp=batch") - submitBatch is StorageOperation< - { - ...ContentLengthParameter; - ...TimeoutParameter; - }, - {} - >; + 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: string, + + /** Specifies the version of the operation to use for this request. */ + @header("x-ms-version") + version: string, + + ...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 exisitng API" + @header("Content-Type") + contentType: string; + + /** 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. */ + @header("x-ms-version") + version: string; + + ...RequestIdResponseHeader; + }) | 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" diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 94e47620afa0..52d0c7e180a1 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -5117,7 +5117,7 @@ "description": "Identifies the sku name of the account", "enum": [ "Standard_LRS", - "tandard_GRS", + "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS" @@ -5133,7 +5133,7 @@ }, { "name": "StandardGRS", - "value": "tandard_GRS", + "value": "Standard_GRS", "description": "The standard GRS SKU." }, { @@ -11395,7 +11395,7 @@ "description": "Identifies the sku name of the account", "enum": [ "Standard_LRS", - "tandard_GRS", + "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS" @@ -11411,7 +11411,7 @@ }, { "name": "StandardGRS", - "value": "tandard_GRS", + "value": "Standard_GRS", "description": "The standard GRS SKU." }, { @@ -11451,6 +11451,13 @@ "post": { "operationId": "Service_SubmitBatch", "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "produces": [ + "*/*", + "application/json" + ], + "consumes": [ + "*/*" + ], "parameters": [ { "name": "x-ms-version", @@ -11460,15 +11467,6 @@ "type": "string", "x-ms-client-name": "version" }, - { - "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", @@ -11479,17 +11477,34 @@ }, { "$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", @@ -12604,7 +12619,7 @@ "description": "Identifies the sku name of the account", "enum": [ "Standard_LRS", - "tandard_GRS", + "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS" @@ -12620,7 +12635,7 @@ }, { "name": "StandardGRS", - "value": "tandard_GRS", + "value": "Standard_GRS", "description": "The standard GRS SKU." }, { @@ -14753,7 +14768,7 @@ "description": "The SKU types", "enum": [ "Standard_LRS", - "tandard_GRS", + "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS" @@ -14769,7 +14784,7 @@ }, { "name": "StandardGRS", - "value": "tandard_GRS", + "value": "Standard_GRS", "description": "The standard GRS SKU." }, { From 45619c66821ba83ad37c8651bf0a439a2e4791d6 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 18 Oct 2024 20:18:47 -0700 Subject: [PATCH 068/129] more spec fixes - container interface --- .../storage/Microsoft.BlobStorage/models.tsp | 17 ++++- .../storage/Microsoft.BlobStorage/routes.tsp | 76 ++++++++++++------- .../stable/2021-12-02/blob.json | 46 +++++------ 3 files changed, 85 insertions(+), 54 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 16edb7ea84d8..aefa8abaccde 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -857,6 +857,7 @@ model RetentionPolicy { // List Blobs /** An enumeration of blobs. */ +@pagedResult @Xml.name("EnumerationResults") model ListBlobsFlatSegmentResponse { /** The service endpoint. */ @@ -883,7 +884,9 @@ model ListBlobsFlatSegmentResponse { @Xml.name("Segment") segment: BlobFlatListSegment; /** The next marker of the blobs. */ - @Xml.name("NextMarker") nextMarker?: string; + @nextLink + @Xml.name("NextMarker") + nextMarker?: string; } /** The blob flat list segment. */ @@ -2134,6 +2137,7 @@ model BlobHierarchyListSegment { } /** An enumeration of blobs */ +@pagedResult @Xml.name("EnumerationResults") model ListBlobsHierarchySegmentResponse { /** The service endpoint. */ @@ -2163,7 +2167,9 @@ model ListBlobsHierarchySegmentResponse { @Xml.name("Segment") segment: BlobHierarchyListSegment; /** The next marker of the blobs. */ - @Xml.name("NextMarker") nextMarker?: string; + @nextLink + @Xml.name("NextMarker") + nextMarker?: string; } /** The delimiter parameter. */ @@ -2251,13 +2257,18 @@ alias DeletedContainerVersionParameter = { deletedContainerVersion?: string; }; -/** The container name header */ +/** The container name path parameter */ alias ContainerNameParameter = { /** The name of the container. */ @path containerName: string; }; +alias MetadataHeaders = { + /** The metadata headers. */ + @header("x-ms-meta") metadata?: 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. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index e0858b611167..74b6e05733c8 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -153,11 +153,11 @@ interface Service { @route("/?comp=blobs") filterBlobs is StorageOperation< { - ...FilterBlobsWhereParameter; - ...FilterBlobsIncludeParameter; ...TimeoutParameter; + ...FilterBlobsWhereParameter; ...MarkerParameter; ...MaxResultsParameter; + ...FilterBlobsIncludeParameter; }, DateResponseHeader & FilterBlobSegment >; @@ -173,13 +173,15 @@ interface Container { create is StorageOperation< { ...ContainerNameParameter; + ...TimeoutParameter; + + // TODO should we define metadata headers like: + // ...MetadataHeaders; - // TODO: x-ms-meta headers ...BlobPublicAccessParameter; ...DefaultEncryptionScopeParameter; ...DenyEncryptionScopeOverrideParameter; - ...TimeoutParameter; }, { @statusCode statusCode: 201; @@ -202,6 +204,8 @@ interface Container { }, { // TODO: x-ms-meta headers + // ...MetadataHeaders; + ...EtagResponseHeader; ...LastModifiedResponseHeader; @@ -246,12 +250,12 @@ interface Container { setMetadata is StorageOperation< { ...ContainerNameParameter; - - // TODO: ...MetadataParameter; ...TimeoutParameter; + ...LeaseIdOptionalParameter; + + // TODO: ...MetadataParameter; or MetadataHeaders? ...IfModifiedSinceParameter; - ...LeaseIdOptionalParameter; }, { ...EtagResponseHeader; @@ -292,12 +296,13 @@ interface Container { /** The access control list for the container. */ #suppress "@azure-tools/typespec-azure-core/request-body-problem" "Existing API" @body - acl: SignedIdentifiers; + containerAcl: SignedIdentifiers; ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...BlobPublicAccessParameter; ...IfModifiedSinceParameter; ...IfUnmodifiedSinceParameter; - ...LeaseIdOptionalParameter; }, { ...EtagResponseHeader; @@ -312,7 +317,7 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @put @route("/{containerName}?restype=container&comp=undelete") - undelete is StorageOperation< + restore is StorageOperation< { ...ContainerNameParameter; ...DeletedContainerNameParameter; @@ -346,19 +351,37 @@ interface Container { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post @route("/{containerName}?restype=container&comp=batch") - submitBatch is StorageOperation< - { - /** The batch request content */ - ...BodyParameter; + submitBatch( + ...ContainerNameParameter, - ...ContainerNameParameter; - ...ContentLengthParameter; - ...TimeoutParameter; - }, - { - @statusCode statusCode: 202; - } & BodyParameter - >; + /** 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: string, + + ...ContentLengthParameter, + ...TimeoutParameter, + + /** Specifies the version of the operation to use for this request. */ + @header("x-ms-version") + version: string, + + ...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: string; + + /** 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. */ + @header("x-ms-version") + version: string; + + ...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" @@ -368,11 +391,11 @@ interface Container { filterBlobs is StorageOperation< { ...ContainerNameParameter; + ...TimeoutParameter; + ...FilterBlobsWhereParameter; ...MarkerParameter; ...MaxResultsParameter; - ...FilterBlobsWhereParameter; ...FilterBlobsIncludeParameter; - ...TimeoutParameter; }, DateResponseHeader & FilterBlobSegment >; @@ -486,7 +509,6 @@ interface Container { ...LeaseIdResponseHeader; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...LeaseTimeResponseHeader; ...DateResponseHeader; } >; @@ -532,9 +554,7 @@ interface Container { @get @route("/{containerName}?restype=account&comp=properties") getAccountInfo is StorageOperation< - { - ...ContainerNameParameter; - }, + ContainerNameParameter, { ...DateResponseHeader; ...SkuNameResponseHeader; diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 52d0c7e180a1..4ae67cff5d1f 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -11542,6 +11542,14 @@ "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" + }, { "name": "where", "in": "query", @@ -11549,6 +11557,21 @@ "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" + }, { "name": "include", "in": "query", @@ -11580,29 +11603,6 @@ }, "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" - }, - { - "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" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } From e1ba1b92f7b7fbf920fe7ca2f5a842b4530172b1 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 18 Oct 2024 20:19:16 -0700 Subject: [PATCH 069/129] specify client parameters --- .../storage/Microsoft.BlobStorage/client.tsp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index 66db27a735cd..a097a9b5e409 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -5,13 +5,18 @@ using TypeSpec.Http; using Azure.ClientGenerator.Core; using Storage.Blob; +namespace Customizations; + /** client init */ -model StorageClientOptions { - /** Specifies the version of the operation to use for this request. */ +model BlobStorageClientOptions { + /** 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. */ + @header("x-ms-version") version: string; + + ...ContainerNameParameter; } -@@clientInitialization(Storage.Blob, StorageClientOptions); +@@clientInitialization(Storage.Blob, BlobStorageClientOptions); @@clientName(ContainerProperties.denyEncryptionScopeOverride, "PreventEncryptionScopeOverride" From 332aa5d1fb9acee4ebf0f3fb0c586b8e6a028235 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Fri, 18 Oct 2024 20:19:34 -0700 Subject: [PATCH 070/129] regen openapi --- .../stable/2021-12-02/blob.json | 144 ++++++++++-------- 1 file changed, 84 insertions(+), 60 deletions(-) diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 4ae67cff5d1f..c1d99451dc2c 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -494,6 +494,14 @@ "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" + }, { "name": "x-ms-blob-public-access", "in": "header", @@ -538,14 +546,6 @@ "type": "boolean", "x-ms-client-name": "denyEncryptionScopeOverride" }, - { - "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" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -596,21 +596,13 @@ "operationId": "Container_SubmitBatch", "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", "produces": [ - "application/xml", + "*/*", "application/json" ], "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" - }, { "name": "containerName", "in": "path", @@ -635,6 +627,14 @@ "type": "integer", "format": "int32" }, + { + "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/Azure.Core.ClientRequestIdHeader" }, @@ -656,11 +656,6 @@ "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", @@ -3537,21 +3532,21 @@ "format": "int32" }, { - "name": "If-Modified-Since", + "name": "x-ms-lease-id", "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.", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", "required": false, "type": "string", - "format": "date-time-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-lease-id", + "name": "If-Modified-Since", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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", - "x-ms-client-name": "leaseId" + "format": "date-time-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -3748,6 +3743,42 @@ "type": "integer", "format": "int32" }, + { + "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-public-access", + "in": "header", + "description": "Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'.", + "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", @@ -3766,19 +3797,11 @@ "format": "date-time-rfc1123", "x-ms-client-name": "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/Azure.Core.ClientRequestIdHeader" }, { - "name": "acl", + "name": "containerAcl", "in": "body", "description": "The access control list for the container.", "required": true, @@ -3835,7 +3858,7 @@ }, "/{containerName}?restype=container&comp=undelete": { "put": { - "operationId": "Container_Undelete", + "operationId": "Container_Restore", "description": "Restores a previously-deleted container.", "parameters": [ { @@ -4021,6 +4044,21 @@ "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" + }, + { + "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", @@ -4036,13 +4074,6 @@ "type": "integer", "format": "int32" }, - { - "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": "include", "in": "query", @@ -4074,14 +4105,6 @@ }, "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" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -4647,11 +4670,6 @@ "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", @@ -4843,6 +4861,9 @@ "$ref": "#/definitions/StorageError" } } + }, + "x-ms-pageable": { + "nextLinkName": "nextMarker" } } }, @@ -5024,6 +5045,9 @@ "$ref": "#/definitions/StorageError" } } + }, + "x-ms-pageable": { + "nextLinkName": "nextMarker" } } }, From d0dea8181857ca151f9edbd463f14bc281fb0c8e Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Mon, 21 Oct 2024 18:37:33 -0700 Subject: [PATCH 071/129] fix blob interface operations --- .../storage/Microsoft.BlobStorage/models.tsp | 2 +- .../storage/Microsoft.BlobStorage/routes.tsp | 456 +++++++++++------- 2 files changed, 279 insertions(+), 179 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index aefa8abaccde..3844e6bd3842 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -1065,7 +1065,7 @@ union QueryType { 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: string; + blobContentMd5: bytes; }; /** The blob append offset response header. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 74b6e05733c8..40126cba04bb 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -571,135 +571,224 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" @get - download is StorageOperation< - { - ...ContainerNameParameter; - ...BlobNameParameter; - ...SnapshotParameter; - ...VersionIdParameter; - ...TimeoutParameter; - ...RangeParameter; - ...LeaseIdOptionalParameter; - ...GetRangeContentMd5Parameter; - ...GetRangeContentCrc64Parameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...IfTagsParameter; - ...ConditionalRequestHeaders; - }, - BodyParameter & { - #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" - @statusCode statusCode: 200 | 206; + download( + /** Specifies the version of the operation to use for this request. */ + @header("x-ms-version") + version: string, - // TODO: x-ms-meta headers - // TODO: x-ms-or headers - ...LastModifiedResponseHeader; + ...ClientRequestIdHeader, + ...ContainerNameParameter, + ...BlobNameParameter, + ...SnapshotParameter, + ...VersionIdParameter, + ...TimeoutParameter, + ...RangeParameter, + ...LeaseIdOptionalParameter, + ...GetRangeContentMd5Parameter, + ...GetRangeContentCrc64Parameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...IfTagsParameter, + ...ConditionalRequestHeaders, + ): (BodyParameter & { + /** 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. */ + @header("x-ms-version") + version: string; - ...CreationTimeResponseHeader; - ...ObjectReplicationPolicyIdResponseHeader; - ...ContentRangeResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentEncodingResponseParameter; - ...CacheControlResponseHeader; - ...ContentDispositionResponseHeader; - ...ContentLanguageResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...BlobTypeResponseHeader; - ...CopyCompletionTimeResponseHeader; - ...CopyStatusDescriptionResponseHeader; - ...CopyIdResponseHeader; - ...CopyProgressResponseHeader; - ...CopyStatusResponseHeader; - ...CopySourceResponseHeader; - ...LeaseDurationResponseHeader; - ...LeaseStateResponseHeader; - ...LeaseStatusResponseHeader; - ...VersionIdResponseHeader; - ...IsCurrentVersionResponseHeader; - ...AcceptRangesResponseHeader; - ...BlobCommittedBlockCountResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - ...TagCountResponseHeader; - ...IsSealedResponseHeader; - ...LastAccessedResponseHeader; - ...ImmutabilityPolicyExpiresOnResponseHeader; - ...ImmutabilityPolicyModeResponseHeader; - ...LegalHoldResponseHeader; - ...ContentLengthResponseHeader; - ...EtagResponseHeader; - } - >; + /** The media type of the body of the response. */ + @header("Content-Type") + contentType: "application/octet-stream"; + + ...RequestIdResponseHeader; + ...ClientRequestIdHeader; + + // TODO: x-ms-meta headers + // TODO: x-ms-or headers + ...LastModifiedResponseHeader; + + ...CreationTimeResponseHeader; + ...ObjectReplicationPolicyIdResponseHeader; + ...ContentLengthResponseHeader; + ...ContentRangeResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopyStatusResponseHeader; + ...CopySourceResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; + ...AcceptRangesResponseHeader; + ...DateResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...BlobContentMd5ResponseHeader; + ...TagCountResponseHeader; + ...IsSealedResponseHeader; + ...LastAccessedResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + ...LegalHoldResponseHeader; + }) | (BodyParameter & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" + @statusCode statusCode: 206; + + /** 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. */ + @header("x-ms-version") + version: string; + + /** The media type of the body of the response. */ + @header("Content-Type") + contentType: "application/octet-stream"; + + ...RequestIdResponseHeader; + ...ClientRequestIdHeader; + + // TODO: x-ms-meta headers + // TODO: x-ms-or headers + ...LastModifiedResponseHeader; + + ...CreationTimeResponseHeader; + ...ObjectReplicationPolicyIdResponseHeader; + ...ContentLengthResponseHeader; + ...ContentRangeResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...BlobTypeResponseHeader; + ...ContentCrc64ResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopyStatusResponseHeader; + ...CopySourceResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; + ...AcceptRangesResponseHeader; + ...DateResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...BlobContentMd5ResponseHeader; + ...TagCountResponseHeader; + ...IsSealedResponseHeader; + ...LastAccessedResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + ...LegalHoldResponseHeader; + }) | 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 - getProperties is StorageOperation< - { - ...ContainerNameParameter; - ...BlobNameParameter; - ...SnapshotParameter; - ...VersionIdParameter; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...ConditionalRequestHeaders; - ...IfTagsParameter; - }, - { - // TODO: x-ms-meta headers - // TODO: x-ms-or headers + getProperties( + /** 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. */ + @header("x-ms-version") + version: string, - ...LastModifiedResponseHeader; + /** The media type of the body of the response. */ + #suppress "@typespec/http/content-type-ignored" "Exisitng API" + @header("Content-Type") + contentType: "application/octet-stream", - ...CreationTimeResponseHeader; - ...ObjectReplicationPolicyIdResponseHeader; - ...BlobTypeResponseHeader; - ...CopyCompletionTimeResponseHeader; - ...CopyStatusDescriptionResponseHeader; - ...CopyIdResponseHeader; - ...CopyProgressResponseHeader; - ...CopyStatusResponseHeader; - ...CopySourceResponseHeader; - ...IsIncrementalCopyResponseHeader; - ...DestinationSnapshotResponseHeader; - ...LeaseDurationResponseHeader; - ...LeaseStateResponseHeader; - ...LeaseStatusResponseHeader; - ...ContentLengthResponseHeader; - ...EtagResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentEncodingResponseParameter; - ...CacheControlResponseHeader; - ...ContentDispositionResponseHeader; - ...ContentLanguageResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...DateResponseHeader; - ...AcceptRangesResponseHeader; - ...BlobCommittedBlockCountResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - ...AccessTierResponseHeader; - ...AccessTierInferredResponseHeader; - ...ArchiveStatusResponseHeader; - ...AccessTierChangeTimeResponseHeader; - ...VersionIdResponseHeader; - ...IsCurrentVersionResponseHeader; - ...TagCountResponseHeader; - ...ExpiresOnResponseHeader; - ...IsSealedResponseHeader; - ...RehydratePriorityResponseHeader; - ...LastAccessedResponseHeader; - ...ImmutabilityPolicyExpiresOnResponseHeader; - ...ImmutabilityPolicyModeResponseHeader; - ...LegalHoldResponseHeader; - } - >; + ...RequestIdResponseHeader, + ...ClientRequestIdHeader, + ...ContainerNameParameter, + ...BlobNameParameter, + ...SnapshotParameter, + ...VersionIdParameter, + ...TimeoutParameter, + ...LeaseIdOptionalParameter, + ...EncryptionKeyParameter, + ...EncryptionKeySha256Parameter, + ...EncryptionAlgorithmParameter, + ...ConditionalRequestHeaders, + ...IfTagsParameter, + ): { + /** 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. */ + @header("x-ms-version") + version: string; + + /** The media type of the body of the response. */ + #suppress "@typespec/http/content-type-ignored" "Exisitng API" + @header("Content-Type") + contentType: "application/octet-stream"; + + ...RequestIdResponseHeader; + ...ClientRequestIdHeader; + + // TODO: x-ms-meta headers + // TODO: x-ms-or headers + + ...LastModifiedResponseHeader; + + ...CreationTimeResponseHeader; + ...ObjectReplicationPolicyIdResponseHeader; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopyStatusResponseHeader; + ...CopySourceResponseHeader; + ...IsIncrementalCopyResponseHeader; + ...DestinationSnapshotResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...ContentLengthResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...CacheControlResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + ...AcceptRangesResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...AccessTierResponseHeader; + ...AccessTierInferredResponseHeader; + ...ArchiveStatusResponseHeader; + ...AccessTierChangeTimeResponseHeader; + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; + ...TagCountResponseHeader; + ...ExpiresOnResponseHeader; + ...IsSealedResponseHeader; + ...RehydratePriorityResponseHeader; + ...LastAccessedResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; + ...ImmutabilityPolicyModeResponseHeader; + ...LegalHoldResponseHeader; + } | StorageError; /** 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" @@ -728,11 +817,12 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @route("?comp=undelete") - @post + @put undelete is StorageOperation< { ...ContainerNameParameter; ...BlobNameParameter; + ...TimeoutParameter; }, DateResponseHeader >; @@ -740,12 +830,13 @@ interface Blob { /** "Set the expiration time 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" - @post + @put @route("?comp=expiry") setExpiry is StorageOperation< { ...ContainerNameParameter; ...BlobNameParameter; + ...TimeoutParameter; ...BlobExpiryOptionsParameter; ...BlobExpiryTimeParameter; }, @@ -801,8 +892,6 @@ interface Blob { ...ImmutabilityPolicyModeParameter; }, { - ...EtagResponseHeader; - ...LastModifiedResponseHeader; ...DateResponseHeader; ...ImmutabilityPolicyExpiryResponseHeader; ...ImmutabilityPolicyModeResponseHeader; @@ -867,6 +956,7 @@ interface Blob { { ...EtagResponseHeader; ...LastModifiedResponseHeader; + ...VersionIdResponseHeader; ...DateResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; @@ -1003,20 +1093,22 @@ interface Blob { ...TimeoutParameter; // TODO: ...MetadataParameter; - ...LeaseIdOptionalParameter; ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; ...ConditionalRequestHeaders; ...IfTagsParameter; + ...LeaseIdOptionalParameter; }, { @statusCode statusCode: 201; + ...SnapshotResponseHeader; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...SnapshotResponseHeader; + ...VersionIdResponseHeader; ...DateResponseHeader; ...IsServerEncryptedResponseHeader; } @@ -1102,6 +1194,7 @@ interface Blob { @statusCode statusCode: 202; ...EtagResponseHeader; ...LastModifiedResponseHeader; + ...VersionIdResponseHeader; ...DateResponseHeader; ...CopyIdResponseHeader; ...CopyStatusResponseHeader; @@ -1139,6 +1232,8 @@ interface Blob { { ...ContainerNameParameter; ...BlobNameParameter; + ...SnapshotParameter; + ...VersionIdParameter; ...TimeoutParameter; ...AccessTierRequiredParameter; ...RehydratePriorityParameter; @@ -1171,64 +1266,69 @@ interface Blob { /** 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" @post - @route("/{containerName}/{blob}?comp=query") - query is StorageOperation< - { - /** The query request */ - @body - queryRequest: QueryRequest; + @route("?comp=query") + query( + ...ContainerNameParameter, + ...BlobNameParameter, - ...ContainerNameParameter; - ...BlobNameParameter; - ...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; + /** The query request */ + @body + queryRequest: QueryRequest, - // TODO: MetadataResponseHeader; + ...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; - ...LastModifiedResponseHeader; + // TODO: MetadataResponseHeader; - ...ContentLengthResponseHeader; - ...ContentRangeResponseHeader; - ...EtagResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentEncodingResponseParameter; - ...CacheControlResponseHeader; - ...ContentLanguageResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...BlobTypeResponseHeader; - ...CopyCompletionTimeResponseHeader; - ...CopyStatusDescriptionResponseHeader; - ...CopyIdResponseHeader; - ...CopyProgressResponseHeader; - ...CopySourceResponseHeader; - ...CopyStatusResponseHeader; - ...LeaseDurationResponseHeader; - ...LeaseStateResponseHeader; - ...LeaseStatusResponseHeader; - ...DateResponseHeader; - ...AcceptRangesResponseHeader; - ...BlobCommittedBlockCountResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - ...BlobContentMd5ResponseHeader; - } - >; + ...LastModifiedResponseHeader; + + ...ContentLengthResponseHeader; + + /** Supported media type. */ + @header("Content-Type") + contentType: "application/octet-stream"; + + ...ContentRangeResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...BlobTypeResponseHeader; + ...ContentCrc64ResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopySourceResponseHeader; + ...CopyStatusResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...AcceptRangesResponseHeader; + ...DateResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...BlobContentMd5ResponseHeader; + }) | StorageError; /** 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("/{containerName}/{blob}?comp=tags") + @route("?comp=tags") getTags is StorageOperation< { ...ContainerNameParameter; @@ -1245,17 +1345,17 @@ interface Blob { /** 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("/{containerName}/{blob}?comp=tags") + @route("?comp=tags") setTags is StorageOperation< { ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; ...VersionIdParameter; - ...LeaseIdOptionalParameter; ...ContentMd5Parameter; ...ContentCrc64Parameter; ...IfTagsParameter; + ...LeaseIdOptionalParameter; /** The blob tags. */ @body From 3168d17f1af40afc30a412d239fc2c6fe32fa834 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Mon, 21 Oct 2024 18:37:40 -0700 Subject: [PATCH 072/129] regen openapi --- .../stable/2021-12-02/blob.json | 2532 +++++++++-------- 1 file changed, 1289 insertions(+), 1243 deletions(-) diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index c1d99451dc2c..d1acd3a21afa 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -771,7 +771,7 @@ "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/xml", + "application/octet-stream", "application/json" ], "parameters": [ @@ -783,6 +783,9 @@ "type": "string", "x-ms-client-name": "version" }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, { "name": "containerName", "in": "path", @@ -898,9 +901,6 @@ }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -943,6 +943,11 @@ "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." }, + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -957,6 +962,11 @@ "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-sealed": { "type": "boolean", "description": "If this blob has been sealed" @@ -1276,6 +1286,11 @@ "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." }, + "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" + }, "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." @@ -1290,6 +1305,11 @@ "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-sealed": { "type": "boolean", "description": "If this blob has been sealed" @@ -1334,6 +1354,10 @@ "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-rfc1123", @@ -1579,8 +1603,8 @@ } }, "put": { - "operationId": "Blob_SetHttpHeaders", - "description": "The Set HTTP Headers operation sets system properties on the blob.", + "operationId": "Blob_Undelete", + "description": "\"Undelete a blob that was previously soft deleted\"", "parameters": [ { "name": "x-ms-version", @@ -1615,82 +1639,6 @@ "type": "integer", "format": "int32" }, - { - "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", - "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" - }, - { - "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/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/Azure.Core.ClientRequestIdHeader" } @@ -1704,20 +1652,6 @@ "format": "date-time-rfc1123", "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-rfc1123", - "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": { "type": "string", "format": "uuid", @@ -1743,83 +1677,13 @@ } }, "post": { - "operationId": "Blob_Undelete", - "description": "\"Undelete a blob that was previously soft deleted\"", - "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}$" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } + "operationId": "Blob_Query", + "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", + "produces": [ + "application/octet-stream", + "application/json" ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-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." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "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": [ - { - "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", @@ -1844,14 +1708,6 @@ "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", @@ -1869,32 +1725,28 @@ "x-ms-client-name": "leaseId" }, { - "name": "x-ms-delete-snapshots", + "name": "x-ms-encryption-key", "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", + "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", - "enum": [ - "none", - "include" - ], - "x-ms-enum": { - "name": "DeleteSnapshotsOptionType", - "modelAsString": true, - "values": [ - { - "name": "Nonne", - "value": "none", - "description": "The delete snapshots include option is not specified." - }, - { - "name": "Include", - "value": "include", - "description": "The delete snapshots include option is include." - } - ] - }, - "x-ms-client-name": "deleteSnapshots" + "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", + "x-ms-client-name": "encryptionAlgorithm" }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -1917,173 +1769,21 @@ "x-ms-client-name": "ifTags" }, { - "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": [ - "none", - "include" - ], - "x-ms-enum": { - "name": "DeleteSnapshotsOptionType", - "modelAsString": true, - "values": [ - { - "name": "Nonne", - "value": "none", - "description": "The delete snapshots include option is not specified." - }, - { - "name": "Include", - "value": "include", - "description": "The delete snapshots include option is include." - } - ] - }, - "x-ms-client-name": "blobDeleteType" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "headers": { - "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-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." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", + "name": "queryRequest", + "in": "body", + "description": "The query request", + "required": true, "schema": { - "$ref": "#/definitions/StorageError" + "$ref": "#/definitions/QueryRequest" } } - } - }, - "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": [ - { - "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": "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", - "x-ms-client-name": "encryptionAlgorithm" - }, - { - "$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/Azure.Core.ClientRequestIdHeader" - } ], "responses": { "200": { "description": "The request has succeeded.", + "schema": { + "type": "file" + }, "headers": { "Accept-Ranges": { "type": "string", @@ -2114,6 +1814,10 @@ "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." }, + "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." + }, "Date": { "type": "string", "format": "date-time-rfc1123", @@ -2128,182 +1832,42 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, - "x-ms-access-tier": { + "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", - "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": "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": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive" + "BlockBlob", + "PageBlob", + "AppendBlob" ], "x-ms-enum": { - "name": "AccessTier", + "name": "BlobType", "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": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." }, { - "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." - } - ] - } - }, - "x-ms-access-tier-change-time": { - "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." - }, - "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." - }, - "x-ms-archive-status": { - "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.", - "enum": [ - "rehydrate-pending-to-hot", - "rehydrate-pending-to-cool", - "rehydrate-pending-to-archive", - "rehydrate-pending-to-expired" - ], - "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": "RehydratePendingToArchive", - "value": "rehydrate-pending-to-archive", - "description": "The archive status is rehydrating pending to archive." - }, - { - "name": "RehydratePendingToExpired", - "value": "rehydrate-pending-to-expired", - "description": "The archive status is rehydrating pending to expired." - } - ] - } - }, - "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": { - "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": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." }, { "name": "AppendBlob", @@ -2313,20 +1877,15 @@ ] } }, - "x-ms-client-request-id": { + "x-ms-content-crc64": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-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-destination-snapshot": { - "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-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." @@ -2379,11 +1938,6 @@ "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-rfc1123", - "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." @@ -2392,59 +1946,6 @@ "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-expiry-time": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob will expire." - }, - "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-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." - }, - "x-ms-incremental-copy": { - "type": "boolean", - "description": "Included if the blob is incremental copy 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-last-access-time": { - "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-lease-duration": { "type": "string", "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", @@ -2535,79 +2036,286 @@ ] } }, - "x-ms-legal-hold": { + "x-ms-request-server-encrypted": { "type": "boolean", - "description": "Specifies the legal hold status to set on the blob." + "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." + } + } + }, + "206": { + "description": "Successful", + "schema": { + "type": "file" + }, + "headers": { + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." }, - "x-ms-or-policy-id": { + "Cache-Control": { "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 is returned if it was previously specified for the blob." }, - "x-ms-rehydrate-priority": { + "Content-Disposition": { "type": "string", - "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." - } - ] - } + "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-request-id": { + "Content-Encoding": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "description": "This header returns the value that was specified for the Content-Encoding 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." + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." }, - "x-ms-tag-count": { + "Content-Length": { "type": "integer", "format": "int64", - "description": "The number of tags associated with the blob" + "description": "The number of bytes present in the response body." }, - "x-ms-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." }, - "x-ms-version-id": { + "Content-Range": { "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": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}/{containerName}/{blob}": { - "get": { - "operationId": "Blob_GetTags", - "description": "The Get Blob Tags operation enables users to get tags on a blob.", - "produces": [ - "application/xml", - "application/json" - ], + "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", + "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-rfc1123", + "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-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-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-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-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": "string", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." + } + ] + } + }, + "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-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": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "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": [ { "name": "x-ms-version", @@ -2634,14 +2342,6 @@ "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" - }, { "name": "snapshot", "in": "query", @@ -2657,6 +2357,14 @@ "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" + }, { "name": "x-ms-lease-id", "in": "header", @@ -2666,124 +2374,44 @@ "x-ms-client-name": "leaseId" }, { - "name": "x-ms-if-tags", + "name": "x-ms-delete-snapshots", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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", - "x-ms-client-name": "ifTags" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/BlobTags" + "enum": [ + "none", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": true, + "values": [ + { + "name": "Nonne", + "value": "none", + "description": "The delete snapshots include option is not specified." + }, + { + "name": "Include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] }, - "headers": { - "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-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." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "put": { - "operationId": "Blob_SetTags", - "description": "The Set Tags operation enables users to set tags on a blob.", - "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" - }, - { - "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" + "x-ms-client-name": "deleteSnapshots" }, { - "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/Azure.Core.ConditionalRequestHeaders.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/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "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/Azure.Core.ConditionalRequestHeaders.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/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -2794,21 +2422,40 @@ "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "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": [ + "none", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": true, + "values": [ + { + "name": "Nonne", + "value": "none", + "description": "The delete snapshots include option is not specified." + }, + { + "name": "Include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] + }, + "x-ms-client-name": "blobDeleteType" }, { - "name": "tags", - "in": "body", - "description": "The blob tags.", - "required": true, - "schema": { - "$ref": "#/definitions/BlobTags" - } + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "204": { - "description": "There is no content to send for this request, but the headers may be useful. ", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { "Date": { "type": "string", @@ -2839,25 +2486,21 @@ } } }, - "post": { - "operationId": "Blob_Query", - "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", - "produces": [ - "application/xml", - "application/json" - ], - "consumes": [ - "application/xml" - ], + "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": [ { "name": "x-ms-version", "in": "header", - "description": "Specifies the version of the operation to use for this request.", + "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.", "required": true, "type": "string", "x-ms-client-name": "version" }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, { "name": "containerName", "in": "path", @@ -2882,6 +2525,14 @@ "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", @@ -2941,26 +2592,11 @@ "required": false, "type": "string", "x-ms-client-name": "ifTags" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "queryRequest", - "in": "body", - "description": "The query request", - "required": true, - "schema": { - "$ref": "#/definitions/QueryRequest" - } } ], "responses": { "200": { "description": "The request has succeeded.", - "schema": { - "type": "file" - }, "headers": { "Accept-Ranges": { "type": "string", @@ -2970,273 +2606,9 @@ "type": "string", "description": "This header is returned if it was previously specified for the blob." }, - "Content-Encoding": { - "type": "string", - "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." - }, - "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." - }, - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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", - "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": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - }, - "x-ms-copy-completion-time": { - "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-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-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": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } - }, - "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-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-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." - } - } - }, - "206": { - "description": "Successful", - "schema": { - "type": "file" - }, - "headers": { - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "Cache-Control": { + "Content-Disposition": { "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "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", @@ -3255,10 +2627,6 @@ "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." }, - "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." - }, "Date": { "type": "string", "format": "date-time-rfc1123", @@ -3273,14 +2641,155 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, + "x-ms-access-tier": { + "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.", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive" + ], + "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." + } + ] + } + }, + "x-ms-access-tier-change-time": { + "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." + }, + "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." + }, + "x-ms-archive-status": { + "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.", + "enum": [ + "rehydrate-pending-to-hot", + "rehydrate-pending-to-cool", + "rehydrate-pending-to-archive", + "rehydrate-pending-to-expired" + ], + "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": "RehydratePendingToArchive", + "value": "rehydrate-pending-to-archive", + "description": "The archive status is rehydrating pending to archive." + }, + { + "name": "RehydratePendingToExpired", + "value": "rehydrate-pending-to-expired", + "description": "The archive status is rehydrating pending to expired." + } + ] + } + }, "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", - "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-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" }, "x-ms-blob-sequence-number": { "type": "integer", @@ -3327,6 +2836,10 @@ "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-destination-snapshot": { + "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-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." @@ -3379,6 +2892,11 @@ "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-rfc1123", + "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." @@ -3387,6 +2905,59 @@ "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-expiry-time": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob will expire." + }, + "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-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-incremental-copy": { + "type": "boolean", + "description": "Included if the blob is incremental copy 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-last-access-time": { + "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-lease-duration": { "type": "string", "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", @@ -3477,6 +3048,38 @@ ] } }, + "x-ms-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, + "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-rehydrate-priority": { + "type": "string", + "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." + } + ] + } + }, "x-ms-request-id": { "type": "string", "format": "uuid", @@ -3486,9 +3089,18 @@ "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-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, "x-ms-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": "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": { + "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." } } }, @@ -9702,6 +9314,10 @@ "x-ms-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": { + "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." } } }, @@ -9715,7 +9331,7 @@ } }, "/{containerName}/{blob}/?comp=expiry": { - "post": { + "put": { "operationId": "Blob_SetExpiry", "description": "\"Set the expiration time of a blob\"", "parameters": [ @@ -9744,6 +9360,14 @@ "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" + }, { "name": "x-ms-expiry-option", "in": "header", @@ -9942,15 +9566,6 @@ "format": "date-time-rfc1123", "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-rfc1123", - "description": "The date/time that the container was last modified." - }, "x-ms-client-request-id": { "type": "string", "format": "uuid", @@ -10054,19 +9669,264 @@ } ], "responses": { - "200": { - "description": "The request has succeeded.", + "200": { + "description": "The request has succeeded.", + "headers": { + "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-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." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}/?comp=lease&acquire": { + "put": { + "operationId": "Blob_AcquireLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "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" + }, + { + "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": true, + "type": "integer", + "format": "int32", + "x-ms-client-name": "duration" + }, + { + "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/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/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-rfc1123", + "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-rfc1123", + "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." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}/?comp=lease&break": { + "put": { + "operationId": "Blob_BreakLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "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" + }, + { + "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.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/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { "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" }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." + }, "x-ms-request-id": { "type": "string", "format": "uuid", @@ -10087,9 +9947,9 @@ } } }, - "/{containerName}/{blob}/?comp=lease&acquire": { + "/{containerName}/{blob}/?comp=lease&change": { "put": { - "operationId": "Blob_AcquireLease", + "operationId": "Blob_ChangeLease", "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { @@ -10126,13 +9986,12 @@ "format": "int32" }, { - "name": "x-ms-lease-duration", + "name": "x-ms-lease-id", "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.", + "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": "integer", - "format": "int32", - "x-ms-client-name": "duration" + "type": "string", + "x-ms-client-name": "leaseId" }, { "name": "x-ms-proposed-lease-id", @@ -10167,8 +10026,8 @@ } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "headers": { "Date": { "type": "string", @@ -10213,9 +10072,9 @@ } } }, - "/{containerName}/{blob}/?comp=lease&break": { + "/{containerName}/{blob}/?comp=lease&release": { "put": { - "operationId": "Blob_BreakLease", + "operationId": "Blob_ReleaseLease", "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { @@ -10252,13 +10111,12 @@ "format": "int32" }, { - "name": "x-ms-lease-break-period", + "name": "x-ms-lease-id", "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" + "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/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -10285,8 +10143,8 @@ } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "200": { + "description": "The request has succeeded.", "headers": { "Date": { "type": "string", @@ -10307,11 +10165,6 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "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", @@ -10332,9 +10185,9 @@ } } }, - "/{containerName}/{blob}/?comp=lease&change": { + "/{containerName}/{blob}/?comp=lease&renew": { "put": { - "operationId": "Blob_ChangeLease", + "operationId": "Blob_RenewLease", "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { @@ -10378,14 +10231,6 @@ "type": "string", "x-ms-client-name": "leaseId" }, - { - "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/Azure.Core.ConditionalRequestHeaders.ifMatch" }, @@ -10457,10 +10302,10 @@ } } }, - "/{containerName}/{blob}/?comp=lease&release": { + "/{containerName}/{blob}/?comp=legalhold": { "put": { - "operationId": "Blob_ReleaseLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "operationId": "Blob_SetLegalHold", + "description": "The Set Legal Hold operation sets a legal hold on the blob.", "parameters": [ { "name": "x-ms-version", @@ -10496,32 +10341,12 @@ "format": "int32" }, { - "name": "x-ms-lease-id", + "name": "x-ms-legal-hold", "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.", + "description": "Required. Specifies the legal hold status to set on the blob.", "required": true, - "type": "string", - "x-ms-client-name": "leaseId" - }, - { - "$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" + "type": "boolean", + "x-ms-client-name": "legalHold" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -10536,20 +10361,15 @@ "format": "date-time-rfc1123", "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-rfc1123", - "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-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, "x-ms-request-id": { "type": "string", "format": "uuid", @@ -10570,10 +10390,10 @@ } } }, - "/{containerName}/{blob}/?comp=lease&renew": { + "/{containerName}/{blob}/?comp=metadata": { "put": { - "operationId": "Blob_RenewLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "operationId": "Blob_SetMetadata", + "description": "The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs.", "parameters": [ { "name": "x-ms-version", @@ -10611,11 +10431,43 @@ { "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, + "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", + "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" }, @@ -10663,18 +10515,30 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-lease-id": { + "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-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-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-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": { + "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." } } }, @@ -10687,10 +10551,10 @@ } } }, - "/{containerName}/{blob}/?comp=legalhold": { + "/{containerName}/{blob}/?comp=properties&SetHTTPHeaders": { "put": { - "operationId": "Blob_SetLegalHold", - "description": "The Set Legal Hold operation sets a legal hold on the blob.", + "operationId": "Blob_SetHttpHeaders", + "description": "The Set HTTP Headers operation sets system properties on the blob.", "parameters": [ { "name": "x-ms-version", @@ -10726,12 +10590,80 @@ "format": "int32" }, { - "name": "x-ms-legal-hold", + "name": "x-ms-blob-cache-control", "in": "header", - "description": "Required. Specifies the legal hold status to set on the blob.", - "required": true, - "type": "boolean", - "x-ms-client-name": "legalHold" + "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", + "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" + }, + { + "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/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/Azure.Core.ClientRequestIdHeader" @@ -10746,15 +10678,25 @@ "format": "date-time-rfc1123", "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-rfc1123", + "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": { "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", @@ -10775,10 +10717,10 @@ } } }, - "/{containerName}/{blob}/?comp=metadata": { + "/{containerName}/{blob}/?comp=snapshot": { "put": { - "operationId": "Blob_SetMetadata", - "description": "The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs.", + "operationId": "Blob_CreateSnapshot", + "description": "The Create Snapshot operation creates a read-only snapshot of a blob", "parameters": [ { "name": "x-ms-version", @@ -10813,14 +10755,6 @@ "type": "integer", "format": "int32" }, - { - "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", @@ -10873,13 +10807,21 @@ "type": "string", "x-ms-client-name": "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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { "Date": { "type": "string", @@ -10900,14 +10842,6 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "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-request-id": { "type": "string", "format": "uuid", @@ -10917,9 +10851,17 @@ "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-snapshot": { + "type": "string", + "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." + }, "x-ms-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": { + "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." } } }, @@ -10932,10 +10874,14 @@ } } }, - "/{containerName}/{blob}/?comp=snapshot": { - "put": { - "operationId": "Blob_CreateSnapshot", - "description": "The Create Snapshot operation creates a read-only snapshot of a blob", + "/{containerName}/{blob}/?comp=tags": { + "get": { + "operationId": "Blob_GetTags", + "description": "The Get Blob Tags operation enables users to get tags on a blob.", + "produces": [ + "application/xml", + "application/json" + ], "parameters": [ { "name": "x-ms-version", @@ -10970,6 +10916,21 @@ "type": "integer", "format": "int32" }, + { + "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": "x-ms-lease-id", "in": "header", @@ -10979,48 +10940,118 @@ "x-ms-client-name": "leaseId" }, { - "name": "x-ms-encryption-key", + "name": "x-ms-if-tags", "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.", + "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": "encryptionKey" + "x-ms-client-name": "ifTags" }, { - "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/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/BlobTags" + }, + "headers": { + "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-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." + }, + "x-ms-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." + } + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}/?comp=tags&_overload=setTags": { + "put": { + "operationId": "Blob_SetTags", + "description": "The Set Tags operation enables users to set tags on a blob.", + "consumes": [ + "application/xml" + ], + "parameters": [ { - "name": "x-ms-encryption-algorithm", + "name": "x-ms-version", "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, + "description": "Specifies the version of the operation to use for this request.", + "required": true, "type": "string", - "x-ms-client-name": "encryptionAlgorithm" + "x-ms-client-name": "version" }, { - "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, + "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", - "x-ms-client-name": "encryptionScope" + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.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" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "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/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "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/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "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" }, { "name": "x-ms-if-tags", @@ -11030,28 +11061,36 @@ "type": "string", "x-ms-client-name": "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/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "tags", + "in": "body", + "description": "The blob tags.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobTags" + } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", "headers": { "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" }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, "x-ms-client-request-id": { "type": "string", "format": "uuid", @@ -11062,14 +11101,6 @@ "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-snapshot": { - "type": "string", - "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." - }, "x-ms-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." @@ -11115,6 +11146,21 @@ "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", From 3ca03d4a7294bf024bfddf833f43a8a551b8ad50 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 22 Oct 2024 18:27:10 -0700 Subject: [PATCH 073/129] fix pageblob operations --- .../storage/Microsoft.BlobStorage/models.tsp | 5 +- .../storage/Microsoft.BlobStorage/routes.tsp | 40 ++++-- .../stable/2021-12-02/blob.json | 136 ++++++++++++++---- 3 files changed, 139 insertions(+), 42 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 3844e6bd3842..7824eff988fb 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -897,6 +897,7 @@ model BlobFlatListSegment { } /** Represents a page list. */ +@pagedResult model PageList { /** The page ranges. */ @Xml.name("PageRange") pageRange: PageRange[]; @@ -905,7 +906,9 @@ model PageList { @Xml.name("ClearRange") clearRange: ClearRange[]; /** The next marker. */ - @Xml.name("NextMarker") nextMarker?: string; + @nextLink + @Xml.name("NextMarker") + nextMarker?: string; } /** The page range. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 40126cba04bb..7d8f51d1d6c9 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -16,12 +16,13 @@ using Azure.Core; op StorageOperation< TParams extends TypeSpec.Reflection.Model | void, TResponse extends TypeSpec.Reflection.Model | void, + MediaType extends string = "application/xml", TError = StorageError >( /** Content-Type header */ #suppress "@typespec/http/content-type-ignored" "Template for exisitng API" @header("Content-Type") - contentType: "application/xml", + contentType: MediaType, /** Specifies the version of the operation to use for this request. */ @header("x-ms-version") @@ -33,7 +34,7 @@ op StorageOperation< /** Content-Type header */ #suppress "@typespec/http/content-type-ignored" "Template for exisitng API" @header("Content-Type") - contentType: "application/xml"; + contentType: MediaType; /** 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. */ @header("x-ms-version") @@ -1401,6 +1402,7 @@ interface PageBlob { ...BlobSequenceNumberParameter; ...BlobTagsHeaderParameter; ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; ...LegalHoldOptionalParameter; }, { @@ -1413,22 +1415,25 @@ interface PageBlob { ...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") uploadPages is StorageOperation< { + ...ContainerNameParameter; + ...BlobNameParameter; + /** The data to upload. */ ...BodyParameter; - ...ContainerNameParameter; - ...BlobNameParameter; ...ContentLengthParameter; ...ContentMd5Parameter; ...ContentCrc64Parameter; @@ -1456,7 +1461,8 @@ interface PageBlob { ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; - } + }, + "application/octet-stream" >; /** The Clear Pages operation clears a range of pages from a page blob */ @@ -1473,6 +1479,10 @@ interface PageBlob { ...TimeoutParameter; ...RangeParameter; ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; ...IfSequenceNumberLessThanOrEqualToParameter; ...IfSequenceNumberLessThanParameter; ...IfSequenceNumberEqualToParameter; @@ -1483,9 +1493,12 @@ interface PageBlob { @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. */ @@ -1497,12 +1510,12 @@ interface PageBlob { { ...ContainerNameParameter; ...BlobNameParameter; - ...TimeoutParameter; - ...ContentLengthParameter; ...SourceUrlParameter; ...SourceRangeRequiredPutPageFromUrlParameter; ...SourceContentMd5Parameter; ...SourceContentCrc64Parameter; + ...ContentLengthParameter; + ...TimeoutParameter; ...RangeRequiredPutPageFromUrlParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; @@ -1521,17 +1534,18 @@ interface PageBlob { ...CopySourceAuthorizationParameter; }, { - @statusCode statusCode: 202; + @statusCode statusCode: 201; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...DateResponseHeader; ...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. */ @@ -1543,6 +1557,7 @@ interface PageBlob { ...ContainerNameParameter; ...BlobNameParameter; ...SnapshotParameter; + ...TimeoutParameter; ...RangeParameter; ...LeaseIdOptionalParameter; ...ConditionalRequestHeaders; @@ -1650,7 +1665,6 @@ interface PageBlob { ...TimeoutParameter; ...ConditionalRequestHeaders; ...IfTagsParameter; - ...LeaseIdOptionalParameter; ...CopySourceParameter; }, { diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index d1acd3a21afa..ea986ea0281a 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -4998,6 +4998,40 @@ "format": "date-time-rfc1123", "x-ms-client-name": "immutabilityPolicyExpiry" }, + { + "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" + }, { "name": "x-ms-legal-hold", "in": "header", @@ -5078,7 +5112,7 @@ "operationId": "PageBlob_UploadPages", "description": "The Upload Pages operation writes a range of pages to a page blob", "consumes": [ - "application/xml" + "application/octet-stream" ], "parameters": [ { @@ -5379,6 +5413,38 @@ "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", + "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-if-sequence-number-le", "in": "header", @@ -5434,6 +5500,10 @@ "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-rfc1123", @@ -5458,6 +5528,10 @@ "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-request-id": { "type": "string", "format": "uuid", @@ -5508,23 +5582,6 @@ "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" - }, - { - "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-source-url", "in": "header", @@ -5557,6 +5614,23 @@ "type": "string", "x-ms-client-name": "sourceContentCrc64" }, + { + "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" + }, { "name": "x-ms-range", "in": "header", @@ -5699,8 +5773,8 @@ } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { "Content-MD5": { "type": "string", @@ -5807,6 +5881,14 @@ "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" + }, { "name": "x-ms-range", "in": "header", @@ -5910,6 +5992,9 @@ "$ref": "#/definitions/StorageError" } } + }, + "x-ms-pageable": { + "nextLinkName": "nextMarker" } } }, @@ -6080,6 +6165,9 @@ "$ref": "#/definitions/StorageError" } } + }, + "x-ms-pageable": { + "nextLinkName": "nextMarker" } } }, @@ -6461,14 +6549,6 @@ "type": "string", "x-ms-client-name": "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" - }, { "name": "x-ms-copy-source", "in": "header", From 1010181776cea4e17f8259dfce5c2c8ef350f551 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 22 Oct 2024 18:36:25 -0700 Subject: [PATCH 074/129] move base blob interface route to each operation --- .../storage/Microsoft.BlobStorage/routes.tsp | 52 +- .../stable/2021-12-02/blob.json | 5850 ++++++++--------- 2 files changed, 2952 insertions(+), 2950 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 7d8f51d1d6c9..68e75d94b937 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -565,13 +565,13 @@ interface Container { } #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." -@route("/{containerName}/{blob}") interface 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 + @route("/{containerName}/{blob}") download( /** Specifies the version of the operation to use for this request. */ @header("x-ms-version") @@ -706,6 +706,7 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @head + @route("/{containerName}/{blob}") getProperties( /** 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. */ @header("x-ms-version") @@ -795,6 +796,7 @@ interface 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("/{containerName}/{blob}") delete is StorageOperation< { ...ContainerNameParameter; @@ -814,11 +816,11 @@ interface Blob { } >; - /** "Undelete a blob that was previously soft deleted" */ + /** 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/no-response-body" "Existing API" - @route("?comp=undelete") @put + @route("/{containerName}/{blob}?comp=undelete") undelete is StorageOperation< { ...ContainerNameParameter; @@ -828,11 +830,11 @@ interface Blob { DateResponseHeader >; - /** "Set the expiration time of a blob" */ + /** Set the expiration time 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=expiry") + @route("/{containerName}/{blob}?comp=expiry") setExpiry is StorageOperation< { ...ContainerNameParameter; @@ -853,7 +855,7 @@ interface Blob { #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") + @route("/{containerName}/{blob}?comp=properties&SetHTTPHeaders") setHttpHeaders is StorageOperation< { ...ContainerNameParameter; @@ -877,12 +879,12 @@ interface Blob { } >; - /** "Set the immutability policy of a blob" */ + /** 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") + @route("/{containerName}/{blob}?comp=immutabilityPolicies") setImmutabilityPolicy is StorageOperation< { ...ContainerNameParameter; @@ -903,7 +905,7 @@ interface 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") + @route("/{containerName}/{blob}?comp=immutabilityPolicies") deleteImmutabilityPolicy is StorageOperation< { ...ContainerNameParameter; @@ -918,7 +920,7 @@ interface Blob { #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") + @route("/{containerName}/{blob}?comp=legalhold") setLegalHold is StorageOperation< { ...ContainerNameParameter; @@ -937,7 +939,7 @@ interface Blob { #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") + @route("/{containerName}/{blob}?comp=metadata") setMetadata is StorageOperation< { ...ContainerNameParameter; @@ -970,7 +972,7 @@ interface Blob { #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") + @route("/{containerName}/{blob}?comp=lease&acquire") acquireLease is StorageOperation< { ...ContainerNameParameter; @@ -995,7 +997,7 @@ interface Blob { #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") + @route("/{containerName}/{blob}?comp=lease&release") releaseLease is StorageOperation< { ...ContainerNameParameter; @@ -1017,7 +1019,7 @@ interface Blob { #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") + @route("/{containerName}/{blob}?comp=lease&renew") renewLease is StorageOperation< { ...ContainerNameParameter; @@ -1040,7 +1042,7 @@ interface Blob { #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") + @route("/{containerName}/{blob}?comp=lease&change") changeLease is StorageOperation< { ...ContainerNameParameter; @@ -1063,7 +1065,7 @@ interface 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=lease&break") + @route("/{containerName}/{blob}?comp=lease&break") breakLease is StorageOperation< { ...ContainerNameParameter; @@ -1086,7 +1088,7 @@ interface 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") + @route("/{containerName}/{blob}?comp=snapshot") createSnapshot is StorageOperation< { ...ContainerNameParameter; @@ -1119,7 +1121,7 @@ interface 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") + @route("/{containerName}/{blob}?comp=copy") startCopyFromUrl is StorageOperation< { ...ContainerNameParameter; @@ -1164,7 +1166,7 @@ interface 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&sync") + @route("/{containerName}/{blob}?comp=copy&sync") copyFromUrl is StorageOperation< { ...ContainerNameParameter; @@ -1208,7 +1210,7 @@ interface Blob { /** 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") + @route("/{containerName}/{blob}?comp=copy©id") abortCopyFromUrl is StorageOperation< { ...ContainerNameParameter; @@ -1228,7 +1230,7 @@ interface Blob { #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") + @route("/{containerName}/{blob}?comp=tier") setTier is StorageOperation< { ...ContainerNameParameter; @@ -1251,7 +1253,7 @@ interface Blob { #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") + @route("/{containerName}/{blob}?restype=account&comp=properties") getAccountInfo is StorageOperation< { ...ContainerNameParameter; @@ -1267,7 +1269,7 @@ interface Blob { /** 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" @post - @route("?comp=query") + @route("/{containerName}/{blob}?comp=query") query( ...ContainerNameParameter, ...BlobNameParameter, @@ -1329,7 +1331,7 @@ interface Blob { /** 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") + @route("/{containerName}/{blob}?comp=tags") getTags is StorageOperation< { ...ContainerNameParameter; @@ -1346,7 +1348,7 @@ interface Blob { /** 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") + @route("/{containerName}/{blob}?comp=tags") setTags is StorageOperation< { ...ContainerNameParameter; diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index ea986ea0281a..77a04242eaa8 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -1604,7 +1604,7 @@ }, "put": { "operationId": "Blob_Undelete", - "description": "\"Undelete a blob that was previously soft deleted\"", + "description": "Undelete a blob that was previously soft deleted", "parameters": [ { "name": "x-ms-version", @@ -4805,10 +4805,10 @@ } } }, - "/{containerName}/{blob}?PageBlob": { + "/{containerName}/{blob}?comp=expiry": { "put": { - "operationId": "PageBlob_Create", - "description": "The Create operation creates a new page blob.", + "operationId": "Blob_SetExpiry", + "description": "Set the expiration time of a blob", "parameters": [ { "name": "x-ms-version", @@ -4844,214 +4844,61 @@ "format": "int32" }, { - "name": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" - }, - { - "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" - }, - { - "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", - "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", - "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/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" - }, - { - "name": "x-ms-blob-content-length", + "name": "x-ms-expiry-option", "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.", + "description": "Required. Indicates mode of the expiry time", "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "blobContentLength" - }, - { - "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" - }, - { - "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" - }, - { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" + "NeverExpire", + "RelativeToCreation", + "RelativeToNow", + "Absolute" ], "x-ms-enum": { - "name": "BlobImmutabilityPolicyMode", + "name": "BlobExpiryOptions", "modelAsString": true, "values": [ { - "name": "Mutable", - "value": "Mutable", - "description": "The immutability policy is mutable." + "name": "NeverExpire", + "value": "NeverExpire", + "description": "Never expire." }, { - "name": "Locked", - "value": "Locked", - "description": "The immutability policy is locked." + "name": "RelativeToCreation", + "value": "RelativeToCreation", + "description": "Relative to creation time." }, { - "name": "Unlocked", - "value": "Unlocked", - "description": "The immutability policy is unlocked." + "name": "RelativeToNow", + "value": "RelativeToNow", + "description": "Relative to now." + }, + { + "name": "Absolute", + "value": "Absolute", + "description": "Absolute time." } ] }, - "x-ms-client-name": "immutabilityPolicyMode" + "x-ms-client-name": "expiryOptions" }, { - "name": "x-ms-legal-hold", + "name": "x-ms-expiry-time", "in": "header", - "description": "Specified if a legal hold should be set on the blob.", - "required": false, - "type": "boolean", - "x-ms-client-name": "legalHold" + "description": "The time to set the blob to expiry.", + "required": true, + "type": "string", + "x-ms-client-name": "ExpiresOn" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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-rfc1123", @@ -5071,30 +4918,14 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "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-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-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": { - "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." } } }, @@ -5107,13 +4938,10 @@ } } }, - "/{containerName}/{blob}?comp=page&update": { + "/{containerName}/{blob}?comp=properties&SetHTTPHeaders": { "put": { - "operationId": "PageBlob_UploadPages", - "description": "The Upload Pages operation writes a range of pages to a page blob", - "consumes": [ - "application/octet-stream" - ], + "operationId": "Blob_SetHttpHeaders", + "description": "The Set HTTP Headers operation sets system properties on the blob.", "parameters": [ { "name": "x-ms-version", @@ -5141,112 +4969,68 @@ "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "name": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, + "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": "int64", - "x-ms-client-name": "contentLength" + "format": "int32" }, { - "name": "Content-MD5", + "name": "x-ms-blob-cache-control", "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.", + "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": "transactionalContentMD5" + "x-ms-client-name": "blobCacheControl" }, { - "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" - }, - { - "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" - }, - { - "name": "x-ms-range", + "name": "x-ms-blob-content-type", "in": "header", - "description": "Return only the bytes of the blob in the specified range.", + "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": "range" + "x-ms-client-name": "blobContentType" }, { - "name": "x-ms-lease-id", + "name": "x-ms-blob-content-md5", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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": "leaseId" + "x-ms-client-name": "blobContentMd5" }, { - "name": "x-ms-encryption-key", + "name": "x-ms-blob-content-encoding", "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.", + "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": "encryptionKey" + "x-ms-client-name": "blobContentEncoding" }, { - "name": "x-ms-encryption-key-sha256", + "name": "x-ms-blob-content-language", "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.", + "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": "encryptionKeySha256" + "x-ms-client-name": "blobContentLanguage" }, { - "name": "x-ms-encryption-algorithm", + "name": "x-ms-lease-id", "in": "header", - "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "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": "encryptionAlgorithm" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-encryption-scope", + "name": "x-ms-blob-content-disposition", "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.", + "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": "encryptionScope" - }, - { - "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" - }, - { - "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" - }, - { - "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" + "x-ms-client-name": "blobContentDisposition" }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -5270,26 +5054,12 @@ }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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-rfc1123", @@ -5314,27 +5084,11 @@ "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-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-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-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." @@ -5350,10 +5104,10 @@ } } }, - "/{containerName}/{blob}?comp=page&clear": { + "/{containerName}/{blob}?comp=immutabilityPolicies": { "put": { - "operationId": "PageBlob_ClearPages", - "description": "The Clear Pages operation clears a range of pages from a page blob", + "operationId": "Blob_SetImmutabilityPolicy", + "description": "Set the immutability policy of a blob", "parameters": [ { "name": "x-ms-version", @@ -5380,15 +5134,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "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", @@ -5398,140 +5143,186 @@ "format": "int32" }, { - "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" - }, - { - "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", + "name": "If-Unmodified-Since", "in": "header", - "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "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", - "x-ms-client-name": "encryptionAlgorithm" + "format": "date-time-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "name": "x-ms-encryption-scope", + "name": "x-ms-immutability-policy-until-date", "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.", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", "required": false, "type": "string", - "x-ms-client-name": "encryptionScope" - }, - { - "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" - }, - { - "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" - }, - { - "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/Azure.Core.ConditionalRequestHeaders.ifMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "format": "date-time-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "name": "x-ms-if-tags", + "name": "x-ms-immutability-policy-mode", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "description": "Specifies the immutability policy mode to set on the blob.", "required": false, "type": "string", - "x-ms-client-name": "ifTags" + "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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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-rfc1123", "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "ETag": { + "x-ms-client-request-id": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "Last-Modified": { + "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-rfc1123", - "description": "The date/time that the container was last modified." + "description": "Indicates the time the immutability policy will expire." }, - "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-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-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." + } + } + }, + "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": [ + { + "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" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "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-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-request-id": { "type": "string", "format": "uuid", @@ -5552,10 +5343,10 @@ } } }, - "/{containerName}/{blob}?comp=page&update&fromUrl": { + "/{containerName}/{blob}?comp=legalhold": { "put": { - "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.", + "operationId": "Blob_SetLegalHold", + "description": "The Set Legal Hold operation sets a legal hold on the blob.", "parameters": [ { "name": "x-ms-version", @@ -5583,45 +5374,92 @@ "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "name": "x-ms-source-url", - "in": "header", - "description": "Specify a URL to the copy source.", - "required": true, - "type": "string", - "x-ms-client-name": "sourceUrl" + "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" }, { - "name": "x-ms-source-range", + "name": "x-ms-legal-hold", "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.", + "description": "Required. Specifies the legal hold status to set on the blob.", "required": true, - "type": "string", - "x-ms-client-name": "sourceRange" + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "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/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "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-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." + }, + "x-ms-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." + } + } }, + "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": [ { - "name": "x-ms-source-content-crc64", + "name": "x-ms-version", "in": "header", - "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source.", - "required": false, + "description": "Specifies the version of the operation to use for this request.", + "required": true, "type": "string", - "x-ms-client-name": "sourceContentCrc64" + "x-ms-client-name": "version" }, { - "name": "Content-Length", - "in": "header", - "description": "The length of the request.", + "name": "containerName", + "in": "path", + "description": "The name of the container.", "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" + "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", @@ -5632,12 +5470,12 @@ "format": "int32" }, { - "name": "x-ms-range", + "name": "x-ms-lease-id", "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, + "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": "range" + "x-ms-client-name": "leaseId" }, { "name": "x-ms-encryption-key", @@ -5672,51 +5510,16 @@ "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-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/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "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/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -5726,60 +5529,14 @@ "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-rfc1123", - "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-rfc1123", - "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-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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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-rfc1123", @@ -5794,20 +5551,11 @@ "format": "date-time-rfc1123", "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": { "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-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." @@ -5828,6 +5576,10 @@ "x-ms-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": { + "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." } } }, @@ -5840,14 +5592,10 @@ } } }, - "/{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" - ], + "/{containerName}/{blob}?comp=lease&acquire": { + "put": { + "operationId": "Blob_AcquireLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { "name": "x-ms-version", @@ -5874,13 +5622,6 @@ "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", @@ -5890,20 +5631,21 @@ "format": "int32" }, { - "name": "x-ms-range", + "name": "x-ms-lease-duration", "in": "header", - "description": "Return only the bytes of the blob in the specified range.", - "required": false, - "type": "string", - "x-ms-client-name": "range" + "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": true, + "type": "integer", + "format": "int32", + "x-ms-client-name": "duration" }, { - "name": "x-ms-lease-id", + "name": "x-ms-proposed-lease-id", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "description": "Optional. The proposed lease ID for the container.", "required": false, "type": "string", - "x-ms-client-name": "leaseId" + "x-ms-client-name": "proposedLeaseId" }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -5925,31 +5667,13 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PageList" - }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { "Date": { "type": "string", @@ -5965,16 +5689,15 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, - "x-ms-blob-content-length": { - "type": "integer", - "format": "int64", - "description": "The size of the blob in bytes." - }, "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", @@ -5992,20 +5715,13 @@ "$ref": "#/definitions/StorageError" } } - }, - "x-ms-pageable": { - "nextLinkName": "nextMarker" } } }, - "/{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" - ], + "/{containerName}/{blob}?comp=lease&release": { + "put": { + "operationId": "Blob_ReleaseLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { "name": "x-ms-version", @@ -6032,13 +5748,6 @@ "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", @@ -6047,34 +5756,11 @@ "type": "integer", "format": "int32" }, - { - "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": true, - "type": "string" - }, - { - "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": true, - "type": "string", - "x-ms-client-name": "prevSnapshotUrl" - }, - { - "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" - }, { "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, + "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" }, @@ -6098,21 +5784,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -6120,9 +5791,6 @@ "responses": { "200": { "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PageList" - }, "headers": { "Date": { "type": "string", @@ -6138,11 +5806,6 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, - "x-ms-blob-content-length": { - "type": "integer", - "format": "int64", - "description": "The size of the blob in bytes." - }, "x-ms-client-request-id": { "type": "string", "format": "uuid", @@ -6165,16 +5828,13 @@ "$ref": "#/definitions/StorageError" } } - }, - "x-ms-pageable": { - "nextLinkName": "nextMarker" } } }, - "/{containerName}/{blob}?comp=properties&Resize": { + "/{containerName}/{blob}?comp=lease&renew": { "put": { - "operationId": "PageBlob_Resize", - "description": "The Resize operation increases the size of the page blob to the specified size.", + "operationId": "Blob_RenewLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { "name": "x-ms-version", @@ -6212,43 +5872,11 @@ { "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, + "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-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", - "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" }, @@ -6269,15 +5897,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -6300,16 +5919,15 @@ "format": "date-time-rfc1123", "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": { "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", @@ -6330,10 +5948,10 @@ } } }, - "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { + "/{containerName}/{blob}?comp=lease&change": { "put": { - "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.", + "operationId": "Blob_ChangeLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { "name": "x-ms-version", @@ -6371,11 +5989,19 @@ { "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, + "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": "Optional. The proposed lease ID for the container.", + "required": false, + "type": "string", + "x-ms-client-name": "proposedLeaseId" + }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, @@ -6396,49 +6022,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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" - }, - { - "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "blobSequenceNumber" - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -6461,16 +6044,15 @@ "format": "date-time-rfc1123", "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": { "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", @@ -6491,10 +6073,10 @@ } } }, - "/{containerName}/{blob}?comp=incrementalcopy": { + "/{containerName}/{blob}?comp=lease&break": { "put": { - "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_BreakLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { "name": "x-ms-version", @@ -6529,6 +6111,15 @@ "type": "integer", "format": "int32" }, + { + "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.ConditionalRequestHeaders.ifMatch" }, @@ -6549,14 +6140,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -6584,45 +6167,10 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "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-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-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." }, "x-ms-request-id": { "type": "string", @@ -6644,10 +6192,10 @@ } } }, - "/{containerName}/{blob}?AppendBlob": { + "/{containerName}/{blob}?comp=snapshot": { "put": { - "operationId": "AppendBlob_Create", - "description": "The Create operation creates a new append blob.", + "operationId": "Blob_CreateSnapshot", + "description": "The Create Snapshot operation creates a read-only snapshot of a blob", "parameters": [ { "name": "x-ms-version", @@ -6682,71 +6230,6 @@ "type": "integer", "format": "int32" }, - { - "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", - "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", @@ -6800,63 +6283,12 @@ "x-ms-client-name": "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" - }, - { - "name": "x-ms-immutability-policy-until-date", + "name": "x-ms-lease-id", "in": "header", - "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", "required": false, "type": "string", - "format": "date-time-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" - }, - { - "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" + "x-ms-client-name": "leaseId" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -6866,10 +6298,6 @@ "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-rfc1123", @@ -6889,14 +6317,6 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "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-request-id": { "type": "string", "format": "uuid", @@ -6906,6 +6326,10 @@ "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-snapshot": { + "type": "string", + "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." + }, "x-ms-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." @@ -6925,13 +6349,10 @@ } } }, - "/{containerName}/{blob}?BlockBlob": { + "/{containerName}/{blob}?comp=copy": { "put": { - "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/xml" - ], + "operationId": "Blob_StartCopyFromUrl", + "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", "parameters": [ { "name": "x-ms-version", @@ -6966,102 +6387,6 @@ "type": "integer", "format": "int32" }, - { - "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-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", - "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", - "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-access-tier", "in": "header", @@ -7162,6 +6487,76 @@ }, "x-ms-client-name": "tier" }, + { + "name": "x-ms-rehydrate-priority", + "in": "header", + "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", + "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-rfc1123", + "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-rfc1123", + "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" }, @@ -7182,6 +6577,22 @@ "type": "string", "x-ms-client-name": "ifTags" }, + { + "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" + }, + { + "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-tags", "in": "header", @@ -7190,6 +6601,14 @@ "type": "string", "x-ms-client-name": "BlobTagsString" }, + { + "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" + }, { "name": "x-ms-immutability-policy-until-date", "in": "header", @@ -7241,36 +6660,14 @@ "type": "boolean", "x-ms-client-name": "legalHold" }, - { - "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/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "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-rfc1123", @@ -7290,23 +6687,51 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-encryption-key-sha256": { + "x-ms-copy-id": { "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": "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-scope": { + "x-ms-copy-status": { "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" + "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-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-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." @@ -7326,10 +6751,10 @@ } } }, - "/{containerName}/{blob}?BlockBlob&fromUrl": { + "/{containerName}/{blob}?comp=copy&sync": { "put": { - "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.", + "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": [ { "name": "x-ms-version", @@ -7364,111 +6789,6 @@ "type": "integer", "format": "int32" }, - { - "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", - "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", - "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-access-tier", "in": "header", @@ -7570,33 +6890,22 @@ "x-ms-client-name": "tier" }, { - "$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", + "name": "x-ms-source-if-modified-since", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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": "ifTags" + "format": "date-time-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "name": "x-ms-source-if-modified-since", + "name": "x-ms-source-if-unmodified-since", "in": "header", - "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "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-rfc1123", - "x-ms-client-name": "sourceIfModifiedSince" + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { "name": "x-ms-source-if-match", @@ -7615,28 +6924,24 @@ "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" }, { - "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/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "x-ms-tags", + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + }, + { + "name": "x-ms-if-tags", "in": "header", - "description": "Optional. Used to set blob tags in various blob operations.", + "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": "BlobTagsString" + "x-ms-client-name": "ifTags" }, { "name": "x-ms-copy-source", @@ -7647,218 +6952,111 @@ "x-ms-client-name": "copySource" }, { - "name": "x-ms-copy-source-blob-properties", + "name": "x-ms-lease-id", "in": "header", - "description": "Optional, default is true. Indicates if properties from the source blob should be copied.", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", "required": false, - "type": "boolean", - "x-ms-client-name": "copySourceBlobProperties" + "type": "string", + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-copy-source-authorization", + "name": "x-ms-source-content-md5", "in": "header", - "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "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": "copySourceAuthorization" + "x-ms-client-name": "sourceContentMd5" }, { - "name": "x-ms-copy-source-tags", + "name": "x-ms-tags", "in": "header", - "description": "Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags.", + "description": "Optional. Used to set blob tags in various blob operations.", "required": false, "type": "string", - "x-ms-client-name": "copySourceTags" + "x-ms-client-name": "BlobTagsString" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "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." - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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-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-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-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=block": { - "put": { - "operationId": "BlockBlob_StageBlock", - "description": "The Stage Block operation creates a new block to be committed as part of a blob", - "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" - }, - { - "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" - }, - { - "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": "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" - }, - { - "name": "x-ms-content-crc64", + "name": "x-ms-immutability-policy-until-date", "in": "header", - "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", "required": false, "type": "string", - "x-ms-client-name": "transactionalContentCrc64" + "format": "date-time-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "name": "x-ms-lease-id", + "name": "x-ms-immutability-policy-mode", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "description": "Specifies the immutability policy mode to set on the blob.", "required": false, "type": "string", - "x-ms-client-name": "leaseId" + "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" }, { - "name": "x-ms-encryption-key", + "name": "x-ms-legal-hold", "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.", + "description": "Specified if a legal hold should be set on the blob.", "required": false, - "type": "string", - "x-ms-client-name": "encryptionKey" + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "name": "x-ms-encryption-key-sha256", + "name": "x-ms-copy-source-authorization", "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.", + "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": "encryptionKeySha256" + "x-ms-client-name": "copySourceAuthorization" }, { - "name": "x-ms-encryption-algorithm", + "name": "x-ms-encryption-scope", "in": "header", - "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "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": "encryptionAlgorithm" + "x-ms-client-name": "encryptionScope" }, { - "name": "x-ms-encryption-scope", + "name": "x-ms-copy-source-tags", "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.", + "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": "encryptionScope" + "x-ms-client-name": "copySourceTags" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { "Content-MD5": { "type": "string", @@ -7869,6 +7067,15 @@ "format": "date-time-rfc1123", "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-rfc1123", + "description": "The date/time that the container was last modified." + }, "x-ms-client-request-id": { "type": "string", "format": "uuid", @@ -7878,9 +7085,45 @@ "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-copy-id": { "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": "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-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-encryption-scope": { "type": "string", @@ -7891,13 +7134,13 @@ "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-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": { + "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." } } }, @@ -7910,13 +7153,10 @@ } } }, - "/{containerName}/{blob}?AppendBlob/{containerName}/{blob}?comp=appendblock": { + "/{containerName}/{blob}?comp=copy©id": { "put": { - "operationId": "AppendBlob_AppendBlock", - "description": "The Append Block operation commits a new block of data to the end of an append blob.", - "consumes": [ - "application/xml" - ], + "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": [ { "name": "x-ms-version", @@ -7952,185 +7192,44 @@ "format": "int32" }, { - "name": "Content-Length", + "name": "x-ms-copy-id", "in": "header", - "description": "The length of the request.", + "description": "The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation.", "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" + "type": "string", + "x-ms-client-name": "copyId" }, { - "name": "Content-MD5", + "name": "x-ms-lease-id", "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.", + "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": "transactionalContentMD5" - }, - { - "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" - }, - { - "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "maxSize" - }, - { - "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "appendPosition" - }, - { - "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", - "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/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" + "x-ms-client-name": "leaseId" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", "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-rfc1123", "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-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-blob-append-offset": { - "type": "integer", - "format": "int64", - "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-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": { "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-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-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-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." @@ -8146,10 +7245,10 @@ } } }, - "/{containerName}/{blob}?AppendBlob/{containerName}/{blob}?comp=appendblock&fromUrl": { + "/{containerName}/{blob}?comp=tier": { "put": { - "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.", + "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", @@ -8177,202 +7276,209 @@ "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "name": "timeout", + "name": "snapshot", "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" - }, - { - "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-source-url", - "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": true, - "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.", + "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", - "x-ms-client-name": "sourceContentMd5" + "type": "string" }, { - "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.", + "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": "sourceContentCrc64" + "x-ms-client-name": "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.", + "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": "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": true, "type": "integer", - "format": "int64", - "x-ms-client-name": "maxSize" + "format": "int32" }, { - "name": "x-ms-blob-condition-appendpos", + "name": "x-ms-access-tier", "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).", + "description": "Indicates the tier to be set on the blob.", "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "appendPosition" - }, - { - "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", - "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/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive" + ], + "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." + } + ] + }, + "x-ms-client-name": "accessTier" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "name": "x-ms-rehydrate-priority", + "in": "header", + "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", + "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-if-tags", + "name": "x-ms-lease-id", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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": "ifTags" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-copy-source-authorization", + "name": "x-ms-if-tags", "in": "header", - "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "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": "copySourceAuthorization" + "x-ms-client-name": "ifTags" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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-rfc1123", - "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-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-blob-append-offset": { - "type": "integer", - "format": "int64", - "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": { "type": "string", "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-content-crc64": { + "x-ms-request-id": { "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "x-ms-encryption-key-sha256": { + "x-ms-version": { "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": { + "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." + } + } + }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-client-request-id": { "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" + "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." }, - "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-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." @@ -8388,10 +7494,10 @@ } } }, - "/{containerName}/{blob}?AppendBlob/{containerName}/{blob}?comp=seal": { - "put": { - "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.", + "/{containerName}/{blob}?restype=account&comp=properties": { + "get": { + "operationId": "Blob_GetAccountInfo", + "description": "Returns the sku name and account kind", "parameters": [ { "name": "x-ms-version", @@ -8418,51 +7524,6 @@ "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" - }, - { - "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-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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "appendPosition" - }, - { - "$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/Azure.Core.ClientRequestIdHeader" } @@ -8476,18 +7537,47 @@ "format": "date-time-rfc1123", "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": { + "x-ms-account-kind": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-blob-sealed": { - "type": "boolean", - "description": "If this blob has been sealed" + "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", @@ -8499,6 +7589,48 @@ "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." + } + ] + } + }, "x-ms-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." @@ -8514,10 +7646,14 @@ } } }, - "/{containerName}/{blob}/?comp=copy": { - "put": { - "operationId": "Blob_StartCopyFromUrl", - "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", + "/{containerName}/{blob}?comp=tags": { + "get": { + "operationId": "Blob_GetTags", + "description": "The Get Blob Tags operation enables users to get tags on a blob.", + "produces": [ + "application/xml", + "application/json" + ], "parameters": [ { "name": "x-ms-version", @@ -8553,344 +7689,56 @@ "format": "int32" }, { - "name": "x-ms-access-tier", - "in": "header", - "description": "Optional. 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" - ], - "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." - } - ] - }, - "x-ms-client-name": "tier" - }, - { - "name": "x-ms-rehydrate-priority", - "in": "header", - "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", - "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-rfc1123", - "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-rfc1123", - "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.", + "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", - "x-ms-client-name": "sourceIfTags" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "type": "string" }, { - "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.", + "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": "ifTags" - }, - { - "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" + "x-ms-client-name": "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" - }, - { - "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" - }, - { - "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" - }, - { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" - }, - { - "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/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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-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-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." - } - ] - } + "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.", + "schema": { + "$ref": "#/definitions/BlobTags" + }, + "headers": { + "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-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", @@ -8900,10 +7748,6 @@ "x-ms-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": { - "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." } } }, @@ -8916,10 +7760,13 @@ } } }, - "/{containerName}/{blob}/?comp=copy©id": { + "/{containerName}/{blob}?comp=tags&_overload=setTags": { "put": { - "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.", + "operationId": "Blob_SetTags", + "description": "The Set Tags operation enables users to set tags on a blob.", + "consumes": [ + "application/xml" + ], "parameters": [ { "name": "x-ms-version", @@ -8955,12 +7802,36 @@ "format": "int32" }, { - "name": "x-ms-copy-id", + "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": "Content-MD5", "in": "header", - "description": "The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation.", - "required": true, + "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": "copyId" + "x-ms-client-name": "transactionalContentMD5" + }, + { + "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" + }, + { + "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-lease-id", @@ -8972,6 +7843,15 @@ }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "tags", + "in": "body", + "description": "The blob tags.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobTags" + } } ], "responses": { @@ -9008,10 +7888,10 @@ } } }, - "/{containerName}/{blob}/?comp=copy&sync": { + "/{containerName}/{blob}?PageBlob": { "put": { - "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": "PageBlob_Create", + "description": "The Create operation creates a new page blob.", "parameters": [ { "name": "x-ms-version", @@ -9047,138 +7927,104 @@ "format": "int32" }, { - "name": "x-ms-access-tier", + "name": "Content-Length", "in": "header", - "description": "Optional. The tier to be set on the blob.", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" + }, + { + "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", - "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive" - ], - "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." - } - ] - }, - "x-ms-client-name": "tier" + "x-ms-client-name": "blobContentType" }, { - "name": "x-ms-source-if-modified-since", + "name": "x-ms-blob-content-encoding", "in": "header", - "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "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", - "format": "date-time-rfc1123", - "x-ms-client-name": "sourceIfModifiedSince" + "x-ms-client-name": "blobContentEncoding" }, { - "name": "x-ms-source-if-unmodified-since", + "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", + "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": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "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", - "format": "date-time-rfc1123", - "x-ms-client-name": "sourceIfUnmodifiedSince" + "x-ms-client-name": "encryptionKeySha256" }, { - "name": "x-ms-source-if-match", + "name": "x-ms-encryption-algorithm", "in": "header", - "description": "Specify an ETag value to operate only on blobs with a matching value.", + "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", - "x-ms-client-name": "sourceIfMatch" + "x-ms-client-name": "encryptionAlgorithm" }, { - "name": "x-ms-source-if-none-match", + "name": "x-ms-encryption-scope", "in": "header", - "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "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": "sourceIfNoneMatch" + "x-ms-client-name": "encryptionScope" }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -9201,28 +8047,22 @@ "x-ms-client-name": "ifTags" }, { - "name": "x-ms-copy-source", + "name": "x-ms-blob-content-length", "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.", + "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": "string", - "x-ms-client-name": "copySource" - }, - { - "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" + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobContentLength" }, { - "name": "x-ms-source-content-md5", + "name": "x-ms-blob-sequence-number", "in": "header", - "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", + "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": "string", - "x-ms-client-name": "sourceContentMd5" + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobSequenceNumber" }, { "name": "x-ms-tags", @@ -9283,37 +8123,13 @@ "type": "boolean", "x-ms-client-name": "legalHold" }, - { - "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" - }, - { - "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-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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { "Content-MD5": { "type": "string", @@ -9338,49 +8154,9 @@ "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-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-status": { + "x-ms-encryption-key-sha256": { "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." - } - ] - } + "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", @@ -9391,6 +8167,10 @@ "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-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." @@ -9410,10 +8190,13 @@ } } }, - "/{containerName}/{blob}/?comp=expiry": { + "/{containerName}/{blob}?comp=page&update": { "put": { - "operationId": "Blob_SetExpiry", - "description": "\"Set the expiration time of a blob\"", + "operationId": "PageBlob_UploadPages", + "description": "The Upload Pages operation writes a range of pages to a page blob", + "consumes": [ + "application/octet-stream" + ], "parameters": [ { "name": "x-ms-version", @@ -9440,6 +8223,31 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "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-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" + }, { "name": "timeout", "in": "query", @@ -9449,61 +8257,122 @@ "format": "int32" }, { - "name": "x-ms-expiry-option", + "name": "x-ms-range", "in": "header", - "description": "Required. Indicates mode of the expiry time", - "required": true, + "description": "Return only the bytes of the blob in the specified range.", + "required": false, "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" + "x-ms-client-name": "range" + }, + { + "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", + "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-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" + }, + { + "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" + }, + { + "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" }, { - "name": "x-ms-expiry-time", + "$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": "The time to set the blob to expiry.", - "required": true, + "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": "ExpiresOn" + "x-ms-client-name": "ifTags" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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-rfc1123", @@ -9518,16 +8387,37 @@ "format": "date-time-rfc1123", "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": { "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-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-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-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." @@ -9543,10 +8433,10 @@ } } }, - "/{containerName}/{blob}/?comp=immutabilityPolicies": { + "/{containerName}/{blob}?comp=page&clear": { "put": { - "operationId": "Blob_SetImmutabilityPolicy", - "description": "\"Set the immutability policy of a blob\"", + "operationId": "PageBlob_ClearPages", + "description": "The Clear Pages operation clears a range of pages from a page blob", "parameters": [ { "name": "x-ms-version", @@ -9573,6 +8463,15 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, + { + "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", @@ -9582,186 +8481,140 @@ "format": "int32" }, { - "name": "If-Unmodified-Since", + "name": "x-ms-range", "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.", + "description": "Return only the bytes of the blob in the specified range.", "required": false, "type": "string", - "format": "date-time-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "x-ms-client-name": "range" }, { - "name": "x-ms-immutability-policy-until-date", + "name": "x-ms-lease-id", "in": "header", - "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", "required": false, "type": "string", - "format": "date-time-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-immutability-policy-mode", + "name": "x-ms-encryption-key", "in": "header", - "description": "Specifies the immutability policy mode to set on the blob.", + "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", - "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" + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-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-rfc1123", - "description": "Indicates the time the immutability policy will expire." - }, - "x-ms-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." - } - } + "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": "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": [ { - "name": "x-ms-version", + "name": "x-ms-encryption-algorithm", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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", - "x-ms-client-name": "version" + "x-ms-client-name": "encryptionAlgorithm" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "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-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" + }, + { + "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" + }, + { + "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/Azure.Core.ConditionalRequestHeaders.ifMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.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/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "name": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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": "integer", - "format": "int32" + "type": "string", + "x-ms-client-name": "ifTags" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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-rfc1123", "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-rfc1123", + "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": { "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-request-id": { "type": "string", "format": "uuid", @@ -9782,10 +8635,10 @@ } } }, - "/{containerName}/{blob}/?comp=lease&acquire": { + "/{containerName}/{blob}?comp=page&update&fromUrl": { "put": { - "operationId": "Blob_AcquireLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "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": [ { "name": "x-ms-version", @@ -9812,6 +8665,47 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, + { + "name": "x-ms-source-url", + "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. 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" + }, + { + "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" + }, + { + "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", + "x-ms-client-name": "sourceContentCrc64" + }, + { + "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", @@ -9821,21 +8715,79 @@ "format": "int32" }, { - "name": "x-ms-lease-duration", + "name": "x-ms-range", "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.", + "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": "integer", - "format": "int32", - "x-ms-client-name": "duration" + "type": "string", + "x-ms-client-name": "range" }, { - "name": "x-ms-proposed-lease-id", + "name": "x-ms-encryption-key", "in": "header", - "description": "Optional. The proposed lease ID for the container.", + "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": "proposedLeaseId" + "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", + "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-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" + }, + { + "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" + }, + { + "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/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -9857,6 +8809,48 @@ "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-rfc1123", + "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-rfc1123", + "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-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/Azure.Core.ClientRequestIdHeader" } @@ -9865,6 +8859,10 @@ "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-rfc1123", @@ -9879,20 +8877,37 @@ "format": "date-time-rfc1123", "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": { "type": "string", "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-lease-id": { + "x-ms-content-crc64": { "type": "string", - "description": "Uniquely identifies a blobs' lease" + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "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-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-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." @@ -9908,10 +8923,14 @@ } } }, - "/{containerName}/{blob}/?comp=lease&break": { - "put": { - "operationId": "Blob_BreakLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "/{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": [ { "name": "x-ms-version", @@ -9938,6 +8957,13 @@ "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", @@ -9947,13 +8973,20 @@ "format": "int32" }, { - "name": "x-ms-lease-break-period", + "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" + }, + { + "name": "x-ms-lease-id", "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.", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", "required": false, - "type": "integer", - "format": "int32", - "x-ms-client-name": "breakPeriod" + "type": "string", + "x-ms-client-name": "leaseId" }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -9975,13 +9008,31 @@ "type": "string", "x-ms-client-name": "ifTags" }, + { + "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" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, "headers": { "Date": { "type": "string", @@ -9997,16 +9048,16 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, "x-ms-client-request-id": { "type": "string", "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "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", @@ -10024,13 +9075,20 @@ "$ref": "#/definitions/StorageError" } } + }, + "x-ms-pageable": { + "nextLinkName": "nextMarker" } } }, - "/{containerName}/{blob}/?comp=lease&change": { - "put": { - "operationId": "Blob_ChangeLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "/{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", @@ -10057,6 +9115,13 @@ "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", @@ -10066,20 +9131,35 @@ "format": "int32" }, { - "name": "x-ms-lease-id", + "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": true, + "type": "string" + }, + { + "name": "x-ms-previous-snapshot-url", "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.", + "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": true, "type": "string", - "x-ms-client-name": "leaseId" + "x-ms-client-name": "prevSnapshotUrl" }, { - "name": "x-ms-proposed-lease-id", + "name": "x-ms-range", "in": "header", - "description": "Optional. The proposed lease ID for the container.", + "description": "Return only the bytes of the blob in the specified range.", "required": false, "type": "string", - "x-ms-client-name": "proposedLeaseId" + "x-ms-client-name": "range" + }, + { + "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.ConditionalRequestHeaders.ifMatch" @@ -10101,6 +9181,21 @@ "type": "string", "x-ms-client-name": "ifTags" }, + { + "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" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -10108,6 +9203,9 @@ "responses": { "200": { "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, "headers": { "Date": { "type": "string", @@ -10123,15 +9221,16 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, "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", @@ -10149,13 +9248,16 @@ "$ref": "#/definitions/StorageError" } } + }, + "x-ms-pageable": { + "nextLinkName": "nextMarker" } } }, - "/{containerName}/{blob}/?comp=lease&release": { + "/{containerName}/{blob}?comp=properties&Resize": { "put": { - "operationId": "Blob_ReleaseLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "operationId": "PageBlob_Resize", + "description": "The Resize operation increases the size of the page blob to the specified size.", "parameters": [ { "name": "x-ms-version", @@ -10193,11 +9295,43 @@ { "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, + "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", + "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" }, @@ -10218,6 +9352,15 @@ "type": "string", "x-ms-client-name": "ifTags" }, + { + "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/Azure.Core.ClientRequestIdHeader" } @@ -10240,6 +9383,11 @@ "format": "date-time-rfc1123", "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": { "type": "string", "format": "uuid", @@ -10265,10 +9413,10 @@ } } }, - "/{containerName}/{blob}/?comp=lease&renew": { + "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { "put": { - "operationId": "Blob_RenewLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "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": [ { "name": "x-ms-version", @@ -10306,8 +9454,8 @@ { "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, + "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" }, @@ -10331,6 +9479,49 @@ "type": "string", "x-ms-client-name": "ifTags" }, + { + "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" + }, + { + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobSequenceNumber" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -10353,15 +9544,16 @@ "format": "date-time-rfc1123", "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": { "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", @@ -10382,10 +9574,10 @@ } } }, - "/{containerName}/{blob}/?comp=legalhold": { + "/{containerName}/{blob}?comp=incrementalcopy": { "put": { - "operationId": "Blob_SetLegalHold", - "description": "The Set Legal Hold operation sets a legal hold 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": [ { "name": "x-ms-version", @@ -10413,42 +9605,107 @@ "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.", + "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" + }, + { + "$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": "integer", - "format": "int32" + "type": "string", + "x-ms-client-name": "ifTags" }, { - "name": "x-ms-legal-hold", + "name": "x-ms-copy-source", "in": "header", - "description": "Required. Specifies the legal hold status to set on the blob.", + "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": "boolean", - "x-ms-client-name": "legalHold" + "type": "string", + "x-ms-client-name": "copySource" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { "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" }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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-legal-hold": { - "type": "boolean", - "description": "Specifies the legal hold status to set on the blob." + "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-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-request-id": { "type": "string", @@ -10470,10 +9727,10 @@ } } }, - "/{containerName}/{blob}/?comp=metadata": { + "/{containerName}/{blob}?AppendBlob": { "put": { - "operationId": "Blob_SetMetadata", - "description": "The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs.", + "operationId": "AppendBlob_Create", + "description": "The Create operation creates a new append blob.", "parameters": [ { "name": "x-ms-version", @@ -10508,6 +9765,55 @@ "type": "integer", "format": "int32" }, + { + "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", + "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", @@ -10516,6 +9822,14 @@ "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", @@ -10568,14 +9882,77 @@ "type": "string", "x-ms-client-name": "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" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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-rfc1123", @@ -10631,10 +10008,13 @@ } } }, - "/{containerName}/{blob}/?comp=properties&SetHTTPHeaders": { + "/{containerName}/{blob}?BlockBlob": { "put": { - "operationId": "Blob_SetHttpHeaders", - "description": "The Set HTTP Headers operation sets system properties on the 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/xml" + ], "parameters": [ { "name": "x-ms-version", @@ -10652,22 +10032,62 @@ "type": "string" }, { - "name": "blob", - "in": "path", - "description": "The name of the blob.", - "required": true, + "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" + }, + { + "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-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", - "minLength": 1, - "maxLength": 1024, - "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + "x-ms-client-name": "blobContentLanguage" }, { - "name": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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": "integer", - "format": "int32" + "type": "string", + "x-ms-client-name": "blobContentMd5" }, { "name": "x-ms-blob-cache-control", @@ -10678,52 +10098,152 @@ "x-ms-client-name": "blobCacheControl" }, { - "name": "x-ms-blob-content-type", + "name": "x-ms-lease-id", "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.", + "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": "blobContentType" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-blob-content-md5", + "name": "x-ms-blob-content-disposition", "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.", + "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": "blobContentMd5" + "x-ms-client-name": "blobContentDisposition" }, { - "name": "x-ms-blob-content-encoding", + "name": "x-ms-encryption-key", "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.", + "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": "blobContentEncoding" + "x-ms-client-name": "encryptionKey" }, { - "name": "x-ms-blob-content-language", + "name": "x-ms-encryption-key-sha256", "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.", + "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": "blobContentLanguage" + "x-ms-client-name": "encryptionKeySha256" }, { - "name": "x-ms-lease-id", + "name": "x-ms-encryption-algorithm", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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", - "x-ms-client-name": "leaseId" + "x-ms-client-name": "encryptionAlgorithm" }, { - "name": "x-ms-blob-content-disposition", + "name": "x-ms-encryption-scope", "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.", + "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": "blobContentDisposition" + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "tier" }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -10745,14 +10265,95 @@ "type": "string", "x-ms-client-name": "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" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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" + }, + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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-rfc1123", @@ -10767,24 +10368,35 @@ "format": "date-time-rfc1123", "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": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "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-client-request-id": { + "x-ms-encryption-scope": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for 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-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-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": { + "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." } } }, @@ -10797,10 +10409,10 @@ } } }, - "/{containerName}/{blob}/?comp=snapshot": { + "/{containerName}/{blob}?BlockBlob&fromUrl": { "put": { - "operationId": "Blob_CreateSnapshot", - "description": "The Create Snapshot operation creates a read-only snapshot of a 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.", "parameters": [ { "name": "x-ms-version", @@ -10835,6 +10447,79 @@ "type": "integer", "format": "int32" }, + { + "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", + "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", @@ -10867,6 +10552,106 @@ "type": "string", "x-ms-client-name": "encryptionScope" }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "tier" + }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, @@ -10874,26 +10659,99 @@ "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$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" + }, + { + "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-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" + }, + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "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" }, { - "name": "x-ms-if-tags", + "name": "x-ms-copy-source-authorization", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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": "ifTags" + "x-ms-client-name": "copySourceAuthorization" }, { - "name": "x-ms-lease-id", + "name": "x-ms-copy-source-tags", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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": "leaseId" + "x-ms-client-name": "copySourceTags" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -10903,10 +10761,9 @@ "201": { "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "Date": { + "Content-MD5": { "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 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." }, "ETag": { "type": "string", @@ -10922,6 +10779,14 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, + "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-request-id": { "type": "string", "format": "uuid", @@ -10931,17 +10796,9 @@ "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-snapshot": { - "type": "string", - "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." - }, "x-ms-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": { - "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." } } }, @@ -10954,13 +10811,12 @@ } } }, - "/{containerName}/{blob}/?comp=tags": { - "get": { - "operationId": "Blob_GetTags", - "description": "The Get Blob Tags operation enables users to get tags on a blob.", - "produces": [ - "application/xml", - "application/json" + "/{containerName}/{blob}?comp=block": { + "put": { + "operationId": "BlockBlob_StageBlock", + "description": "The Stage Block operation creates a new block to be committed as part of a blob", + "consumes": [ + "application/xml" ], "parameters": [ { @@ -10989,27 +10845,45 @@ "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "name": "timeout", + "name": "blockid", "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", - "required": false, + "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": "int32" + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "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.", + "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" + "type": "string", + "x-ms-client-name": "transactionalContentMD5" }, { - "name": "versionid", + "name": "timeout", "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.", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "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": "versionId" + "x-ms-client-name": "transactionalContentCrc64" }, { "name": "x-ms-lease-id", @@ -11020,24 +10894,59 @@ "x-ms-client-name": "leaseId" }, { - "name": "x-ms-if-tags", + "name": "x-ms-encryption-key", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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": "ifTags" + "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", + "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.ClientRequestIdHeader" + }, + { + "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": { - "$ref": "#/definitions/BlobTags" - }, + "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-rfc1123", @@ -11048,11 +10957,27 @@ "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-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-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-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." @@ -11068,10 +10993,10 @@ } } }, - "/{containerName}/{blob}/?comp=tags&_overload=setTags": { + "/{containerName}/{blob}?AppendBlob/{containerName}/{blob}?comp=appendblock": { "put": { - "operationId": "Blob_SetTags", - "description": "The Set Tags operation enables users to set tags on a blob.", + "operationId": "AppendBlob_AppendBlock", + "description": "The Append Block operation commits a new block of data to the end of an append blob.", "consumes": [ "application/xml" ], @@ -11110,12 +11035,13 @@ "format": "int32" }, { - "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": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { "name": "Content-MD5", @@ -11126,12 +11052,82 @@ "x-ms-client-name": "transactionalContentMD5" }, { - "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" + "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" + }, + { + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "maxSize" + }, + { + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" + }, + { + "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", + "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/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { "name": "x-ms-if-tags", @@ -11141,46 +11137,83 @@ "type": "string", "x-ms-client-name": "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/Azure.Core.ClientRequestIdHeader" }, { - "name": "tags", + "name": "body", "in": "body", - "description": "The blob tags.", + "description": "The body of the request.", "required": true, "schema": { - "$ref": "#/definitions/BlobTags" + "type": "string", + "format": "binary" } } ], "responses": { - "204": { - "description": "There is no content to send for this request, but the headers may be useful. ", + "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-rfc1123", "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-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-append-offset": { + "type": "integer", + "format": "int64", + "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-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": { "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-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-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-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." @@ -11196,10 +11229,10 @@ } } }, - "/{containerName}/{blob}/?comp=tier": { + "/{containerName}/{blob}?AppendBlob/{containerName}/{blob}?comp=appendblock&fromUrl": { "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.", + "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": [ { "name": "x-ms-version", @@ -11227,163 +11260,123 @@ "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "name": "snapshot", + "name": "timeout", "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.", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, - "type": "string" + "type": "integer", + "format": "int32" }, { - "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.", + "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-source-url", + "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": true, + "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": "versionId" + "x-ms-client-name": "sourceContentMd5" }, { - "name": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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", + "x-ms-client-name": "sourceContentCrc64" + }, + { + "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": true, "type": "integer", - "format": "int32" + "format": "int64", + "x-ms-client-name": "maxSize" }, { - "name": "x-ms-access-tier", + "name": "x-ms-blob-condition-appendpos", "in": "header", - "description": "Indicates the tier to be set on the blob.", + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" + }, + { + "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", - "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive" - ], - "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." - } - ] - }, - "x-ms-client-name": "accessTier" + "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-rehydrate-priority", + "name": "x-ms-encryption-algorithm", "in": "header", - "description": "Optional: Indicates the priority with which to rehydrate an archived blob.", + "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": [ - "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" + "x-ms-client-name": "encryptionAlgorithm" }, { - "name": "x-ms-lease-id", + "name": "x-ms-encryption-scope", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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": "leaseId" + "x-ms-client-name": "encryptionScope" + }, + { + "$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", @@ -11393,43 +11386,76 @@ "type": "string", "x-ms-client-name": "ifTags" }, + { + "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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "x-ms-client-request-id": { + "Content-MD5": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for 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-request-id": { + "Date": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-version": { + "ETag": { "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." - } - } - }, - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "headers": { + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-append-offset": { + "type": "integer", + "format": "int64", + "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": { "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-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-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-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." @@ -11445,10 +11471,10 @@ } } }, - "/{containerName}/{blob}/?restype=account&comp=properties": { - "get": { - "operationId": "Blob_GetAccountInfo", - "description": "Returns the sku name and account kind", + "/{containerName}/{blob}?AppendBlob/{containerName}/{blob}?comp=seal": { + "put": { + "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": [ { "name": "x-ms-version", @@ -11475,6 +11501,51 @@ "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" + }, + { + "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-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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" + }, + { + "$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/Azure.Core.ClientRequestIdHeader" } @@ -11488,47 +11559,18 @@ "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-account-kind": { + "ETag": { "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." - } - ] - } + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" }, "x-ms-client-request-id": { "type": "string", @@ -11540,48 +11582,6 @@ "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." - } - ] - } - }, "x-ms-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." From 6096fcdda50483118d59a7767d4f41b3c53102b1 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 22 Oct 2024 18:53:51 -0700 Subject: [PATCH 075/129] use template where possible --- .../storage/Microsoft.BlobStorage/routes.tsp | 250 ++++++++---------- .../stable/2021-12-02/blob.json | 55 +++- 2 files changed, 167 insertions(+), 138 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 68e75d94b937..042f93ae1a95 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -145,6 +145,7 @@ interface Service { version: string; ...RequestIdResponseHeader; + ...ClientRequestIdHeader; }) | StorageError; /** The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression. */ @@ -707,90 +708,71 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @head @route("/{containerName}/{blob}") - getProperties( - /** 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. */ - @header("x-ms-version") - version: string, - - /** The media type of the body of the response. */ - #suppress "@typespec/http/content-type-ignored" "Exisitng API" - @header("Content-Type") - contentType: "application/octet-stream", - - ...RequestIdResponseHeader, - ...ClientRequestIdHeader, - ...ContainerNameParameter, - ...BlobNameParameter, - ...SnapshotParameter, - ...VersionIdParameter, - ...TimeoutParameter, - ...LeaseIdOptionalParameter, - ...EncryptionKeyParameter, - ...EncryptionKeySha256Parameter, - ...EncryptionAlgorithmParameter, - ...ConditionalRequestHeaders, - ...IfTagsParameter, - ): { - /** 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. */ - @header("x-ms-version") - version: string; - - /** The media type of the body of the response. */ - #suppress "@typespec/http/content-type-ignored" "Exisitng API" - @header("Content-Type") - contentType: "application/octet-stream"; - - ...RequestIdResponseHeader; - ...ClientRequestIdHeader; - - // TODO: x-ms-meta headers - // TODO: x-ms-or headers + getProperties is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...SnapshotParameter; + ...VersionIdParameter; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + }, + { + // TODO: x-ms-meta headers + // TODO: x-ms-or headers - ...LastModifiedResponseHeader; + ...LastModifiedResponseHeader; - ...CreationTimeResponseHeader; - ...ObjectReplicationPolicyIdResponseHeader; - ...BlobTypeResponseHeader; - ...CopyCompletionTimeResponseHeader; - ...CopyStatusDescriptionResponseHeader; - ...CopyIdResponseHeader; - ...CopyProgressResponseHeader; - ...CopyStatusResponseHeader; - ...CopySourceResponseHeader; - ...IsIncrementalCopyResponseHeader; - ...DestinationSnapshotResponseHeader; - ...LeaseDurationResponseHeader; - ...LeaseStateResponseHeader; - ...LeaseStatusResponseHeader; - ...ContentLengthResponseHeader; - ...EtagResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentEncodingResponseParameter; - ...ContentDispositionResponseHeader; - ...ContentLanguageResponseHeader; - ...CacheControlResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...DateResponseHeader; - ...AcceptRangesResponseHeader; - ...BlobCommittedBlockCountResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - ...AccessTierResponseHeader; - ...AccessTierInferredResponseHeader; - ...ArchiveStatusResponseHeader; - ...AccessTierChangeTimeResponseHeader; - ...VersionIdResponseHeader; - ...IsCurrentVersionResponseHeader; - ...TagCountResponseHeader; - ...ExpiresOnResponseHeader; - ...IsSealedResponseHeader; - ...RehydratePriorityResponseHeader; - ...LastAccessedResponseHeader; - ...ImmutabilityPolicyExpiresOnResponseHeader; - ...ImmutabilityPolicyModeResponseHeader; - ...LegalHoldResponseHeader; - } | StorageError; + ...CreationTimeResponseHeader; + ...ObjectReplicationPolicyIdResponseHeader; + ...BlobTypeResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopyStatusResponseHeader; + ...CopySourceResponseHeader; + ...IsIncrementalCopyResponseHeader; + ...DestinationSnapshotResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...ContentLengthResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...CacheControlResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...DateResponseHeader; + ...AcceptRangesResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...AccessTierResponseHeader; + ...AccessTierInferredResponseHeader; + ...ArchiveStatusResponseHeader; + ...AccessTierChangeTimeResponseHeader; + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; + ...TagCountResponseHeader; + ...ExpiresOnResponseHeader; + ...IsSealedResponseHeader; + ...RehydratePriorityResponseHeader; + ...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" @@ -1268,65 +1250,65 @@ interface Blob { /** 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") - query( - ...ContainerNameParameter, - ...BlobNameParameter, - - /** 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; + query is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; - // TODO: MetadataResponseHeader; + /** The query request */ + @body + queryRequest: QueryRequest; - ...LastModifiedResponseHeader; + ...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; - ...ContentLengthResponseHeader; + // TODO: MetadataResponseHeader; - /** Supported media type. */ - @header("Content-Type") - contentType: "application/octet-stream"; + ...LastModifiedResponseHeader; - ...ContentRangeResponseHeader; - ...EtagResponseHeader; - ...ContentMd5ResponseHeader; - ...ContentEncodingResponseParameter; - ...CacheControlResponseHeader; - ...ContentDispositionResponseHeader; - ...ContentLanguageResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...BlobTypeResponseHeader; - ...ContentCrc64ResponseHeader; - ...CopyCompletionTimeResponseHeader; - ...CopyStatusDescriptionResponseHeader; - ...CopyIdResponseHeader; - ...CopyProgressResponseHeader; - ...CopySourceResponseHeader; - ...CopyStatusResponseHeader; - ...LeaseDurationResponseHeader; - ...LeaseStateResponseHeader; - ...LeaseStatusResponseHeader; - ...AcceptRangesResponseHeader; - ...DateResponseHeader; - ...BlobCommittedBlockCountResponseHeader; - ...IsServerEncryptedResponseHeader; - ...EncryptionKeySha256ResponseHeader; - ...EncryptionScopeResponseHeader; - ...BlobContentMd5ResponseHeader; - }) | StorageError; + ...ContentLengthResponseHeader; + ...ContentRangeResponseHeader; + ...EtagResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; + ...BlobSequenceNumberResponseHeader; + ...BlobTypeResponseHeader; + ...ContentCrc64ResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopySourceResponseHeader; + ...CopyStatusResponseHeader; + ...LeaseDurationResponseHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; + ...AcceptRangesResponseHeader; + ...DateResponseHeader; + ...BlobCommittedBlockCountResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + ...BlobContentMd5ResponseHeader; + }, + "application/octet-stream" + >; /** The Get Blob Tags operation enables users to get tags on a blob. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 77a04242eaa8..579d3d6d099f 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -1683,7 +1683,18 @@ "application/octet-stream", "application/json" ], + "consumes": [ + "application/octet-stream" + ], "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", @@ -1768,6 +1779,9 @@ "type": "string", "x-ms-client-name": "ifTags" }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, { "name": "queryRequest", "in": "body", @@ -1877,6 +1891,11 @@ ] } }, + "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." @@ -2036,9 +2055,18 @@ ] } }, + "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-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." } } }, @@ -2140,6 +2168,11 @@ ] } }, + "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." @@ -2299,9 +2332,18 @@ ] } }, + "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-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." } } }, @@ -2493,14 +2535,11 @@ { "name": "x-ms-version", "in": "header", - "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": "Specifies the version of the operation to use for this request.", "required": true, "type": "string", "x-ms-client-name": "version" }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, { "name": "containerName", "in": "path", @@ -2592,6 +2631,9 @@ "required": false, "type": "string", "x-ms-client-name": "ifTags" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { @@ -11655,6 +11697,11 @@ "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", From 6d0e3b67668016be563fe7ee17041d0411ec8af2 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Wed, 30 Oct 2024 17:21:22 -0700 Subject: [PATCH 076/129] fix appendblob operations --- .../storage/Microsoft.BlobStorage/routes.tsp | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 042f93ae1a95..877487484ec5 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -1663,12 +1663,12 @@ interface PageBlob { } #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." -@route("/{containerName}/{blob}?AppendBlob") interface 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") create is StorageOperation< { // TODO: Metadata @@ -1705,7 +1705,8 @@ interface AppendBlob { ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; - } + }, + "application/octet-stream" >; /** The Append Block operation commits a new block of data to the end of an append blob. */ @@ -1716,11 +1717,12 @@ interface AppendBlob { @route("/{containerName}/{blob}?comp=appendblock") appendBlock is StorageOperation< { + ...ContainerNameParameter; + ...BlobNameParameter; + /** The data to upload. */ ...BodyParameter; - ...ContainerNameParameter; - ...BlobNameParameter; ...TimeoutParameter; ...ContentLengthParameter; ...ContentMd5Parameter; @@ -1739,10 +1741,9 @@ interface AppendBlob { @statusCode statusCode: 201; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...BlobSequenceNumberResponseHeader; - ...DateResponseHeader; ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; + ...DateResponseHeader; ...BlobAppendOffsetResponseHeader; ...BlobCommittedBlockCountResponseHeader; ...IsServerEncryptedResponseHeader; @@ -1761,30 +1762,35 @@ interface AppendBlob { { ...ContainerNameParameter; ...BlobNameParameter; - ...TimeoutParameter; - ...ContentLengthParameter; ...SourceUrlParameter; ...SourceRangeParameter; ...SourceContentMd5Parameter; ...SourceContentCrc64Parameter; - ...LeaseIdOptionalParameter; - ...BlobConditionMaxSizeParameter; - ...BlobConditionAppendPosParameter; + ...TimeoutParameter; + ...ContentLengthParameter; + ...ContentMd5Parameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; + ...LeaseIdOptionalParameter; + ...BlobConditionMaxSizeParameter; + ...BlobConditionAppendPosParameter; ...ConditionalRequestHeaders; ...IfTagsParameter; + ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; + ...SourceIfMatchParameter; + ...SourceIfNoneMatchParameter; ...CopySourceAuthorizationParameter; }, { @statusCode statusCode: 201; ...EtagResponseHeader; ...LastModifiedResponseHeader; - ...DateResponseHeader; ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; + ...DateResponseHeader; ...BlobAppendOffsetResponseHeader; ...BlobCommittedBlockCountResponseHeader; ...IsServerEncryptedResponseHeader; @@ -1805,9 +1811,8 @@ interface AppendBlob { ...BlobNameParameter; ...TimeoutParameter; ...LeaseIdOptionalParameter; - ...BlobConditionAppendPosParameter; ...ConditionalRequestHeaders; - ...IfTagsParameter; + ...BlobConditionAppendPosParameter; }, { ...EtagResponseHeader; From 86a034c1ad1946d9630cd4f387c4362ceb6af192 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Wed, 30 Oct 2024 17:21:41 -0700 Subject: [PATCH 077/129] fix NextMarker casing --- .../storage/Microsoft.BlobStorage/models.tsp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 7824eff988fb..b45af9df7794 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -179,9 +179,10 @@ model ListContainersSegmentResponse { @Xml.name("ContainerItems") containerItems: ContainerItem[]; /** The next marker of the containers. */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API. The casing is correct." @nextLink @Xml.name("NextMarker") - nextMarker?: string; + NextMarker?: string; } /** An Azure Storage container. */ @@ -884,9 +885,10 @@ model ListBlobsFlatSegmentResponse { @Xml.name("Segment") segment: BlobFlatListSegment; /** The next marker of the blobs. */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API. The casing is correct." @nextLink @Xml.name("NextMarker") - nextMarker?: string; + NextMarker?: string; } /** The blob flat list segment. */ @@ -906,9 +908,10 @@ model PageList { @Xml.name("ClearRange") clearRange: ClearRange[]; /** The next marker. */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API. The casing is correct." @nextLink @Xml.name("NextMarker") - nextMarker?: string; + NextMarker?: string; } /** The page range. */ @@ -2170,9 +2173,10 @@ model ListBlobsHierarchySegmentResponse { @Xml.name("Segment") segment: BlobHierarchyListSegment; /** The next marker of the blobs. */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API. The casing is correct." @nextLink @Xml.name("NextMarker") - nextMarker?: string; + NextMarker?: string; } /** The delimiter parameter. */ From 3cfa98c2589afed0fc7ec4172c85e002b15ea154 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Wed, 30 Oct 2024 17:22:16 -0700 Subject: [PATCH 078/129] regen openapi --- .../stable/2021-12-02/blob.json | 1479 +++++++++-------- 1 file changed, 754 insertions(+), 725 deletions(-) diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 579d3d6d099f..dc7120312fac 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -4517,7 +4517,7 @@ } }, "x-ms-pageable": { - "nextLinkName": "nextMarker" + "nextLinkName": "NextMarker" } } }, @@ -4701,7 +4701,7 @@ } }, "x-ms-pageable": { - "nextLinkName": "nextMarker" + "nextLinkName": "NextMarker" } } }, @@ -9119,7 +9119,7 @@ } }, "x-ms-pageable": { - "nextLinkName": "nextMarker" + "nextLinkName": "NextMarker" } } }, @@ -9292,7 +9292,7 @@ } }, "x-ms-pageable": { - "nextLinkName": "nextMarker" + "nextLinkName": "NextMarker" } } }, @@ -10050,10 +10050,10 @@ } } }, - "/{containerName}/{blob}?BlockBlob": { + "/{containerName}/{blob}?comp=appendblock": { "put": { - "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.", + "operationId": "AppendBlob_AppendBlock", + "description": "The Append Block operation commits a new block of data to the end of an append blob.", "consumes": [ "application/xml" ], @@ -10092,52 +10092,29 @@ "format": "int32" }, { - "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-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", + "name": "Content-Length", "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" + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "name": "x-ms-blob-content-md5", + "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": "blobContentMd5" + "x-ms-client-name": "transactionalContentMD5" }, { - "name": "x-ms-blob-cache-control", + "name": "x-ms-content-crc64", "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.", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", "required": false, "type": "string", - "x-ms-client-name": "blobCacheControl" + "x-ms-client-name": "transactionalContentCrc64" }, { "name": "x-ms-lease-id", @@ -10148,12 +10125,22 @@ "x-ms-client-name": "leaseId" }, { - "name": "x-ms-blob-content-disposition", + "name": "x-ms-blob-condition-maxsize", "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" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "maxSize" + }, + { + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" }, { "name": "x-ms-encryption-key", @@ -10187,106 +10174,6 @@ "type": "string", "x-ms-client-name": "encryptionScope" }, - { - "name": "x-ms-access-tier", - "in": "header", - "description": "Optional. 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" - ], - "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." - } - ] - }, - "x-ms-client-name": "tier" - }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, @@ -10307,73 +10194,6 @@ "type": "string", "x-ms-client-name": "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" - }, - { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" - }, - { - "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" - }, - { - "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/Azure.Core.ClientRequestIdHeader" }, @@ -10410,11 +10230,25 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, + "x-ms-blob-append-offset": { + "type": "integer", + "format": "int64", + "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": { "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-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." @@ -10435,10 +10269,6 @@ "x-ms-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": { - "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." } } }, @@ -10451,10 +10281,10 @@ } } }, - "/{containerName}/{blob}?BlockBlob&fromUrl": { + "/{containerName}/{blob}?comp=appendblock&fromUrl": { "put": { - "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.", + "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": [ { "name": "x-ms-version", @@ -10482,85 +10312,61 @@ "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" - }, - { - "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", + "name": "x-ms-source-url", "in": "header", - "description": "The length of the request.", + "description": "Specify a URL to the copy source.", "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" + "x-ms-client-name": "sourceUrl" }, { - "name": "x-ms-blob-content-encoding", + "name": "x-ms-source-range", "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, + "description": "Bytes of source data in the specified range.", + "required": true, "type": "string", - "x-ms-client-name": "blobContentEncoding" + "x-ms-client-name": "sourceRange" }, { - "name": "x-ms-blob-content-language", + "name": "x-ms-source-content-md5", "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.", + "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": "blobContentLanguage" + "x-ms-client-name": "sourceContentMd5" }, { - "name": "x-ms-blob-content-md5", + "name": "x-ms-source-content-crc64", "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.", + "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source.", "required": false, "type": "string", - "x-ms-client-name": "blobContentMd5" + "x-ms-client-name": "sourceContentCrc64" }, { - "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.", + "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": "string", - "x-ms-client-name": "blobCacheControl" + "type": "integer", + "format": "int32" }, { - "name": "x-ms-lease-id", + "name": "Content-Length", "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" + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "name": "x-ms-blob-content-disposition", + "name": "Content-MD5", "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.", + "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": "blobContentDisposition" + "x-ms-client-name": "transactionalContentMD5" }, { "name": "x-ms-encryption-key", @@ -10595,104 +10401,30 @@ "x-ms-client-name": "encryptionScope" }, { - "name": "x-ms-access-tier", + "name": "x-ms-lease-id", "in": "header", - "description": "Optional. The tier to be set on the blob.", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", "required": false, "type": "string", - "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive" - ], - "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." - } - ] - }, - "x-ms-client-name": "tier" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "maxSize" + }, + { + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -10723,6 +10455,15 @@ "format": "date-time-rfc1123", "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-rfc1123", + "x-ms-client-name": "sourceIfUnmodifiedSince" + }, { "name": "x-ms-source-if-match", "in": "header", @@ -10739,46 +10480,6 @@ "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, { "name": "x-ms-copy-source-authorization", "in": "header", @@ -10787,14 +10488,6 @@ "type": "string", "x-ms-client-name": "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/Azure.Core.ClientRequestIdHeader" } @@ -10807,7 +10500,12 @@ "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." }, - "ETag": { + "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" + }, + "ETag": { "type": "string", "description": "The ETag contains a value that you can use to perform operations conditionally." }, @@ -10816,11 +10514,25 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, + "x-ms-blob-append-offset": { + "type": "integer", + "format": "int64", + "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": { "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-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." @@ -10853,13 +10565,10 @@ } } }, - "/{containerName}/{blob}?comp=block": { + "/{containerName}/{blob}?comp=seal": { "put": { - "operationId": "BlockBlob_StageBlock", - "description": "The Stage Block operation creates a new block to be committed as part of a blob", - "consumes": [ - "application/xml" - ], + "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": [ { "name": "x-ms-version", @@ -10886,31 +10595,6 @@ "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" - }, - { - "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": "timeout", "in": "query", @@ -10919,14 +10603,6 @@ "type": "integer", "format": "int32" }, - { - "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" - }, { "name": "x-ms-lease-id", "in": "header", @@ -10936,90 +10612,62 @@ "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" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "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", - "x-ms-client-name": "encryptionAlgorithm" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.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/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "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": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" }, { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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-rfc1123", "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-client-request-id": { + "ETag": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-content-crc64": { + "Last-Modified": { "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "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-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" }, - "x-ms-encryption-scope": { + "x-ms-client-request-id": { "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" + "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." }, - "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-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." @@ -11035,10 +10683,10 @@ } } }, - "/{containerName}/{blob}?AppendBlob/{containerName}/{blob}?comp=appendblock": { + "/{containerName}/{blob}?BlockBlob": { "put": { - "operationId": "AppendBlob_AppendBlock", - "description": "The Append Block operation commits a new block of data to the end of an append 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/xml" ], @@ -11077,29 +10725,52 @@ "format": "int32" }, { - "name": "Content-Length", + "name": "Content-MD5", "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" + "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-MD5", + "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", - "x-ms-client-name": "transactionalContentMD5" + "x-ms-client-name": "blobContentMd5" }, { - "name": "x-ms-content-crc64", + "name": "x-ms-blob-cache-control", "in": "header", - "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "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": "transactionalContentCrc64" + "x-ms-client-name": "blobCacheControl" }, { "name": "x-ms-lease-id", @@ -11110,22 +10781,12 @@ "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "maxSize" - }, - { - "name": "x-ms-blob-condition-appendpos", + "name": "x-ms-blob-content-disposition", "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "appendPosition" + "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", @@ -11160,54 +10821,221 @@ "x-ms-client-name": "encryptionScope" }, { - "$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", + "name": "x-ms-access-tier", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "description": "Optional. The tier to be set on the blob.", "required": false, "type": "string", - "x-ms-client-name": "ifTags" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } - } - ], - "responses": { - "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-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "ETag": { - "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive" + ], + "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." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "$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" + }, + { + "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" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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" + }, + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } + } + ], + "responses": { + "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-rfc1123", + "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": { @@ -11215,30 +11043,11 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, - "x-ms-blob-append-offset": { - "type": "integer", - "format": "int64", - "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-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": { "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-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." @@ -11259,6 +11068,10 @@ "x-ms-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": { + "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." } } }, @@ -11271,10 +11084,10 @@ } } }, - "/{containerName}/{blob}?AppendBlob/{containerName}/{blob}?comp=appendblock&fromUrl": { + "/{containerName}/{blob}?BlockBlob&fromUrl": { "put": { - "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.", + "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": [ { "name": "x-ms-version", @@ -11309,6 +11122,14 @@ "type": "integer", "format": "int32" }, + { + "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", @@ -11319,114 +11140,277 @@ "x-ms-client-name": "contentLength" }, { - "name": "x-ms-source-url", - "in": "header", - "description": "Specify a URL to the copy source.", - "required": true, - "type": "string", - "x-ms-client-name": "sourceUrl" + "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", + "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", + "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-access-tier", + "in": "header", + "description": "Optional. 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" + ], + "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." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "name": "x-ms-source-range", - "in": "header", - "description": "Bytes of source data in the specified range.", - "required": true, - "type": "string", - "x-ms-client-name": "sourceRange" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "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/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "name": "x-ms-source-content-crc64", + "name": "x-ms-if-tags", "in": "header", - "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source.", + "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": "sourceContentCrc64" + "x-ms-client-name": "ifTags" }, { - "name": "x-ms-lease-id", + "name": "x-ms-source-if-modified-since", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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": "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "maxSize" + "format": "date-time-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "name": "x-ms-blob-condition-appendpos", + "name": "x-ms-source-if-match", "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "appendPosition" + "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-encryption-key", + "name": "x-ms-source-if-none-match", "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.", + "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": "encryptionKey" + "x-ms-client-name": "sourceIfNoneMatch" }, { - "name": "x-ms-encryption-key-sha256", + "name": "x-ms-source-if-tags", "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.", + "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": "encryptionKeySha256" + "x-ms-client-name": "sourceIfTags" }, { - "name": "x-ms-encryption-algorithm", + "name": "x-ms-source-content-md5", "in": "header", - "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "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": "encryptionAlgorithm" + "x-ms-client-name": "sourceContentMd5" }, { - "name": "x-ms-encryption-scope", + "name": "x-ms-tags", "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.", + "description": "Optional. Used to set blob tags in various blob operations.", "required": false, "type": "string", - "x-ms-client-name": "encryptionScope" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "x-ms-client-name": "BlobTagsString" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "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" }, { - "name": "x-ms-if-tags", + "name": "x-ms-copy-source-blob-properties", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "description": "Optional, default is true. Indicates if properties from the source blob should be copied.", "required": false, - "type": "string", - "x-ms-client-name": "ifTags" + "type": "boolean", + "x-ms-client-name": "copySourceBlobProperties" }, { "name": "x-ms-copy-source-authorization", @@ -11436,6 +11420,14 @@ "type": "string", "x-ms-client-name": "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/Azure.Core.ClientRequestIdHeader" } @@ -11448,11 +11440,6 @@ "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-rfc1123", - "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." @@ -11462,25 +11449,11 @@ "format": "date-time-rfc1123", "description": "The date/time that the container was last modified." }, - "x-ms-blob-append-offset": { - "type": "integer", - "format": "int64", - "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": { "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-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." @@ -11513,10 +11486,13 @@ } } }, - "/{containerName}/{blob}?AppendBlob/{containerName}/{blob}?comp=seal": { + "/{containerName}/{blob}?comp=block": { "put": { - "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": "BlockBlob_StageBlock", + "description": "The Stage Block operation creates a new block to be committed as part of a blob", + "consumes": [ + "application/xml" + ], "parameters": [ { "name": "x-ms-version", @@ -11543,6 +11519,31 @@ "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" + }, + { + "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": "timeout", "in": "query", @@ -11551,6 +11552,14 @@ "type": "integer", "format": "int32" }, + { + "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" + }, { "name": "x-ms-lease-id", "in": "header", @@ -11560,70 +11569,90 @@ "x-ms-client-name": "leaseId" }, { - "name": "x-ms-blob-condition-appendpos", + "name": "x-ms-encryption-key", "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": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "appendPosition" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "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/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "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/Azure.Core.ConditionalRequestHeaders.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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "name": "x-ms-if-tags", + "name": "x-ms-encryption-scope", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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": "ifTags" + "x-ms-client-name": "encryptionScope" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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-rfc1123", "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "ETag": { + "x-ms-client-request-id": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "Last-Modified": { + "x-ms-content-crc64": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-blob-sealed": { - "type": "boolean", - "description": "If this blob has been sealed" + "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-client-request-id": { + "x-ms-encryption-scope": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for 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-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-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." @@ -12725,7 +12754,7 @@ } }, "x-ms-pageable": { - "nextLinkName": "nextMarker" + "nextLinkName": "NextMarker" } } }, @@ -14279,7 +14308,7 @@ "$ref": "#/definitions/BlobFlatListSegment", "description": "The blob segment." }, - "nextMarker": { + "NextMarker": { "type": "string", "description": "The next marker of the blobs." } @@ -14323,7 +14352,7 @@ "$ref": "#/definitions/BlobHierarchyListSegment", "description": "The blob segment." }, - "nextMarker": { + "NextMarker": { "type": "string", "description": "The next marker of the blobs." } @@ -14465,7 +14494,7 @@ }, "x-ms-identifiers": [] }, - "nextMarker": { + "NextMarker": { "type": "string", "description": "The next marker of the containers." } @@ -14605,7 +14634,7 @@ }, "x-ms-identifiers": [] }, - "nextMarker": { + "NextMarker": { "type": "string", "description": "The next marker." } From 75db1c653accf1514a7381f42b497558d8929e9d Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Wed, 30 Oct 2024 17:54:01 -0700 Subject: [PATCH 079/129] update blockblob operations --- .../storage/Microsoft.BlobStorage/routes.tsp | 37 +- .../stable/2021-12-02/blob.json | 477 ++++++++++-------- 2 files changed, 287 insertions(+), 227 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 877487484ec5..8456fc7d23f0 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -1829,6 +1829,7 @@ interface BlockBlob { #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") upload is StorageOperation< @@ -1841,6 +1842,7 @@ interface BlockBlob { ...BodyParameter; ...TimeoutParameter; ...ContentMd5Parameter; + ...ContentLengthParameter; ...BlobContentTypeParameter; ...BlobContentEncodingParameter; ...BlobContentLanguageParameter; @@ -1871,7 +1873,8 @@ interface BlockBlob { ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; - } + }, + "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. */ @@ -1905,6 +1908,7 @@ interface BlockBlob { ...ConditionalRequestHeaders; ...IfTagsParameter; ...SourceIfModifiedSinceParameter; + ...SourceIfUnmodifiedSinceParameter; ...SourceIfMatchParameter; ...SourceIfNoneMatchParameter; ...SourceIfTagsParameter; @@ -1920,28 +1924,32 @@ interface BlockBlob { ...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") stageBlock is StorageOperation< { - ...BodyParameter; ...ContainerNameParameter; ...BlobNameParameter; ...BlockIdParameter; ...ContentLengthParameter; ...ContentMd5Parameter; - ...TimeoutParameter; ...ContentCrc64Parameter; + ...BodyParameter; + ...TimeoutParameter; ...LeaseIdOptionalParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; @@ -1956,7 +1964,8 @@ interface BlockBlob { ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; - } + }, + "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. */ @@ -1964,7 +1973,7 @@ interface BlockBlob { #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=block&fromURL") + @route("/{containerName}/{blob}?comp=block&fromURL") stageBlockFromUrl is StorageOperation< { ...ContainerNameParameter; @@ -2003,12 +2012,9 @@ interface BlockBlob { #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=blocklist") + @route("/{containerName}/{blob}?comp=blocklist") commitBlockList is StorageOperation< { - /** Blob Blocks. */ - @body blocks: BlockLookupList; - ...ContainerNameParameter; ...BlobNameParameter; ...TimeoutParameter; @@ -2021,8 +2027,9 @@ interface BlockBlob { ...ContentCrc64Parameter; // TODO: ...MetadataParameter; - ...BlobContentDispositionParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; @@ -2030,6 +2037,10 @@ interface BlockBlob { ...AccessTierOptionalParameter; ...ConditionalRequestHeaders; ...IfTagsParameter; + + /** Blob Blocks. */ + @body blocks: BlockLookupList; + ...BlobTagsHeaderParameter; ...ImmutabilityPolicyExpiryParameter; ...ImmutabilityPolicyModeParameter; @@ -2041,6 +2052,7 @@ interface BlockBlob { ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; ...ContentCrc64ResponseHeader; + ...VersionIdResponseHeader; ...DateResponseHeader; ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; @@ -2051,13 +2063,14 @@ interface BlockBlob { /** 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("?comp=blocklist") + @route("/{containerName}/{blob}?comp=blocklist") getBlockList is StorageOperation< { ...ContainerNameParameter; ...BlobNameParameter; ...SnapshotParameter; ...BlockListTypeParameter; + ...TimeoutParameter; ...LeaseIdOptionalParameter; ...IfTagsParameter; }, diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index dc7120312fac..5e1320a25146 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -10688,7 +10688,7 @@ "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/xml" + "application/octet-stream" ], "parameters": [ { @@ -10732,6 +10732,15 @@ "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", @@ -11356,6 +11365,15 @@ "format": "date-time-rfc1123", "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-rfc1123", + "x-ms-client-name": "sourceIfUnmodifiedSince" + }, { "name": "x-ms-source-if-match", "in": "header", @@ -11440,6 +11458,11 @@ "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-rfc1123", + "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." @@ -11474,6 +11497,10 @@ "x-ms-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": { + "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." } } }, @@ -11491,7 +11518,7 @@ "operationId": "BlockBlob_StageBlock", "description": "The Stage Block operation creates a new block to be committed as part of a blob", "consumes": [ - "application/xml" + "application/octet-stream" ], "parameters": [ { @@ -11544,14 +11571,6 @@ "type": "string", "x-ms-client-name": "transactionalContentMD5" }, - { - "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" - }, { "name": "x-ms-content-crc64", "in": "header", @@ -11560,6 +11579,14 @@ "type": "string", "x-ms-client-name": "transactionalContentCrc64" }, + { + "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" + }, { "name": "x-ms-lease-id", "in": "header", @@ -11668,209 +11695,7 @@ } } }, - "/?comp=batch": { - "post": { - "operationId": "Service_SubmitBatch", - "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", - "produces": [ - "*/*", - "application/json" - ], - "consumes": [ - "*/*" - ], - "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" - }, - { - "$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." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/?comp=blobs": { - "get": { - "operationId": "Service_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" - }, - { - "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" - }, - { - "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": "FilterBlobsIncludes", - "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-rfc1123", - "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." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/?comp=block&fromURL/{containerName}/{blob}": { + "/{containerName}/{blob}?comp=block&fromURL": { "put": { "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.", @@ -12097,7 +11922,7 @@ } } }, - "/?comp=blocklist/{containerName}/{blob}": { + "/{containerName}/{blob}?comp=blocklist": { "put": { "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.", @@ -12194,6 +12019,14 @@ "type": "string", "x-ms-client-name": "transactionalContentCrc64" }, + { + "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", @@ -12477,6 +12310,10 @@ "x-ms-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": { + "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." } } }, @@ -12489,7 +12326,7 @@ } } }, - "/?comp=blocklist/{containerName}/{blob}&_overload=getBlockList": { + "/{containerName}/{blob}?comp=blocklist&_overload=getBlockList": { "get": { "operationId": "BlockBlob_GetBlockList", "description": "The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob.", @@ -12564,6 +12401,14 @@ }, "x-ms-client-name": "listType" }, + { + "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" + }, { "name": "x-ms-lease-id", "in": "header", @@ -12635,6 +12480,208 @@ } } }, + "/?comp=batch": { + "post": { + "operationId": "Service_SubmitBatch", + "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "produces": [ + "*/*", + "application/json" + ], + "consumes": [ + "*/*" + ], + "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" + }, + { + "$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." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/?comp=blobs": { + "get": { + "operationId": "Service_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" + }, + { + "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" + }, + { + "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": "FilterBlobsIncludes", + "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-rfc1123", + "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." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, "/?comp=list": { "get": { "operationId": "Service_ListContainersSegment", From 56b3896c77c30c51dad9e4672b2907f49e577b84 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Thu, 31 Oct 2024 19:03:53 -0700 Subject: [PATCH 080/129] clean up more models and routes --- .../storage/Microsoft.BlobStorage/client.tsp | 1 + .../storage/Microsoft.BlobStorage/models.tsp | 326 +++++---------- .../storage/Microsoft.BlobStorage/routes.tsp | 82 ++-- .../stable/2021-12-02/blob.json | 389 +++++++++--------- 4 files changed, 364 insertions(+), 434 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index a097a9b5e409..fbdf33b31add 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -26,6 +26,7 @@ model BlobStorageClientOptions { ); @@clientName(BlobPropertiesInternal.expiryTime, "ExpiresOn"); @@clientName(BlobPropertiesInternal.sealed, "IsSealed"); +@@clientName(BlobPropertiesInternal.lastAccessTime, "LastAccessedOn"); @@clientName(BlobPropertiesInternal.immutabilityPolicyUntilDate, "ImmutabilityPolicyExpiresOn" ); diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index b45af9df7794..5631d98a2e76 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -17,7 +17,7 @@ namespace Storage.Blob; model StorageError { /** The error message. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API" - Message: string; + Message?: string; } /// Models @@ -28,23 +28,25 @@ model BlockLookupList { /** The committed blocks */ @Xml.unwrapped @Xml.name("Committed") - committed: string[]; + committed?: string[]; /** The uncommitted blocks */ @Xml.unwrapped @Xml.name("Uncommitted") - uncommitted: string[]; + uncommitted?: string[]; /** The latest blocks */ @Xml.unwrapped @Xml.name("Latest") - latest: string[]; + latest?: string[]; } /** Represents an array of signed identifiers */ -alias SignedIdentifiers = Array; +// TODO: do the array elements need xml.unwrapped? +model SignedIdentifiers is Array; /** The signed identifier. */ +@Xml.name("SignedIdentifier") model SignedIdentifier { /** The unique ID for the signed identifier. */ @Xml.name("Id") id: string; @@ -53,7 +55,9 @@ model SignedIdentifier { @Xml.name("AccessPolicy") accessPolicy: AccessPolicy; } +// TODO: looks like this is a pagedResult /** The result of a Filter Blobs API call */ +@Xml.name("EnumerationResults") model FilterBlobSegment { /** The service endpoint. */ @Xml.attribute @@ -63,6 +67,7 @@ model FilterBlobSegment { /** The filter for the blobs. */ @Xml.name("Where") where: string; + // TODO: the docs show this as unwrapped but the swagger specified it as wrapped: https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs?tabs=microsoft-entra-id /** The blob segment. */ @Xml.name("Blobs") blobs: FilterBlobItem[]; @@ -80,7 +85,8 @@ model FilterBlobItem { @Xml.name("ContainerName") containerName: string; /** The metadata of the blob. */ - @Xml.name("Tags") tags?: BlobTags; + // TODO: check if this is correct BlobTags has the xml.name on it + @Xml.unwrapped tags?: BlobTags; /** The version ID of the blob. */ @Xml.name("VersionId") versionId?: string; @@ -104,7 +110,7 @@ union ListContainersIncludeType { } /** The filter blobs includes. */ -union FilterBlobsIncludes { +union FilterBlobsIncludeItem { /** The filter includes no versions. */ None: "none", @@ -176,7 +182,8 @@ model ListContainersSegmentResponse { @Xml.name("MaxResults") maxxResults?: int32; /** The container segment. */ - @Xml.name("ContainerItems") containerItems: ContainerItem[]; + // TODO: should this be unwrapped? The swagger shows it as wrapped. Example in docs: https://learn.microsoft.com/en-us/rest/api/storageservices/list-containers2?tabs=microsoft-entra-id#response-body + @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." @@ -206,17 +213,11 @@ model ContainerItem { /** The properties of a container. */ model ContainerProperties { - /** The date-time the container was created in RFC1123 format. */ - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") - @Xml.name("Creation-Time") - creationTime?: utcDateTime; - /** The date-time the container was last modified in RFC1123 format. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @Xml.name("Last-Modified") - lastModified: utcDateTime; + lastModified: string; /** The ETag of the container. */ @Xml.name("ETag") eTag: string; @@ -236,6 +237,9 @@ model ContainerProperties { /** 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; @@ -243,14 +247,11 @@ model ContainerProperties { @Xml.name("DenyEncryptionScopeOverride") denyEncryptionScopeOverride?: boolean; - /** The has legal hold status of the container. */ - @Xml.name("HasLegalHold") hasLegalHold?: boolean; - /** The deleted time of the container. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @Xml.name("DeletedTime") - deletedTime?: utcDateTime; + deletedTime?: string; /** The remaining retention days of the container. */ @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; @@ -263,30 +264,28 @@ model ContainerProperties { /** The metadata of a container. */ #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" @Xml.name("Metadata") -model ContainerMetadata is Record { - /** Whether the metadata is encrypted. */ - @Xml.attribute - @Xml.name("Encrypted") - encrypted: string; -} +model ContainerMetadata is Record; /** Stats for the storage service. */ model StorageServiceStats { /** The geo replication stats. */ - @Xml.name("GeoReplication") geoReplication: GeoReplication; + @Xml.name("GeoReplication") geoReplication?: GeoReplication; } -/** The geo replication status. */ +/** Geo-Replication information for the Secondary Storage Service */ model GeoReplication { - /** The georeplication status. */ - @Xml.name("Status") status: GeoReplicationStatus; + /** The status of the secondary location */ + @Xml.name("Status") status: GeoReplicationStatusType; - /** The last sync time. */ - @Xml.name("LastSyncTime") lastSyncTime: string; + /** 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("date-time-rfc1123") + @Xml.name("LastSyncTime") + lastSyncTime: string; } /** The geo replication status. */ -union GeoReplicationStatus { +union GeoReplicationStatusType { /** The geo replication is live. */ Live: "live", @@ -464,6 +463,12 @@ union AccessTier { /** The archive access tier. */ Archive: "Archive", + /** The Premium access tier. */ + Premium: "Premium", + + /** The Cold access tier. */ + Cold: "Cold", + /** Extensible */ string, } @@ -477,10 +482,7 @@ union ArchiveStatus { RehydratePendingToCool: "rehydrate-pending-to-cool", /** The archive status is rehydrating pending to archive. */ - RehydratePendingToArchive: "rehydrate-pending-to-archive", - - /** The archive status is rehydrating pending to expired. */ - RehydratePendingToExpired: "rehydrate-pending-to-expired", + RehydratePendingToCold: "rehydrate-pending-to-cold", /** Extensible */ string, @@ -511,7 +513,7 @@ model BlobItemInternal { @Xml.name("Metadata") metadata?: BlobMetadata; /** The tags of the blob. */ - @Xml.name("BlobTags") blobTags?: BlobTag[]; + @Xml.name("BlobTags") blobTags?: BlobTags; /** The object replication metadata of the blob. */ @Xml.name("ObjectReplicationMetadata") @@ -528,13 +530,13 @@ model BlobPropertiesInternal { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @Xml.name("Creation-Time") - creationTime?: utcDateTime; + creationTime?: string; /** The date-time the blob was last modified in RFC1123 format. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @Xml.name("Last-Modified") - lastModified: utcDateTime; + lastModified: string; /** The blog ETag. */ @Xml.name("ETag") eTag: string; @@ -552,7 +554,7 @@ model BlobPropertiesInternal { @Xml.name("Content-Language") contentLanguage?: string; /** The content MD5 of the blob. */ - @Xml.name("Content-MD5") contentMd5?: string; + @Xml.name("Content-MD5") contentMd5?: bytes; /** The content disposition of the blob. */ @Xml.name("Content-Disposition") contentDisposition?: string; @@ -591,7 +593,7 @@ model BlobPropertiesInternal { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @Xml.name("CopyCompletionTime") - copyCompletionTime?: utcDateTime; + copyCompletionTime?: string; /** The copy status description of the blob. */ @Xml.name("CopyStatusDescription") copyStatusDescription?: string; @@ -609,7 +611,7 @@ model BlobPropertiesInternal { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @Xml.name("DeletedTime") - deletedTime?: utcDateTime; + deletedTime?: string; /** The remaining retention days of the blob. */ @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; @@ -623,6 +625,9 @@ model BlobPropertiesInternal { /** 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; @@ -630,7 +635,7 @@ model BlobPropertiesInternal { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @Xml.name("AccessTierChangeTime") - accessTierChangeTime?: utcDateTime; + accessTierChangeTime?: string; /** The number of tags for the blob. */ @Xml.name("TagCount") tagCount?: int32; @@ -639,7 +644,7 @@ model BlobPropertiesInternal { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @Xml.name("Expiry-Time") - expiryTime?: utcDateTime; + expiryTime?: string; /** Whether the blob is sealed. */ @Xml.name("Sealed") @@ -652,13 +657,13 @@ model BlobPropertiesInternal { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @Xml.name("LastAccessTime") - lastAccessTime?: utcDateTime; + lastAccessTime?: string; /** The immutability policy until time of the blob. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @Xml.name("ImmutabilityPolicyUntilDate") - immutabilityPolicyUntilDate?: utcDateTime; + immutabilityPolicyUntilDate?: string; /** The immutability policy mode of the blob. */ @Xml.name("ImmutabilityPolicyMode") @@ -698,7 +703,7 @@ union BlobType { string, } -/** The rehydrate priority. */ +/** 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. */ @@ -712,12 +717,13 @@ union RehydratePriority { } /** 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; + encrypted?: string; } /** The blob tags. */ @@ -731,6 +737,7 @@ model BlobTag { } /** The object replication metadata. */ +@Xml.name("OrMetadata") model ObjectReplicationMetadata is Record; /// Service Properties @@ -759,16 +766,22 @@ model StorageServiceProperties { @Xml.name("StaticWebsite") staticWebsite?: StaticWebsite; } -/** The static website properties. */ +/** 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("ErrorDocument") errorDocument?: string; + @Xml.name("ErrorDocument404Path") errorDocument404Path?: string; + + /** Absolute path of the default index page */ + @Xml.name("DefaultIndexDocumentPath") defaultIndexDocumentPath?: string; } -/** The CORS rule. */ +/** 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; @@ -783,7 +796,9 @@ model CorsRule { @Xml.name("ExposedHeaders") exposedHeaders: string; /** The maximum age in seconds. */ - @Xml.name("MaxAgeInSeconds") maxAgeInSeconds: int32; + @Xml.name("MaxAgeInSeconds") + @minValue(0) + maxAgeInSeconds: int32; } /** The metrics properties. */ @@ -799,33 +814,9 @@ model Metrics { /** The retention policy of the metrics. */ @Xml.name("RetentionPolicy") retentionPolicy?: RetentionPolicy; - - /** The service properties of the metrics. */ - @Xml.name("ServiceProperties") serviceProperties?: MetricsServiceProperties; -} - -/** The metrics service properties. */ -model MetricsServiceProperties { - /** The hour metrics properties. */ - @Xml.name("HourMetrics") hourMetrics: MetricsProperties; - - /** The minute metrics properties. */ - @Xml.name("MinuteMetrics") minuteMetrics: MetricsProperties; -} - -/** The metrics properties. */ -model MetricsProperties { - /** Whether to include API in the metrics. */ - @Xml.name("Enabled") enabled: boolean; - - /** The version of the metrics properties. */ - @Xml.name("Version") version: string; - - /** The retention policy of the metrics. */ - @Xml.name("RetentionPolicy") retentionPolicy: RetentionPolicy; } -/** The logging properties. */ +/** Azure Analytics Logging settings. */ model Logging { /** The version of the logging properties. */ @Xml.name("Version") version: string; @@ -849,10 +840,12 @@ model RetentionPolicy { @Xml.name("Enabled") enabled: boolean; /** The number of days to retain the logs. */ - @Xml.name("Days") days: int32; + @Xml.name("Days") + @minValue(1) + days?: int32; /** Whether to allow permanent delete. */ - @Xml.name("AllowPermanentDelete") allowPermanentDelete: boolean; + @Xml.name("AllowPermanentDelete") allowPermanentDelete?: boolean; } // List Blobs @@ -885,10 +878,9 @@ model ListBlobsFlatSegmentResponse { @Xml.name("Segment") segment: BlobFlatListSegment; /** The next marker of the blobs. */ - #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API. The casing is correct." @nextLink @Xml.name("NextMarker") - NextMarker?: string; + nextMarker?: string; } /** The blob flat list segment. */ @@ -902,20 +894,18 @@ model BlobFlatListSegment { @pagedResult model PageList { /** The page ranges. */ - @Xml.name("PageRange") pageRange: PageRange[]; + @Xml.name("PageRange") pageRange?: PageRange[]; /** The clear ranges. */ - @Xml.name("ClearRange") clearRange: ClearRange[]; + @Xml.name("ClearRange") clearRange?: ClearRange[]; /** The next marker. */ - #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API. The casing is correct." @nextLink @Xml.name("NextMarker") - NextMarker?: string; + nextMarker?: string; } /** The page range. */ -@Xml.name("PageRange") model PageRange { /** The start of the byte range. */ @Xml.name("Start") start: int64; @@ -941,7 +931,7 @@ model BlobTags { } /** The query request, note only SQL supported */ -union QueryRequestTypeSqlOnly { +union QueryRequestType { /** The SQL request query type. */ SQL: "SQL", @@ -950,10 +940,9 @@ union QueryRequestTypeSqlOnly { } /** Groups the set of query request settings. */ -@Xml.name("QueryRequest") model QueryRequest { /** Required. The type of the provided query expression. */ - @Xml.name("QueryType") queryType: QueryRequestTypeSqlOnly; + @Xml.name("QueryType") queryType: QueryRequestType; /** The query expression in SQL. The maximum size of the query expression is 256KiB. */ @Xml.name("Expression") expression: string; @@ -989,11 +978,11 @@ model QueryFormat { /** The Parquet configuration. */ #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" - @Xml.name("ParquetConfiguration") parquetConfiguration?: ParquetConfiguration; + @Xml.name("ParquetConfiguration") + parquetTextConfiguration?: ParquetConfiguration; } /** Represents the delimited text configuration. */ -@Xml.name("DelimitedTextConfiguration") model DelimitedTextConfiguration { /** The string used to separate columns. */ @Xml.name("ColumnSeparator") columnSeparator?: string; @@ -1012,14 +1001,12 @@ model DelimitedTextConfiguration { } /** Represents the JSON text configuration. */ -@Xml.name("JsonTextConfiguration") model JsonTextConfiguration { /** The string used to separate records. */ @Xml.name("RecordSeparator") recordSeparator?: string; } /** Represents the Apache Arrow configuration. */ -@Xml.name("ArrowConfiguration") model ArrowConfiguration { /** The Apache Arrow schema */ @Xml.name("Schema") schema: ArrowField[]; @@ -1042,8 +1029,8 @@ model ArrowField { } /** Represents the Parquet configuration. */ +// TODO: in swagger this was a type: object...is record unknown correct? #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" -@Xml.name("ParquetConfiguration") model ParquetConfiguration is Record; /** The query format type. */ @@ -1071,30 +1058,28 @@ union QueryType { 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; + blobContentMd5?: bytes; }; /** 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: int64; + 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). */ - @clientName("appendPosition") @header("x-ms-blob-condition-appendpos") - blobConditionAppendPosition: int64; + 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). */ - @clientName("maxSize") @header("x-ms-blob-condition-maxsize") - blobConditionMaxSize: int64; + maxSize?: int64; }; /** The sequence number action parameter. */ @@ -1123,7 +1108,7 @@ union SequenceNumberActionType { 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; + blobSequenceNumber?: int64 = 0; }; /** The blob content length required parameter. */ @@ -1133,104 +1118,39 @@ alias BlobContentLengthRequired = { blobContentLength: int64; }; -/** The previous snapshot parameter. */ -alias PrevSnapshotParameter = { - /** 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; -}; - -/** The previous snapshot URL parameter. */ -alias PrevSnapshotUrlParameter = { - /** 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. */ - @clientName("prevSnapshotUrl") - @header("x-ms-previous-snapshot-url") - previousSnapshotUrl: string; -}; - -/** The is immutable storage with versioning enable response header. */ -alias IsImmutableStorageWithVersioningEnabledResponseHeader = { - /** Indicates whether version level worm is enabled on a container */ - @clientName("IsImmutableStorageWithVersioningEnabled") - @header("x-ms-immutable-storage-with-versioning-enabled") - immutableStorageWithVersioningEnabled: boolean; -}; - /** The deny encryption scope override response header. */ -alias DenyEncryptionScopeOverrideResponseHeader = { +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; -}; - -/** The default encryption scope response header. */ -alias DefaultEncryptionScopeResponseHeader = { - /** The default encryption scope for the container. */ - @header("x-ms-default-encryption-scope") - defaultEncryptionScope: string; -}; - -/** The has legal hold response header. */ -alias HasLegalHoldResponseHeader = { - /** Indicates if a blob has a legal hold. */ - @clientName("HasLegalHold") - @header("x-ms-legal-hold") - legalHold: boolean; -}; - -/** The has immutability policy response header. */ -alias HasImmutabilityPolicyResponseHeader = { - /** Indicates if a blob has an active immutability policy. */ - @header("x-ms-has-immutability-policy") - hasImmutabilityPolicy: boolean; + denyEncryptionScopeOverride?: boolean; }; -/** The public access response header. */ -alias PublicAccessResponseHeader = { +/** 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") - publicAccess: PublicAccessType; + access?: PublicAccessType; }; -/** The rehydrate priority response header. */ -alias RehydratePriorityResponseHeader = { +/** 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; + rehydratePriority?: RehydratePriority; }; /** The expires on response header. */ -alias ExpiresOnResponseHeader = { - /** UTC date/time value generated by the service that indicates the time at which the blob will expire. */ +alias ExpiryTimeHeader = { + /** The time this blob will expire. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @clientName("ExpiresOn") @encode("date-time-rfc1123") @header("x-ms-expiry-time") - expiryTime: utcDateTime; -}; - -/** The access tier change time response header. */ -alias AccessTierChangeTimeResponseHeader = { - /** 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("date-time-rfc1123") - @header("x-ms-access-tier-change-time") - accessTierChangeTime: utcDateTime; + expiryTime?: string; }; -/** The archive status response header. */ -alias ArchiveStatusResponseHeader = { - /** 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 access tier inferred response header. */ -alias AccessTierInferredResponseHeader = { - /** 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; -}; +// TODO - left off here /** The access tier response header. */ alias AccessTierResponseHeader = { @@ -1410,13 +1330,6 @@ alias IfSequenceNumberLessThanOrEqualToParameter = { ifSequenceNumberLessThanOrEqualTo?: int64; }; -/** The blob content-length response header. */ -alias BlobContentLengthResponseHeader = { - /** The size of the blob in bytes. */ - @header("x-ms-blob-content-length") - blobContentLength: int64; -}; - /** The block list type parameter. */ alias BlockListTypeParameter = { /** Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together. */ @@ -1487,7 +1400,7 @@ alias AccountKindResponseHeader = { alias SkuNameResponseHeader = { /** Identifies the sku name of the account */ @header("x-ms-sku-name") - skuName: SkuName; + skuName?: SkuName; }; /** The access tier required parameter. */ @@ -1534,13 +1447,6 @@ alias SourceIfUnmodifiedSinceParameter = { sourceIfUnmodifiedSince?: utcDateTime; }; -/** The rehydrate priority parameter. */ -alias RehydratePriorityParameter = { - /** Optional: Indicates the priority with which to rehydrate an archived blob. */ - @header("x-ms-rehydrate-priority") - rehydratePriority?: RehydratePriority; -}; - /** The snapshot response header. */ alias SnapshotResponseHeader = { /** Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot. */ @@ -1637,14 +1543,6 @@ alias BlobSequenceNumberResponseHeader = { blobSequenceNumber: int64; }; -/** The blob expiration time parameter. */ -alias BlobExpiryTimeParameter = { - /** The time to set the blob to expiry. */ - @clientName("ExpiresOn") - @header("x-ms-expiry-time") - expiryTime: string; -}; - /** The blob expiration options parameter. */ alias BlobExpiryOptionsParameter = { /** Required. Indicates mode of the expiry time */ @@ -1891,13 +1789,6 @@ alias BlobSequenceNumberParameter = { blobSequenceNumber?: int64; }; -/** The blob content length parameter. */ -alias BlobContentLengthRequiredParameter = { - /** 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 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. */ @@ -2300,27 +2191,12 @@ alias LeaseIdOptionalParameter = { @header("x-ms-lease-id") leaseId?: string; }; -/** The deny encryption scope override parameter. */ -alias DenyEncryptionScopeOverrideParameter = { - /** Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container. */ - @header("x-ms-deny-encryption-scope-override") - denyEncryptionScopeOverride?: boolean; -}; - /** The default encryption scope parameter. */ alias DefaultEncryptionScopeParameter = { /** 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; }; -/** The blob public access parameter. */ -alias BlobPublicAccessParameter = { - /** Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'. */ - @clientName("access") - @header("x-ms-blob-public-access") - publicAccess?: PublicAccessType; -}; - // TODO: Figure out how to better represent this /** 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. */ // @header("x-ms-meta") meta?: string; @@ -2337,7 +2213,7 @@ alias MetadataResponseHeader = Record; alias FilterBlobsIncludeParameter = { /** Include this parameter to specify one or more datasets to include in the response. */ @query - include?: FilterBlobsIncludes[]; + include?: FilterBlobsIncludeItem[]; }; /** The filter blobs where parameter. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 8456fc7d23f0..7f6aaed67cfd 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -180,10 +180,10 @@ interface Container { // TODO should we define metadata headers like: // ...MetadataHeaders; - ...BlobPublicAccessParameter; + ...BlobPublicAccess; ...DefaultEncryptionScopeParameter; - ...DenyEncryptionScopeOverrideParameter; + ...DenyEncryptionScopeOverride; }, { @statusCode statusCode: 201; @@ -215,12 +215,25 @@ interface Container { ...LeaseDurationResponseHeader; ...LeaseStateResponseHeader; ...LeaseStatusResponseHeader; - ...PublicAccessResponseHeader; - ...HasImmutabilityPolicyResponseHeader; - ...HasLegalHoldResponseHeader; - ...DefaultEncryptionScopeResponseHeader; - ...DenyEncryptionScopeOverrideResponseHeader; - ...IsImmutableStorageWithVersioningEnabledResponseHeader; + ...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; } >; @@ -278,7 +291,7 @@ interface Container { }, { @body body: SignedIdentifiers; - ...PublicAccessResponseHeader; + ...BlobPublicAccess; ...EtagResponseHeader; ...LastModifiedResponseHeader; ...DateResponseHeader; @@ -302,7 +315,7 @@ interface Container { ...TimeoutParameter; ...LeaseIdOptionalParameter; - ...BlobPublicAccessParameter; + ...BlobPublicAccess; ...IfModifiedSinceParameter; ...IfUnmodifiedSinceParameter; }, @@ -757,15 +770,27 @@ interface Blob { ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; ...AccessTierResponseHeader; - ...AccessTierInferredResponseHeader; - ...ArchiveStatusResponseHeader; - ...AccessTierChangeTimeResponseHeader; + + /** 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("date-time-rfc1123") + @header("x-ms-access-tier-change-time") + accessTierChangeTime?: string; + ...VersionIdResponseHeader; ...IsCurrentVersionResponseHeader; ...TagCountResponseHeader; - ...ExpiresOnResponseHeader; + ...ExpiryTimeHeader; ...IsSealedResponseHeader; - ...RehydratePriorityResponseHeader; + ...RehydratePriorityHeader; ...LastAccessedResponseHeader; ...ImmutabilityPolicyExpiresOnResponseHeader; ...ImmutabilityPolicyModeResponseHeader; @@ -823,7 +848,7 @@ interface Blob { ...BlobNameParameter; ...TimeoutParameter; ...BlobExpiryOptionsParameter; - ...BlobExpiryTimeParameter; + ...ExpiryTimeHeader; }, { ...EtagResponseHeader; @@ -1113,7 +1138,7 @@ interface Blob { // TODO: ...MetadataParameter; ...AccessTierOptionalParameter; - ...RehydratePriorityParameter; + ...RehydratePriorityHeader; ...SourceIfModifiedSinceParameter; ...SourceIfUnmodifiedSinceParameter; ...SourceIfMatchParameter; @@ -1221,7 +1246,7 @@ interface Blob { ...VersionIdParameter; ...TimeoutParameter; ...AccessTierRequiredParameter; - ...RehydratePriorityParameter; + ...RehydratePriorityHeader; ...LeaseIdOptionalParameter; ...IfTagsParameter; }, @@ -1382,7 +1407,7 @@ interface PageBlob { ...EncryptionScopeParameter; ...ConditionalRequestHeaders; ...IfTagsParameter; - ...BlobContentLengthRequiredParameter; + ...BlobContentLengthRequired; ...BlobSequenceNumberParameter; ...BlobTagsHeaderParameter; ...ImmutabilityPolicyExpiryParameter; @@ -1552,7 +1577,7 @@ interface PageBlob { PageList & { ...LastModifiedResponseHeader; ...EtagResponseHeader; - ...BlobContentLengthResponseHeader; + ...BlobContentLengthRequired; ...DateResponseHeader; } >; @@ -1567,8 +1592,15 @@ interface PageBlob { ...BlobNameParameter; ...SnapshotParameter; ...TimeoutParameter; - ...PrevSnapshotParameter; - ...PrevSnapshotUrlParameter; + + /** 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; @@ -1579,7 +1611,7 @@ interface PageBlob { PageList & { ...LastModifiedResponseHeader; ...EtagResponseHeader; - ...BlobContentLengthResponseHeader; + ...BlobContentLengthRequired; ...DateResponseHeader; } >; @@ -1602,7 +1634,7 @@ interface PageBlob { ...EncryptionScopeParameter; ...ConditionalRequestHeaders; ...IfTagsParameter; - ...BlobContentLengthRequiredParameter; + ...BlobContentLengthRequired; }, { ...EtagResponseHeader; @@ -2077,7 +2109,7 @@ interface BlockBlob { BlockLookupList & { ...LastModifiedResponseHeader; ...EtagResponseHeader; - ...BlobContentLengthResponseHeader; + ...BlobContentLengthRequired; ...DateResponseHeader; } >; diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 5e1320a25146..970ddc555a3a 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -356,7 +356,11 @@ }, "x-ms-has-immutability-policy": { "type": "boolean", - "description": "Indicates if a blob has an active immutability policy." + "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", @@ -452,10 +456,6 @@ ] } }, - "x-ms-legal-hold": { - "type": "boolean", - "description": "Indicates if a blob has a legal hold." - }, "x-ms-request-id": { "type": "string", "format": "uuid", @@ -505,7 +505,7 @@ { "name": "x-ms-blob-public-access", "in": "header", - "description": "Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'.", + "description": "The public access setting for the container.", "required": false, "type": "string", "enum": [ @@ -541,10 +541,10 @@ { "name": "x-ms-deny-encryption-scope-override", "in": "header", - "description": "Optional. Version 2019-07-07 and later. Specifies that the request will fail if the target container does not have the same encryption scope as the source container.", + "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": "denyEncryptionScopeOverride" + "x-ms-client-name": "PreventEncryptionScopeOverride" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -2700,7 +2700,9 @@ "P80", "Hot", "Cool", - "Archive" + "Archive", + "Premium", + "Cold" ], "x-ms-enum": { "name": "AccessTier", @@ -2775,6 +2777,16 @@ "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." } ] } @@ -2794,8 +2806,7 @@ "enum": [ "rehydrate-pending-to-hot", "rehydrate-pending-to-cool", - "rehydrate-pending-to-archive", - "rehydrate-pending-to-expired" + "rehydrate-pending-to-cold" ], "x-ms-enum": { "name": "ArchiveStatus", @@ -2812,14 +2823,9 @@ "description": "The archive status is rehydrating pending to cool." }, { - "name": "RehydratePendingToArchive", - "value": "rehydrate-pending-to-archive", + "name": "RehydratePendingToCold", + "value": "rehydrate-pending-to-cold", "description": "The archive status is rehydrating pending to archive." - }, - { - "name": "RehydratePendingToExpired", - "value": "rehydrate-pending-to-expired", - "description": "The archive status is rehydrating pending to expired." } ] } @@ -2950,7 +2956,7 @@ "x-ms-expiry-time": { "type": "string", "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob will expire." + "description": "The time this blob will expire." }, "x-ms-immutability-policy-mode": { "type": "string", @@ -3297,10 +3303,7 @@ "200": { "description": "The request has succeeded.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/SignedIdentifier" - } + "$ref": "#/definitions/SignedIdentifiers" }, "headers": { "Date": { @@ -3408,7 +3411,7 @@ { "name": "x-ms-blob-public-access", "in": "header", - "description": "Specifies whether data in the container may be accessed publicly and the level of access. Possible values include: 'container', 'blob'.", + "description": "The public access setting for the container.", "required": false, "type": "string", "enum": [ @@ -3460,10 +3463,7 @@ "description": "The access control list for the container.", "required": true, "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/SignedIdentifier" - } + "$ref": "#/definitions/SignedIdentifiers" } } ], @@ -3741,7 +3741,7 @@ "versions" ], "x-ms-enum": { - "name": "FilterBlobsIncludes", + "name": "FilterBlobsIncludeItem", "modelAsString": true, "values": [ { @@ -4517,7 +4517,7 @@ } }, "x-ms-pageable": { - "nextLinkName": "NextMarker" + "nextLinkName": "nextMarker" } } }, @@ -4928,9 +4928,10 @@ { "name": "x-ms-expiry-time", "in": "header", - "description": "The time to set the blob to expiry.", - "required": true, + "description": "The time this blob will expire.", + "required": false, "type": "string", + "format": "date-time-rfc1123", "x-ms-client-name": "ExpiresOn" }, { @@ -6449,7 +6450,9 @@ "P80", "Hot", "Cool", - "Archive" + "Archive", + "Premium", + "Cold" ], "x-ms-enum": { "name": "AccessTier", @@ -6524,6 +6527,16 @@ "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." } ] }, @@ -6532,7 +6545,7 @@ { "name": "x-ms-rehydrate-priority", "in": "header", - "description": "Optional: Indicates the priority with which to rehydrate an archived 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.", "required": false, "type": "string", "enum": [ @@ -6851,7 +6864,9 @@ "P80", "Hot", "Cool", - "Archive" + "Archive", + "Premium", + "Cold" ], "x-ms-enum": { "name": "AccessTier", @@ -6926,6 +6941,16 @@ "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." } ] }, @@ -7360,7 +7385,9 @@ "P80", "Hot", "Cool", - "Archive" + "Archive", + "Premium", + "Cold" ], "x-ms-enum": { "name": "AccessTier", @@ -7435,6 +7462,16 @@ "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." } ] }, @@ -7443,7 +7480,7 @@ { "name": "x-ms-rehydrate-priority", "in": "header", - "description": "Optional: Indicates the priority with which to rehydrate an archived 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.", "required": false, "type": "string", "enum": [ @@ -9093,7 +9130,7 @@ "x-ms-blob-content-length": { "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": { "type": "string", @@ -9119,7 +9156,7 @@ } }, "x-ms-pageable": { - "nextLinkName": "NextMarker" + "nextLinkName": "nextMarker" } } }, @@ -9176,14 +9213,14 @@ "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": true, + "required": false, "type": "string" }, { "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": true, + "required": false, "type": "string", "x-ms-client-name": "prevSnapshotUrl" }, @@ -9266,7 +9303,7 @@ "x-ms-blob-content-length": { "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": { "type": "string", @@ -9292,7 +9329,7 @@ } }, "x-ms-pageable": { - "nextLinkName": "NextMarker" + "nextLinkName": "nextMarker" } } }, @@ -9559,9 +9596,10 @@ "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": true, + "required": false, "type": "integer", "format": "int64", + "default": 0, "x-ms-client-name": "blobSequenceNumber" }, { @@ -10128,7 +10166,7 @@ "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": true, + "required": false, "type": "integer", "format": "int64", "x-ms-client-name": "maxSize" @@ -10137,7 +10175,7 @@ "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": true, + "required": false, "type": "integer", "format": "int64", "x-ms-client-name": "appendPosition" @@ -10231,8 +10269,7 @@ "description": "The date/time that the container was last modified." }, "x-ms-blob-append-offset": { - "type": "integer", - "format": "int64", + "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": { @@ -10412,7 +10449,7 @@ "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": true, + "required": false, "type": "integer", "format": "int64", "x-ms-client-name": "maxSize" @@ -10421,7 +10458,7 @@ "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": true, + "required": false, "type": "integer", "format": "int64", "x-ms-client-name": "appendPosition" @@ -10515,8 +10552,7 @@ "description": "The date/time that the container was last modified." }, "x-ms-blob-append-offset": { - "type": "integer", - "format": "int64", + "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": { @@ -10627,7 +10663,7 @@ "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": true, + "required": false, "type": "integer", "format": "int64", "x-ms-client-name": "appendPosition" @@ -10849,7 +10885,9 @@ "P80", "Hot", "Cool", - "Archive" + "Archive", + "Premium", + "Cold" ], "x-ms-enum": { "name": "AccessTier", @@ -10924,6 +10962,16 @@ "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." } ] }, @@ -11256,7 +11304,9 @@ "P80", "Hot", "Cool", - "Archive" + "Archive", + "Premium", + "Cold" ], "x-ms-enum": { "name": "AccessTier", @@ -11331,6 +11381,16 @@ "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." } ] }, @@ -12087,7 +12147,9 @@ "P80", "Hot", "Cool", - "Archive" + "Archive", + "Premium", + "Cold" ], "x-ms-enum": { "name": "AccessTier", @@ -12162,6 +12224,16 @@ "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." } ] }, @@ -12453,7 +12525,7 @@ "x-ms-blob-content-length": { "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": { "type": "string", @@ -12623,7 +12695,7 @@ "versions" ], "x-ms-enum": { - "name": "FilterBlobsIncludes", + "name": "FilterBlobsIncludeItem", "modelAsString": true, "values": [ { @@ -13054,7 +13126,9 @@ "P80", "Hot", "Cool", - "Archive" + "Archive", + "Premium", + "Cold" ], "x-ms-enum": { "name": "AccessTier", @@ -13129,6 +13203,16 @@ "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." } ] } @@ -13181,8 +13265,7 @@ "enum": [ "rehydrate-pending-to-hot", "rehydrate-pending-to-cool", - "rehydrate-pending-to-archive", - "rehydrate-pending-to-expired" + "rehydrate-pending-to-cold" ], "x-ms-enum": { "name": "ArchiveStatus", @@ -13199,14 +13282,9 @@ "description": "The archive status is rehydrating pending to cool." }, { - "name": "RehydratePendingToArchive", - "value": "rehydrate-pending-to-archive", + "name": "RehydratePendingToCold", + "value": "rehydrate-pending-to-cold", "description": "The archive status is rehydrating pending to archive." - }, - { - "name": "RehydratePendingToExpired", - "value": "rehydrate-pending-to-expired", - "description": "The archive status is rehydrating pending to expired." } ] } @@ -13444,12 +13522,8 @@ "description": "The metadata of the blob." }, "blobTags": { - "type": "array", - "description": "The tags of the blob.", - "items": { - "$ref": "#/definitions/BlobTag" - }, - "x-ms-identifiers": [] + "$ref": "#/definitions/BlobTags", + "description": "The tags of the blob." }, "objectReplicationMetadata": { "$ref": "#/definitions/ObjectReplicationMetadata", @@ -13476,9 +13550,6 @@ "description": "Whether the blob metadata is encrypted." } }, - "required": [ - "encrypted" - ], "additionalProperties": { "type": "string" } @@ -13551,6 +13622,7 @@ }, "contentMd5": { "type": "string", + "format": "byte", "description": "The content MD5 of the blob." }, "contentDisposition": { @@ -13641,6 +13713,10 @@ "$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." @@ -13812,12 +13888,7 @@ "type": "string" } } - }, - "required": [ - "committed", - "uncommitted", - "latest" - ] + } }, "ClearRange": { "type": "object", @@ -13872,15 +13943,6 @@ "ContainerMetadata": { "type": "object", "description": "The metadata of a container.", - "properties": { - "encrypted": { - "type": "string", - "description": "Whether the metadata is encrypted." - } - }, - "required": [ - "encrypted" - ], "additionalProperties": { "type": "string" } @@ -13889,11 +13951,6 @@ "type": "object", "description": "The properties of a container.", "properties": { - "creationTime": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date-time the container was created in RFC1123 format." - }, "lastModified": { "type": "string", "format": "date-time-rfc1123", @@ -13923,6 +13980,10 @@ "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." @@ -13931,10 +13992,6 @@ "type": "boolean", "description": "Whether to prevent encryption scope override." }, - "hasLegalHold": { - "type": "boolean", - "description": "The has legal hold status of the container." - }, "deletedTime": { "type": "string", "format": "date-time-rfc1123", @@ -13993,7 +14050,7 @@ }, "CorsRule": { "type": "object", - "description": "The CORS rule.", + "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", @@ -14014,7 +14071,8 @@ "maxAgeInSeconds": { "type": "integer", "format": "int32", - "description": "The maximum age in seconds." + "description": "The maximum age in seconds.", + "minimum": 0 } }, "required": [ @@ -14136,7 +14194,7 @@ "blobs" ] }, - "FilterBlobsIncludes": { + "FilterBlobsIncludeItem": { "type": "string", "description": "The filter blobs includes.", "enum": [ @@ -14144,7 +14202,7 @@ "versions" ], "x-ms-enum": { - "name": "FilterBlobsIncludes", + "name": "FilterBlobsIncludeItem", "modelAsString": true, "values": [ { @@ -14162,15 +14220,16 @@ }, "GeoReplication": { "type": "object", - "description": "The geo replication status.", + "description": "Geo-Replication information for the Secondary Storage Service", "properties": { "status": { - "$ref": "#/definitions/GeoReplicationStatus", - "description": "The georeplication status." + "$ref": "#/definitions/GeoReplicationStatusType", + "description": "The status of the secondary location" }, "lastSyncTime": { "type": "string", - "description": "The last sync time." + "format": "date-time-rfc1123", + "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." } }, "required": [ @@ -14178,7 +14237,7 @@ "lastSyncTime" ] }, - "GeoReplicationStatus": { + "GeoReplicationStatusType": { "type": "string", "description": "The geo replication status.", "enum": [ @@ -14187,7 +14246,7 @@ "unavailable" ], "x-ms-enum": { - "name": "GeoReplicationStatus", + "name": "GeoReplicationStatusType", "modelAsString": true, "values": [ { @@ -14355,7 +14414,7 @@ "$ref": "#/definitions/BlobFlatListSegment", "description": "The blob segment." }, - "NextMarker": { + "nextMarker": { "type": "string", "description": "The next marker of the blobs." } @@ -14553,7 +14612,7 @@ }, "Logging": { "type": "object", - "description": "The logging properties.", + "description": "Azure Analytics Logging settings.", "properties": { "version": { "type": "string", @@ -14603,57 +14662,12 @@ "retentionPolicy": { "$ref": "#/definitions/RetentionPolicy", "description": "The retention policy of the metrics." - }, - "serviceProperties": { - "$ref": "#/definitions/MetricsServiceProperties", - "description": "The service properties of the metrics." } }, "required": [ "enabled" ] }, - "MetricsProperties": { - "type": "object", - "description": "The metrics properties.", - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether to include API in the metrics." - }, - "version": { - "type": "string", - "description": "The version of the metrics properties." - }, - "retentionPolicy": { - "$ref": "#/definitions/RetentionPolicy", - "description": "The retention policy of the metrics." - } - }, - "required": [ - "enabled", - "version", - "retentionPolicy" - ] - }, - "MetricsServiceProperties": { - "type": "object", - "description": "The metrics service properties.", - "properties": { - "hourMetrics": { - "$ref": "#/definitions/MetricsProperties", - "description": "The hour metrics properties." - }, - "minuteMetrics": { - "$ref": "#/definitions/MetricsProperties", - "description": "The minute metrics properties." - } - }, - "required": [ - "hourMetrics", - "minuteMetrics" - ] - }, "ObjectReplicationMetadata": { "type": "object", "description": "The object replication metadata.", @@ -14681,15 +14695,11 @@ }, "x-ms-identifiers": [] }, - "NextMarker": { + "nextMarker": { "type": "string", "description": "The next marker." } - }, - "required": [ - "pageRange", - "clearRange" - ] + } }, "PageRange": { "type": "object", @@ -14838,7 +14848,7 @@ "$ref": "#/definitions/ArrowConfiguration", "description": "The Apache Arrow configuration." }, - "parquetConfiguration": { + "parquetTextConfiguration": { "$ref": "#/definitions/ParquetConfiguration", "description": "The Parquet configuration." } @@ -14852,7 +14862,7 @@ "description": "Groups the set of query request settings.", "properties": { "queryType": { - "$ref": "#/definitions/QueryRequestTypeSqlOnly", + "$ref": "#/definitions/QueryRequestType", "description": "Required. The type of the provided query expression." }, "expression": { @@ -14873,14 +14883,14 @@ "expression" ] }, - "QueryRequestTypeSqlOnly": { + "QueryRequestType": { "type": "string", "description": "The query request, note only SQL supported", "enum": [ "SQL" ], "x-ms-enum": { - "name": "QueryRequestTypeSqlOnly", + "name": "QueryRequestType", "modelAsString": true, "values": [ { @@ -14942,7 +14952,7 @@ }, "RehydratePriority": { "type": "string", - "description": "The rehydrate priority.", + "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" @@ -14975,7 +14985,8 @@ "days": { "type": "integer", "format": "int32", - "description": "The number of days to retain the logs." + "description": "The number of days to retain the logs.", + "minimum": 1 }, "allowPermanentDelete": { "type": "boolean", @@ -14983,9 +14994,7 @@ } }, "required": [ - "enabled", - "days", - "allowPermanentDelete" + "enabled" ] }, "SequenceNumberActionType": { @@ -15036,6 +15045,13 @@ "accessPolicy" ] }, + "SignedIdentifiers": { + "type": "array", + "description": "Represents an array of signed identifiers", + "items": { + "$ref": "#/definitions/SignedIdentifier" + } + }, "SkuName": { "type": "string", "description": "The SKU types", @@ -15080,17 +15096,28 @@ }, "StaticWebsite": { "type": "object", - "description": "The static website properties.", + "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." }, - "errorDocument": { + "errorDocument404Path": { "type": "string", "description": "The error document." + }, + "defaultIndexDocumentPath": { + "type": "string", + "description": "Absolute path of the default index page" } - } + }, + "required": [ + "enabled" + ] }, "StorageError": { "type": "object", @@ -15100,10 +15127,7 @@ "type": "string", "description": "The error message." } - }, - "required": [ - "Message" - ] + } }, "StorageServiceProperties": { "type": "object", @@ -15151,10 +15175,7 @@ "$ref": "#/definitions/GeoReplication", "description": "The geo replication stats." } - }, - "required": [ - "geoReplication" - ] + } }, "UserDelegationKey": { "type": "object", From 5e27b4059c10dc49f0c16acb1ccfcc1766458c74 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 5 Nov 2024 10:22:10 -0800 Subject: [PATCH 081/129] accuracy updates --- .../storage/Microsoft.BlobStorage/models.tsp | 340 ++----- .../storage/Microsoft.BlobStorage/routes.tsp | 349 ++++--- .../stable/2021-12-02/blob.json | 915 +++++++++++------- 3 files changed, 874 insertions(+), 730 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 5631d98a2e76..7a614563394f 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -1054,13 +1054,6 @@ union QueryType { /// Parameters -/** 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 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. */ @@ -1150,31 +1143,6 @@ alias ExpiryTimeHeader = { expiryTime?: string; }; -// TODO - left off here - -/** The access tier response header. */ -alias AccessTierResponseHeader = { - /** 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. */ - @header("x-ms-access-tier") - accessTier: AccessTier; -}; - -/** The destination snapshot response header. */ -alias DestinationSnapshotResponseHeader = { - /** 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. */ - @clientName("DestinationSnapshot") - @header("x-ms-copy-destination-snapshot") - copyDestinationSnapshot: string; -}; - -/** The is incremental copy response header. */ -alias IsIncrementalCopyResponseHeader = { - /** Included if the blob is incremental copy blob. */ - @clientName("IsIncrementalCopy") - @header("x-ms-incremental-copy") - incrementalCopy: boolean; -}; - /** 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. */ @@ -1182,94 +1150,85 @@ alias ImmutabilityPolicyExpiresOnResponseHeader = { @clientName("ImmutabilityPolicyExpiresOn") @encode("date-time-rfc1123") @header("x-ms-immutability-policy-until-date") - immutabilityPolicyUntilDate: utcDateTime; + immutabilityPolicyUntilDate?: string; }; /** 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" - @clientName("LastAccessed") @encode("date-time-rfc1123") @header("x-ms-last-access-time") - lastAccessTime: utcDateTime; + lastAccessed?: string; }; /** The is sealed response header. */ alias IsSealedResponseHeader = { /** If this blob has been sealed */ - @clientName("IsSealed") @header("x-ms-blob-sealed") - blobSealed: boolean; + isSealed?: boolean; }; /** The tag count response header. */ alias TagCountResponseHeader = { /** The number of tags associated with the blob */ @header("x-ms-tag-count") - tagCount: int64; + 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; + blobCommittedBlockCount?: int32; }; /** The accept ranges response header. */ alias AcceptRangesResponseHeader = { /** Indicates that the service supports requests for partial blob content. */ - @header("Accept-Ranges") acceptRanges: string; + @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; + isCurrentVersion?: boolean; }; /** The lease status response header. */ alias LeaseStatusResponseHeader = { /** The lease status of the blob. */ @header("x-ms-lease-status") - leaseStatus: LeaseStatus; + leaseStatus?: LeaseStatus; }; /** The lease state response header. */ alias LeaseStateResponseHeader = { /** Lease state of the blob. */ @header("x-ms-lease-state") - leaseState: LeaseState; -}; - -/** The lease duration response header. */ -alias LeaseDurationResponseHeader = { - /** When a blob is leased, specifies whether the lease is of infinite or fixed duration. */ - @header("x-ms-lease-duration") - leaseDuration: LeaseDuration; + 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; + 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; + 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; + copyStatusDescription?: string; }; /** The copy completion time response header. */ @@ -1278,35 +1237,21 @@ alias CopyCompletionTimeResponseHeader = { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @header("x-ms-copy-completion-time") - copyCompletionTime: utcDateTime; + copyCompletionTime?: string; }; /** The blob type response header. */ alias BlobTypeResponseHeader = { /** The type of the blob. */ @header("x-ms-blob-type") - blobType: BlobType; + 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 range required put page from URL parameter. */ -alias RangeRequiredPutPageFromUrlParameter = { - /** 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; -}; - -/** The source range required put page from URL parameter. */ -alias SourceRangeRequiredPutPageFromUrlParameter = { - /** 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; + objectReplicationPolicyId?: string; }; /** The if seuqnce number equal to parameter. */ @@ -1330,14 +1275,6 @@ alias IfSequenceNumberLessThanOrEqualToParameter = { ifSequenceNumberLessThanOrEqualTo?: int64; }; -/** The block list type parameter. */ -alias BlockListTypeParameter = { - /** Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together. */ - @query - @clientName("listType") - blocklisttype: BlockListType; -}; - /** The block list types. */ union BlockListType { /** The list of committed blocks. */ @@ -1357,20 +1294,20 @@ union BlockListType { 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?: string; + sourceContentCrc64?: bytes; }; /** The source range parameter. */ alias SourceRangeParameter = { /** Bytes of source data in the specified range. */ @header("x-ms-source-range") - sourceRange: string; + sourceRange?: string; }; /** The source URL parameter. */ alias SourceUrlParameter = { /** Specify a URL to the copy source. */ - @header("x-ms-source-url") + @header("x-ms-copy-source") sourceUrl: string; }; @@ -1382,18 +1319,11 @@ alias BlockIdParameter = { blockid: string; }; -/** The is hierarchical namespace enabled response header. */ -alias IsHierarchicalNamespaceEnabledResponseHeader = { - /** Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled. */ - @header("x-ms-is-hns-enabled") - isHierarchicalNamespaceEnabled: boolean; -}; - /** The account kind response header. */ alias AccountKindResponseHeader = { /** Identifies the account kind */ @header("x-ms-account-kind") - accountKind: AccountKind; + accountKind?: AccountKind; }; /** The SKU name response header. */ @@ -1403,20 +1333,6 @@ alias SkuNameResponseHeader = { skuName?: SkuName; }; -/** The access tier required parameter. */ -alias AccessTierRequiredParameter = { - /** Indicates the tier to be set on the blob. */ - @header("x-ms-access-tier") - accessTier: AccessTier; -}; - -/** The copy ID parameter. */ -alias CopyIdParameter = { - /** The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation. */ - @header("x-ms-copy-id") - copyId: string; -}; - /** 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. */ @@ -1435,7 +1351,7 @@ alias CopyStatusResponseHeader = { 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; + copyId?: string; }; /** The source if unmodified since parameter. */ @@ -1444,29 +1360,27 @@ alias SourceIfUnmodifiedSinceParameter = { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @header("x-ms-source-if-unmodified-since") - sourceIfUnmodifiedSince?: utcDateTime; -}; - -/** The snapshot response header. */ -alias SnapshotResponseHeader = { - /** 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; + sourceIfUnmodifiedSince?: string; }; /** The lease time response header. */ alias LeaseTimeResponseHeader = { /** Approximate time remaining in the lease period, in seconds. */ @header("x-ms-lease-time") - leaseTime: int32; + 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. */ - @clientName("breakPeriod") @header("x-ms-lease-break-period") - leaseBreakPeriod?: int32; + 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. */ @@ -1480,21 +1394,7 @@ alias LeaseIdRequiredParameter = { alias LeaseIdResponseHeader = { /** Uniquely identifies a blobs' lease */ @header("x-ms-lease-id") - leaseId: 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 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; + leaseId?: string; }; /** The is server encrypted response header. */ @@ -1533,7 +1433,7 @@ alias ImmutabilityPolicyExpiryResponseHeader = { @encode("date-time-rfc1123") @clientName("ImmutabilityPolicyExpiry") @header("x-ms-immutability-policy-until-date") - immutabilityPolicyUntilDate: utcDateTime; + immutabilityPolicyUntilDate: string; }; /** The blob sequence number response header. */ @@ -1623,7 +1523,7 @@ alias CreationTimeResponseHeader = { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @header("x-ms-creation-time") - creationTime: utcDateTime; + creationTime: string; }; /** The last modified response header */ @@ -1632,7 +1532,7 @@ alias LastModifiedResponseHeader = { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @header("Last-Modified") - lastModified: utcDateTime; + lastModified: string; }; /** The Date response header */ @@ -1641,7 +1541,7 @@ alias DateResponseHeader = { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @header("Date") - date: utcDateTime; + date: string; }; /** The ETag response header */ @@ -1724,7 +1624,7 @@ alias SourceIfModifiedSinceParameter = { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @header("x-ms-source-if-modified-since") @encode("date-time-rfc1123") - sourceIfModifiedSince?: utcDateTime; + sourceIfModifiedSince?: string; }; /** The content CRC64 parameter. */ @@ -1736,11 +1636,10 @@ alias ContentCrc64Parameter = { }; /** The access tier optional parameter. */ -alias AccessTierOptionalParameter = { - /** Optional. The tier to be set on the blob. */ - @clientName("tier") +alias AccessTierOptional = { + /** The tier to be set on the blob. */ @header("x-ms-access-tier") - accessTier?: AccessTier; + tier?: AccessTier; }; /** The content MD5 parameter. */ @@ -1796,6 +1695,13 @@ alias EncryptionScopeParameter = { 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. */ @@ -1814,7 +1720,14 @@ alias BlobCacheControlParameter = { 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?: string; + 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. */ @@ -1838,13 +1751,6 @@ alias BlobContentTypeParameter = { blobContentType?: string; }; -/** The optional premium page blob access tier parameter. */ -model PremiumPageBlobAccessTierOptional { - /** Optional. Indicates the tier to be set on the page blob. */ - @header("x-ms-access-tier") - accessTier?: PremiumPageBlobAccessTier; -} - /** The premium page blob access tier types. */ union PremiumPageBlobAccessTier { /** The premium page blob access tier is P4. */ @@ -1885,7 +1791,7 @@ union PremiumPageBlobAccessTier { } /** The blob name parameter. */ -alias BlobNameParameter = { +alias BlobPathParameter = { /** The name of the blob. */ @minLength(1) @maxLength(1024) @@ -1894,14 +1800,6 @@ alias BlobNameParameter = { blob: string; }; -/** The blob delete type parameter. */ -alias BlobDeleteTypeParameter = { - /** Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled. */ - @query - @clientName("blobDeleteType") - deletetype?: DeleteSnapshotsOptionType; -}; - /** The type of blob deletions. */ union BlobDeleteType { /** Permanently delete the blob. */ @@ -1911,17 +1809,10 @@ union BlobDeleteType { string, } -/** The delete snapshot parameter. */ -alias DeleteSnapshotsParameter = { - /** 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; -}; - /** The delete snapshots option type. */ union DeleteSnapshotsOptionType { - /** The delete snapshots include option is not specified. */ - Nonne: "none", + /** The delete snapshots include option is only. */ + Only: "only", /** The delete snapshots include option is include. */ Include: "include", @@ -1934,9 +1825,18 @@ union DeleteSnapshotsOptionType { 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?: string; + 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. */ @@ -1944,6 +1844,13 @@ alias EncryptionKeySha256Parameter = { 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. */ @@ -1972,18 +1879,6 @@ alias IfNoneMatchParameter = { ifNoneMatch?: string; }; -/** The get range content CRC64 parameter. */ -alias GetRangeContentCrc64Parameter = { - /** 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") rangeContentCrc64?: boolean; -}; - -/** The get range content MD5 parameter. */ -alias GetRangeContentMd5Parameter = { - /** Optional. When this header is set to true and specified together with the Range header, 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") rangeContentMd5?: boolean; -}; - /** The range parameter. */ alias RangeParameter = { /** Return only the bytes of the blob in the specified range. */ @@ -2013,6 +1908,8 @@ model BlobName { @Xml.name("Encoded") encoded: boolean; + // FIXME: does this need the unwrapped decorator around it? Swagger specified this property as x-ms-text + // Related issue: https://github.com/microsoft/typespec/issues/2970 /** The blob name. */ @Xml.unwrapped content: string; } @@ -2030,7 +1927,7 @@ model BlobHierarchyListSegment { @Xml.name("BlobItems") blobItems: BlobItemInternal[]; /** The blob prefixes. */ - @Xml.name("BlobPrefixes") blobPrefixes: BlobPrefix[]; + @Xml.name("BlobPrefixes") blobPrefixes?: BlobPrefix[]; } /** An enumeration of blobs */ @@ -2064,29 +1961,22 @@ model ListBlobsHierarchySegmentResponse { @Xml.name("Segment") segment: BlobHierarchyListSegment; /** The next marker of the blobs. */ - #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API. The casing is correct." @nextLink @Xml.name("NextMarker") - NextMarker?: string; + nextMarker?: string; } -/** The delimiter parameter. */ -alias DelimiterParameter = { - /** 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; -}; - /** The list blob includes parameter. */ alias ListBlobsIncludeParameter = { /** Include this parameter to specify one or more datasets to include in the response. */ @query - include?: ListBlobsIncludes[]; + include?: ListBlobsIncludeItem[]; }; /** The list blob includes parameter values. */ -union ListBlobsIncludes { +union ListBlobsIncludeItem { /** The include copies. */ - Copies: "copies", + Copy: "copy", /** The include deleted blobs. */ Deleted: "deleted", @@ -2120,48 +2010,21 @@ union ListBlobsIncludes { } /** The lease duration parameter. */ -alias LeaseDurationParameter = { +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. */ - @clientName("duration") @header("x-ms-lease-duration") - leaseDuration: int32; -}; - -/** The source lease ID header parameter. */ -alias SourceLeaseIdParameter = { - /** 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; -}; - -/** The source container name header parameter. */ -alias SourceContainerNameParameter = { - /** Required. Specifies the name of the container to rename. */ - @header("x-ms-source-container-name") - sourceContainerName: string; -}; - -/** The deleted container name header. */ -alias DeletedContainerNameParameter = { - /** Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore. */ - @header("x-ms-deleted-container-name") - deletedContainerName?: string; -}; - -/** The deleted container version header. */ -alias DeletedContainerVersionParameter = { - /** Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore. */ - @header("x-ms-deleted-container-version") - deletedContainerVersion?: string; + duration?: int32; }; /** The container name path parameter */ -alias ContainerNameParameter = { +alias ContainerNamePathParameter = { /** The name of the container. */ @path containerName: string; }; +// TODO: Figure out how to better represent this +/** 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. */ alias MetadataHeaders = { /** The metadata headers. */ @header("x-ms-meta") metadata?: Record; @@ -2173,7 +2036,7 @@ alias IfUnmodifiedSinceParameter = { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @header("If-Unmodified-Since") - ifUnmodifiedSince?: utcDateTime; + ifUnmodifiedSince?: string; }; /** The If-Modified-Since header. */ @@ -2182,33 +2045,9 @@ alias IfModifiedSinceParameter = { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @encode("date-time-rfc1123") @header("If-Modified-Since") - ifModifiedSince?: utcDateTime; + ifModifiedSince?: string; }; -/** 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 default encryption scope parameter. */ -alias DefaultEncryptionScopeParameter = { - /** 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; -}; - -// TODO: Figure out how to better represent this -/** 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. */ -// @header("x-ms-meta") meta?: string; -#suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" -alias MetadataParameter = Record; - -// TODO: Figure out how to better represent this -/** 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. */ -// @header("x-ms-meta") meta?: string; -#suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" -alias MetadataResponseHeader = Record; - /** The filter blobs include parameter. */ alias FilterBlobsIncludeParameter = { /** Include this parameter to specify one or more datasets to include in the response. */ @@ -2232,7 +2071,9 @@ alias ContentLengthParameter = { /** 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 maxresults?: int32; + @query + @minValue(1) + maxresults?: int32; }; /** The marker parameter. */ @@ -2251,6 +2092,7 @@ alias PrefixParameter = { 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; }; diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 7f6aaed67cfd..7dde2b56daa3 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -10,6 +10,7 @@ using TypeSpec.Http; using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; +using Azure.ClientGenerator.Core; /** 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." @@ -112,7 +113,10 @@ interface Service { ...DateResponseHeader; ...SkuNameResponseHeader; ...AccountKindResponseHeader; - ...IsHierarchicalNamespaceEnabledResponseHeader; + + /** Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled. */ + @header("x-ms-is-hns-enabled") + isHierarchicalNamespaceEnabled?: boolean; } >; @@ -174,7 +178,7 @@ interface Container { @route("/{containerName}?restype=container") create is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; ...TimeoutParameter; // TODO should we define metadata headers like: @@ -182,7 +186,9 @@ interface Container { ...BlobPublicAccess; - ...DefaultEncryptionScopeParameter; + /** 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; }, { @@ -200,7 +206,7 @@ interface Container { @route("/{containerName}?restype=container") getProperties is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; ...TimeoutParameter; ...LeaseIdOptionalParameter; }, @@ -212,7 +218,7 @@ interface Container { ...LastModifiedResponseHeader; ...DateResponseHeader; - ...LeaseDurationResponseHeader; + ...LeaseDurationHeader; ...LeaseStateResponseHeader; ...LeaseStatusResponseHeader; ...BlobPublicAccess; @@ -244,7 +250,7 @@ interface Container { @route("/{containerName}?restype=container") delete is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; ...TimeoutParameter; ...LeaseIdOptionalParameter; ...IfModifiedSinceParameter; @@ -264,7 +270,7 @@ interface Container { @route("/{containerName}?restype=container&comp=metadata") setMetadata is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; ...TimeoutParameter; ...LeaseIdOptionalParameter; @@ -285,7 +291,7 @@ interface Container { @route("/{containerName}?restype=container&comp=acl") getAccessPolicy is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; ...TimeoutParameter; ...LeaseIdOptionalParameter; }, @@ -306,7 +312,7 @@ interface Container { @route("/{containerName}?restype=container&comp=acl") setAccessPolicy is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; /** The access control list for the container. */ #suppress "@azure-tools/typespec-azure-core/request-body-problem" "Existing API" @@ -334,9 +340,16 @@ interface Container { @route("/{containerName}?restype=container&comp=undelete") restore is StorageOperation< { - ...ContainerNameParameter; - ...DeletedContainerNameParameter; - ...DeletedContainerVersionParameter; + ...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; }, { @@ -353,9 +366,16 @@ interface Container { @route("/{containerName}?restype=container&comp=rename") rename is StorageOperation< { - ...ContainerNameParameter; - ...SourceContainerNameParameter; - ...SourceLeaseIdParameter; + ...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 @@ -367,7 +387,7 @@ interface Container { @post @route("/{containerName}?restype=container&comp=batch") submitBatch( - ...ContainerNameParameter, + ...ContainerNamePathParameter, /** The batch request content */ ...BodyParameter, @@ -405,7 +425,7 @@ interface Container { @route("/{containerName}?restype=container&comp=blobs") filterBlobs is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; ...TimeoutParameter; ...FilterBlobsWhereParameter; ...MarkerParameter; @@ -423,8 +443,8 @@ interface Container { @route("/{containerName}?comp=lease&restype=container&acquire") acquireLease is StorageOperation< { - ...ContainerNameParameter; - ...LeaseDurationParameter; + ...ContainerNamePathParameter; + ...LeaseDurationHeader; ...TimeoutParameter; ...ProposedLeaseIdOptionalParameter; ...IfModifiedSinceParameter; @@ -447,7 +467,7 @@ interface Container { @route("/{containerName}?comp=lease&restype=container&release") releaseLease is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; ...LeaseIdRequiredParameter; ...TimeoutParameter; ...IfModifiedSinceParameter; @@ -468,7 +488,7 @@ interface Container { @route("/{containerName}?comp=lease&restype=container&renew") renewLease is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; ...LeaseIdRequiredParameter; ...TimeoutParameter; ...IfModifiedSinceParameter; @@ -489,7 +509,7 @@ interface Container { @route("/{containerName}?comp=lease&restype=container&break") breakLease is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; ...TimeoutParameter; ...IfModifiedSinceParameter; ...IfUnmodifiedSinceParameter; @@ -513,7 +533,7 @@ interface Container { @route("/{containerName}?comp=lease&restype=container&change") changeLease is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; ...LeaseIdRequiredParameter; ...ProposedLeaseIdRequiredParameter; ...TimeoutParameter; @@ -535,7 +555,7 @@ interface Container { @route("/{containerName}?restype=container&comp=list&flat") listBlobFlatSegment is StorageOperation< { - ...ContainerNameParameter; + ...ContainerNamePathParameter; ...PrefixParameter; ...MarkerParameter; ...MaxResultsParameter; @@ -552,8 +572,11 @@ interface Container { @route("/{containerName}?restype=container&comp=list&hierarchy") listBlobHierarchySegment is StorageOperation< { - ...ContainerNameParameter; - ...DelimiterParameter; + ...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; @@ -569,7 +592,7 @@ interface Container { @get @route("/{containerName}?restype=account&comp=properties") getAccountInfo is StorageOperation< - ContainerNameParameter, + ContainerNamePathParameter, { ...DateResponseHeader; ...SkuNameResponseHeader; @@ -592,15 +615,22 @@ interface Blob { version: string, ...ClientRequestIdHeader, - ...ContainerNameParameter, - ...BlobNameParameter, + ...ContainerNamePathParameter, + ...BlobPathParameter, ...SnapshotParameter, ...VersionIdParameter, ...TimeoutParameter, ...RangeParameter, ...LeaseIdOptionalParameter, - ...GetRangeContentMd5Parameter, - ...GetRangeContentCrc64Parameter, + + /** 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, + ...EncryptionKeyParameter, ...EncryptionKeySha256Parameter, ...EncryptionAlgorithmParameter, @@ -640,7 +670,7 @@ interface Blob { ...CopyProgressResponseHeader; ...CopyStatusResponseHeader; ...CopySourceResponseHeader; - ...LeaseDurationResponseHeader; + ...LeaseDurationHeader; ...LeaseStateResponseHeader; ...LeaseStatusResponseHeader; ...VersionIdResponseHeader; @@ -696,7 +726,7 @@ interface Blob { ...CopyProgressResponseHeader; ...CopyStatusResponseHeader; ...CopySourceResponseHeader; - ...LeaseDurationResponseHeader; + ...LeaseDurationHeader; ...LeaseStateResponseHeader; ...LeaseStatusResponseHeader; ...VersionIdResponseHeader; @@ -723,8 +753,8 @@ interface Blob { @route("/{containerName}/{blob}") getProperties is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...SnapshotParameter; ...VersionIdParameter; ...TimeoutParameter; @@ -750,9 +780,16 @@ interface Blob { ...CopyProgressResponseHeader; ...CopyStatusResponseHeader; ...CopySourceResponseHeader; - ...IsIncrementalCopyResponseHeader; - ...DestinationSnapshotResponseHeader; - ...LeaseDurationResponseHeader; + + /** 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; @@ -769,7 +806,7 @@ interface Blob { ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; - ...AccessTierResponseHeader; + ...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") @@ -806,16 +843,24 @@ interface Blob { @route("/{containerName}/{blob}") delete is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...SnapshotParameter; ...VersionIdParameter; ...TimeoutParameter; ...LeaseIdOptionalParameter; - ...DeleteSnapshotsParameter; + + /** 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; - ...BlobDeleteTypeParameter; + + /** 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; @@ -830,8 +875,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=undelete") undelete is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; }, DateResponseHeader @@ -844,8 +889,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=expiry") setExpiry is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...BlobExpiryOptionsParameter; ...ExpiryTimeHeader; @@ -865,8 +910,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=properties&SetHTTPHeaders") setHttpHeaders is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...BlobCacheControlParameter; ...BlobContentTypeParameter; @@ -894,8 +939,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=immutabilityPolicies") setImmutabilityPolicy is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...IfUnmodifiedSinceParameter; ...ImmutabilityPolicyExpiryParameter; @@ -915,8 +960,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=immutabilityPolicies") deleteImmutabilityPolicy is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; }, DateResponseHeader @@ -930,8 +975,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=legalhold") setLegalHold is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...LegalHoldRequiredParameter; }, @@ -949,8 +994,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=metadata") setMetadata is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; // TODO: Metadata ...MetadataParameter; @@ -982,10 +1027,10 @@ interface Blob { @route("/{containerName}/{blob}?comp=lease&acquire") acquireLease is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; - ...LeaseDurationParameter; + ...LeaseDurationHeader; ...ProposedLeaseIdOptionalParameter; ...ConditionalRequestHeaders; ...IfTagsParameter; @@ -1007,8 +1052,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=lease&release") releaseLease is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...LeaseIdRequiredParameter; ...ConditionalRequestHeaders; @@ -1029,8 +1074,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=lease&renew") renewLease is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...LeaseIdRequiredParameter; ...ConditionalRequestHeaders; @@ -1052,8 +1097,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=lease&change") changeLease is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...LeaseIdRequiredParameter; ...ProposedLeaseIdOptionalParameter; @@ -1075,8 +1120,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=lease&break") breakLease is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...LeaseBreakPeriodParameter; ...ConditionalRequestHeaders; @@ -1098,8 +1143,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=snapshot") createSnapshot is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; // TODO: ...MetadataParameter; @@ -1115,7 +1160,11 @@ interface Blob { }, { @statusCode statusCode: 201; - ...SnapshotResponseHeader; + + /** 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; @@ -1131,12 +1180,12 @@ interface Blob { @route("/{containerName}/{blob}?comp=copy") startCopyFromUrl is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; // TODO: ...MetadataParameter; - ...AccessTierOptionalParameter; + ...AccessTierOptional; ...RehydratePriorityHeader; ...SourceIfModifiedSinceParameter; @@ -1176,12 +1225,12 @@ interface Blob { @route("/{containerName}/{blob}?comp=copy&sync") copyFromUrl is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; // TODO: ...MetadataParameter; - ...AccessTierOptionalParameter; + ...AccessTierOptional; ...SourceIfModifiedSinceParameter; ...SourceIfUnmodifiedSinceParameter; @@ -1220,10 +1269,15 @@ interface Blob { @route("/{containerName}/{blob}?comp=copy©id") abortCopyFromUrl is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; - ...CopyIdParameter; + + /** The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation. */ + @clientName("copyId") + @query + copyid: string; + ...LeaseIdOptionalParameter; }, { @@ -1240,12 +1294,16 @@ interface Blob { @route("/{containerName}/{blob}?comp=tier") setTier is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...SnapshotParameter; ...VersionIdParameter; ...TimeoutParameter; - ...AccessTierRequiredParameter; + + /** Indicates the tier to be set on the blob. */ + @header("x-ms-access-tier") + tier: AccessTier; + ...RehydratePriorityHeader; ...LeaseIdOptionalParameter; ...IfTagsParameter; @@ -1263,8 +1321,8 @@ interface Blob { @route("/{containerName}/{blob}?restype=account&comp=properties") getAccountInfo is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; }, { ...DateResponseHeader; @@ -1280,8 +1338,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=query") query is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; /** The query request */ @body @@ -1321,7 +1379,7 @@ interface Blob { ...CopyProgressResponseHeader; ...CopySourceResponseHeader; ...CopyStatusResponseHeader; - ...LeaseDurationResponseHeader; + ...LeaseDurationHeader; ...LeaseStateResponseHeader; ...LeaseStatusResponseHeader; ...AcceptRangesResponseHeader; @@ -1341,8 +1399,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=tags") getTags is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...SnapshotParameter; ...VersionIdParameter; @@ -1358,8 +1416,8 @@ interface Blob { @route("/{containerName}/{blob}?comp=tags") setTags is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...VersionIdParameter; ...ContentMd5Parameter; @@ -1388,12 +1446,16 @@ interface PageBlob { create is StorageOperation< { // TODO: Metadata - ...ContainerNameParameter; + ...ContainerNamePathParameter; - ...BlobNameParameter; + ...BlobPathParameter; ...TimeoutParameter; ...ContentLengthParameter; - ...PremiumPageBlobAccessTierOptional; + + /** Optional. Indicates the tier to be set on the page blob. */ + @header("x-ms-access-tier") + tier?: PremiumPageBlobAccessTier; + ...BlobContentTypeParameter; ...BlobContentEncodingParameter; ...BlobContentLanguageParameter; @@ -1437,8 +1499,8 @@ interface PageBlob { @route("/{containerName}/{blob}?comp=page&update") uploadPages is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; /** The data to upload. */ ...BodyParameter; @@ -1482,8 +1544,8 @@ interface PageBlob { @route("/{containerName}/{blob}?comp=page&clear") clearPages is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...ContentLengthParameter; ...TimeoutParameter; ...RangeParameter; @@ -1517,15 +1579,23 @@ interface PageBlob { @route("/{containerName}/{blob}?comp=page&update&fromUrl") uploadPagesFromUrl is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...SourceUrlParameter; - ...SourceRangeRequiredPutPageFromUrlParameter; + + /** 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; - ...RangeRequiredPutPageFromUrlParameter; + + /** 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; @@ -1563,8 +1633,8 @@ interface PageBlob { @route("/{containerName}/{blob}?comp=pagelist") getPageRanges is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...SnapshotParameter; ...TimeoutParameter; ...RangeParameter; @@ -1588,8 +1658,8 @@ interface PageBlob { @route("/{containerName}/{blob}?comp=pagelist&diff") getPageRangesDiff is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...SnapshotParameter; ...TimeoutParameter; @@ -1624,8 +1694,8 @@ interface PageBlob { @route("/{containerName}/{blob}?comp=properties&Resize") resize is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...LeaseIdOptionalParameter; ...EncryptionKeyParameter; @@ -1652,8 +1722,8 @@ interface PageBlob { @route("/{containerName}/{blob}?comp=properties&UpdateSequenceNumber") updateSequenceNumber is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...LeaseIdOptionalParameter; ...ConditionalRequestHeaders; @@ -1676,8 +1746,8 @@ interface PageBlob { @route("/{containerName}/{blob}?comp=incrementalcopy") copyIncremental is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...ConditionalRequestHeaders; ...IfTagsParameter; @@ -1704,9 +1774,9 @@ interface AppendBlob { create is StorageOperation< { // TODO: Metadata - ...ContainerNameParameter; + ...ContainerNamePathParameter; - ...BlobNameParameter; + ...BlobPathParameter; ...TimeoutParameter; ...ContentLengthParameter; ...BlobContentTypeParameter; @@ -1749,8 +1819,8 @@ interface AppendBlob { @route("/{containerName}/{blob}?comp=appendblock") appendBlock is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; /** The data to upload. */ ...BodyParameter; @@ -1792,8 +1862,8 @@ interface AppendBlob { @route("/{containerName}/{blob}?comp=appendblock&fromUrl") appendBlockFromUrl is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...SourceUrlParameter; ...SourceRangeParameter; ...SourceContentMd5Parameter; @@ -1839,8 +1909,8 @@ interface AppendBlob { @route("/{containerName}/{blob}?comp=seal") seal is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...LeaseIdOptionalParameter; ...ConditionalRequestHeaders; @@ -1868,9 +1938,9 @@ interface BlockBlob { { // TODO: Metadata - ...ContainerNameParameter; + ...ContainerNamePathParameter; - ...BlobNameParameter; + ...BlobPathParameter; ...BodyParameter; ...TimeoutParameter; ...ContentMd5Parameter; @@ -1886,7 +1956,7 @@ interface BlockBlob { ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...AccessTierOptionalParameter; + ...AccessTierOptional; ...ConditionalRequestHeaders; ...IfTagsParameter; ...BlobTagsHeaderParameter; @@ -1919,9 +1989,9 @@ interface BlockBlob { { // TODO: Metadata - ...ContainerNameParameter; + ...ContainerNamePathParameter; - ...BlobNameParameter; + ...BlobPathParameter; ...TimeoutParameter; ...ContentMd5Parameter; ...ContentLengthParameter; @@ -1936,7 +2006,7 @@ interface BlockBlob { ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...AccessTierOptionalParameter; + ...AccessTierOptional; ...ConditionalRequestHeaders; ...IfTagsParameter; ...SourceIfModifiedSinceParameter; @@ -1974,8 +2044,8 @@ interface BlockBlob { @route("/{containerName}/{blob}?comp=block") stageBlock is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...BlockIdParameter; ...ContentLengthParameter; ...ContentMd5Parameter; @@ -2008,8 +2078,8 @@ interface BlockBlob { @route("/{containerName}/{blob}?comp=block&fromURL") stageBlockFromUrl is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...BlockIdParameter; ...ContentLengthParameter; ...SourceUrlParameter; @@ -2047,8 +2117,8 @@ interface BlockBlob { @route("/{containerName}/{blob}?comp=blocklist") commitBlockList is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...TimeoutParameter; ...BlobCacheControlParameter; ...BlobContentTypeParameter; @@ -2066,7 +2136,7 @@ interface BlockBlob { ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; - ...AccessTierOptionalParameter; + ...AccessTierOptional; ...ConditionalRequestHeaders; ...IfTagsParameter; @@ -2098,10 +2168,15 @@ interface BlockBlob { @route("/{containerName}/{blob}?comp=blocklist") getBlockList is StorageOperation< { - ...ContainerNameParameter; - ...BlobNameParameter; + ...ContainerNamePathParameter; + ...BlobPathParameter; ...SnapshotParameter; - ...BlockListTypeParameter; + + /** 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; diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 970ddc555a3a..f13d9c6d0a3e 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -83,7 +83,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -141,7 +142,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -208,7 +210,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -285,7 +288,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -367,28 +371,9 @@ "description": "Indicates whether version level worm is enabled on a container" }, "x-ms-lease-duration": { - "type": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } + "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", @@ -500,7 +485,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-blob-public-access", @@ -625,7 +611,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-version", @@ -700,7 +687,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -824,7 +812,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-range", @@ -845,10 +834,10 @@ { "name": "x-ms-range-get-content-md5", "in": "header", - "description": "Optional. When this header is set to true and specified together with the Range header, the service returns the MD5 hash for the range, as long as the range is less than or equal to 4 MB in size.", + "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": "rangeContentMd5" + "x-ms-client-name": "rangeGetContentMd5" }, { "name": "x-ms-range-get-content-crc64", @@ -856,7 +845,7 @@ "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": "rangeContentCrc64" + "x-ms-client-name": "rangeGetContentCrc64" }, { "name": "x-ms-encryption-key", @@ -880,6 +869,20 @@ "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" }, { @@ -1126,28 +1129,9 @@ "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": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } + "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", @@ -1473,28 +1457,9 @@ "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": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } + "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", @@ -1637,7 +1602,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -1725,7 +1691,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -1757,6 +1724,20 @@ "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" }, { @@ -1966,28 +1947,9 @@ "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": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } + "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", @@ -2243,28 +2205,9 @@ "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": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } + "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", @@ -2405,7 +2348,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -2422,7 +2366,7 @@ "required": false, "type": "string", "enum": [ - "none", + "only", "include" ], "x-ms-enum": { @@ -2430,9 +2374,9 @@ "modelAsString": true, "values": [ { - "name": "Nonne", - "value": "none", - "description": "The delete snapshots include option is not specified." + "name": "Only", + "value": "only", + "description": "The delete snapshots include option is only." }, { "name": "Include", @@ -2470,22 +2414,16 @@ "required": false, "type": "string", "enum": [ - "none", - "include" + "Permanent" ], "x-ms-enum": { - "name": "DeleteSnapshotsOptionType", + "name": "BlobDeleteType", "modelAsString": true, "values": [ { - "name": "Nonne", - "value": "none", - "description": "The delete snapshots include option is not specified." - }, - { - "name": "Include", - "value": "include", - "description": "The delete snapshots include option is include." + "name": "Permanent", + "value": "Permanent", + "description": "Permanently delete the blob." } ] }, @@ -2578,7 +2516,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -2610,6 +2549,20 @@ "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" }, { @@ -2685,7 +2638,7 @@ }, "x-ms-access-tier": { "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.", + "description": "The tier to be set on the blob.", "enum": [ "P4", "P6", @@ -3007,28 +2960,9 @@ "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": "string", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed 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." - } - ] - } + "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", @@ -3189,7 +3123,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -3285,7 +3220,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -3398,7 +3334,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -3552,7 +3489,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -3634,7 +3572,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -3704,7 +3643,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "where", @@ -3726,7 +3666,8 @@ "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" + "format": "int32", + "minimum": 1 }, { "name": "include", @@ -3824,7 +3765,7 @@ "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": true, + "required": false, "type": "integer", "format": "int32", "x-ms-client-name": "duration" @@ -3835,7 +3776,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-proposed-lease-id", @@ -3948,7 +3890,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "If-Modified-Since", @@ -4049,7 +3992,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "If-Modified-Since", @@ -4146,7 +4090,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "If-Modified-Since", @@ -4273,7 +4218,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "If-Modified-Since", @@ -4388,7 +4334,8 @@ "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" + "format": "int32", + "minimum": 1 }, { "name": "include", @@ -4399,7 +4346,7 @@ "items": { "type": "string", "enum": [ - "copies", + "copy", "deleted", "metadata", "snapshots", @@ -4411,12 +4358,12 @@ "deletedwithversions" ], "x-ms-enum": { - "name": "ListBlobsIncludes", + "name": "ListBlobsIncludeItem", "modelAsString": true, "values": [ { - "name": "Copies", - "value": "copies", + "name": "Copy", + "value": "copy", "description": "The include copies." }, { @@ -4475,7 +4422,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -4572,7 +4520,8 @@ "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" + "format": "int32", + "minimum": 1 }, { "name": "include", @@ -4583,7 +4532,7 @@ "items": { "type": "string", "enum": [ - "copies", + "copy", "deleted", "metadata", "snapshots", @@ -4595,12 +4544,12 @@ "deletedwithversions" ], "x-ms-enum": { - "name": "ListBlobsIncludes", + "name": "ListBlobsIncludeItem", "modelAsString": true, "values": [ { - "name": "Copies", - "value": "copies", + "name": "Copy", + "value": "copy", "description": "The include copies." }, { @@ -4659,7 +4608,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -4701,7 +4651,7 @@ } }, "x-ms-pageable": { - "nextLinkName": "NextMarker" + "nextLinkName": "nextMarker" } } }, @@ -4883,7 +4833,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-expiry-option", @@ -5017,7 +4968,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-blob-cache-control", @@ -5041,6 +4993,7 @@ "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" }, { @@ -5183,7 +5136,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "If-Unmodified-Since", @@ -5346,7 +5300,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -5422,7 +5377,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-legal-hold", @@ -5510,7 +5466,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -5542,6 +5499,20 @@ "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" }, { @@ -5671,13 +5642,14 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "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": true, + "required": false, "type": "integer", "format": "int32", "x-ms-client-name": "duration" @@ -5797,7 +5769,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -5910,7 +5883,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -6027,7 +6001,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -6152,7 +6127,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-break-period", @@ -6271,7 +6247,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-encryption-key", @@ -6295,6 +6272,20 @@ "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" }, { @@ -6428,12 +6419,13 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-access-tier", "in": "header", - "description": "Optional. The tier to be set on the blob.", + "description": "The tier to be set on the blob.", "required": false, "type": "string", "enum": [ @@ -6842,12 +6834,13 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-access-tier", "in": "header", - "description": "Optional. The tier to be set on the blob.", + "description": "The tier to be set on the blob.", "required": false, "type": "string", "enum": [ @@ -7256,11 +7249,12 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { - "name": "x-ms-copy-id", - "in": "header", + "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", @@ -7363,7 +7357,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-access-tier", @@ -7475,7 +7470,7 @@ } ] }, - "x-ms-client-name": "accessTier" + "x-ms-client-name": "tier" }, { "name": "x-ms-rehydrate-priority", @@ -7765,7 +7760,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "snapshot", @@ -7878,7 +7874,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "versionid", @@ -8003,7 +8000,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "Content-Length", @@ -8015,7 +8013,86 @@ "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" + "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", @@ -8047,6 +8124,7 @@ "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" }, { @@ -8095,6 +8173,20 @@ "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" }, { @@ -8333,7 +8425,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-range", @@ -8373,6 +8466,20 @@ "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" }, { @@ -8557,7 +8664,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-range", @@ -8597,6 +8705,20 @@ "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" }, { @@ -8745,7 +8867,7 @@ "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "name": "x-ms-source-url", + "name": "x-ms-copy-source", "in": "header", "description": "Specify a URL to the copy source.", "required": true, @@ -8774,6 +8896,7 @@ "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" }, { @@ -8791,7 +8914,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-range", @@ -8823,6 +8947,20 @@ "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" }, { @@ -9049,7 +9187,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-range", @@ -9100,7 +9239,8 @@ "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" + "format": "int32", + "minimum": 1 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -9207,7 +9347,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "prevsnapshot", @@ -9273,7 +9414,8 @@ "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" + "format": "int32", + "minimum": 1 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -9369,7 +9511,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -9401,6 +9544,20 @@ "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" }, { @@ -9528,7 +9685,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -9690,7 +9848,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -9843,7 +10002,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "Content-Length", @@ -9884,6 +10044,7 @@ "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" }, { @@ -9932,6 +10093,20 @@ "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" }, { @@ -10127,7 +10302,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "Content-Length", @@ -10202,6 +10378,20 @@ "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" }, { @@ -10349,7 +10539,7 @@ "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "name": "x-ms-source-url", + "name": "x-ms-copy-source", "in": "header", "description": "Specify a URL to the copy source.", "required": true, @@ -10360,7 +10550,7 @@ "name": "x-ms-source-range", "in": "header", "description": "Bytes of source data in the specified range.", - "required": true, + "required": false, "type": "string", "x-ms-client-name": "sourceRange" }, @@ -10378,6 +10568,7 @@ "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" }, { @@ -10386,7 +10577,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "Content-Length", @@ -10427,6 +10619,20 @@ "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" }, { @@ -10637,7 +10843,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -10758,7 +10965,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "Content-MD5", @@ -10807,6 +11015,7 @@ "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" }, { @@ -10855,6 +11064,20 @@ "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" }, { @@ -10868,7 +11091,7 @@ { "name": "x-ms-access-tier", "in": "header", - "description": "Optional. The tier to be set on the blob.", + "description": "The tier to be set on the blob.", "required": false, "type": "string", "enum": [ @@ -11177,7 +11400,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "Content-MD5", @@ -11226,6 +11450,7 @@ "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" }, { @@ -11274,6 +11499,20 @@ "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" }, { @@ -11287,7 +11526,7 @@ { "name": "x-ms-access-tier", "in": "header", - "description": "Optional. The tier to be set on the blob.", + "description": "The tier to be set on the blob.", "required": false, "type": "string", "enum": [ @@ -11645,7 +11884,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -11677,6 +11917,20 @@ "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" }, { @@ -11803,7 +12057,7 @@ "x-ms-client-name": "contentLength" }, { - "name": "x-ms-source-url", + "name": "x-ms-copy-source", "in": "header", "description": "Specify a URL to the copy source.", "required": true, @@ -11814,7 +12068,7 @@ "name": "x-ms-source-range", "in": "header", "description": "Bytes of source data in the specified range.", - "required": true, + "required": false, "type": "string", "x-ms-client-name": "sourceRange" }, @@ -11832,6 +12086,7 @@ "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" }, { @@ -11840,7 +12095,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-encryption-key", @@ -11864,6 +12120,20 @@ "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" }, { @@ -12021,7 +12291,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-blob-cache-control", @@ -12061,6 +12332,7 @@ "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" }, { @@ -12117,6 +12389,20 @@ "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" }, { @@ -12130,7 +12416,7 @@ { "name": "x-ms-access-tier", "in": "header", - "description": "Optional. The tier to be set on the blob.", + "description": "The tier to be set on the blob.", "required": false, "type": "string", "enum": [ @@ -12479,7 +12765,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "x-ms-lease-id", @@ -12578,7 +12865,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -12658,7 +12946,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "where", @@ -12680,7 +12969,8 @@ "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" + "format": "int32", + "minimum": 1 }, { "name": "include", @@ -12791,7 +13081,8 @@ "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" + "format": "int32", + "minimum": 1 }, { "name": "timeout", @@ -12799,7 +13090,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "name": "include", @@ -13039,7 +13331,8 @@ "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, "type": "integer", - "format": "int32" + "format": "int32", + "minimum": 0 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -13455,8 +13748,7 @@ } }, "required": [ - "blobItems", - "blobPrefixes" + "blobItems" ] }, "BlobImmutabilityPolicyMode": { @@ -14087,7 +14379,7 @@ "type": "string", "description": "The delete snapshots option type.", "enum": [ - "none", + "only", "include" ], "x-ms-enum": { @@ -14095,9 +14387,9 @@ "modelAsString": true, "values": [ { - "name": "Nonne", - "value": "none", - "description": "The delete snapshots include option is not specified." + "name": "Only", + "value": "only", + "description": "The delete snapshots include option is only." }, { "name": "Include", @@ -14133,6 +14425,24 @@ } } }, + "EncryptionAlgorithmType": { + "type": "string", + "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": true, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + } + }, "FilterBlobItem": { "type": "object", "description": "The filter blob item.", @@ -14458,7 +14768,7 @@ "$ref": "#/definitions/BlobHierarchyListSegment", "description": "The blob segment." }, - "NextMarker": { + "nextMarker": { "type": "string", "description": "The next marker of the blobs." } @@ -14469,11 +14779,11 @@ "segment" ] }, - "ListBlobsIncludes": { + "ListBlobsIncludeItem": { "type": "string", "description": "The list blob includes parameter values.", "enum": [ - "copies", + "copy", "deleted", "metadata", "snapshots", @@ -14485,12 +14795,12 @@ "deletedwithversions" ], "x-ms-enum": { - "name": "ListBlobsIncludes", + "name": "ListBlobsIncludeItem", "modelAsString": true, "values": [ { - "name": "Copies", - "value": "copies", + "name": "Copy", + "value": "copy", "description": "The include copies." }, { @@ -15269,89 +15579,6 @@ "format": "date-time", "x-ms-parameter-location": "method", "x-ms-client-name": "ifUnmodifiedSince" - }, - "PremiumPageBlobAccessTierOptional": { - "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-parameter-location": "method", - "x-ms-client-name": "accessTier" } } } From 43bae1911592407428a3efad08c25e86d9d9ede4 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 5 Nov 2024 17:54:02 -0800 Subject: [PATCH 082/129] add placeholders for metadata and object replication headers --- .../storage/Microsoft.BlobStorage/models.tsp | 11 +- .../storage/Microsoft.BlobStorage/routes.tsp | 72 +++------- .../stable/2021-12-02/blob.json | 124 ++++++++++++++++++ 3 files changed, 151 insertions(+), 56 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 7a614563394f..3755031cb990 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -2023,11 +2023,16 @@ alias ContainerNamePathParameter = { containerName: string; }; -// TODO: Figure out how to better represent this -/** 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. */ +// 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. */ - @header("x-ms-meta") metadata?: Record; + @header("x-ms-meta") metadata?: string; +}; + +// 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?: string; }; /** The If-Unmodified-Since header. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 7dde2b56daa3..287e80db97d6 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -180,10 +180,7 @@ interface Container { { ...ContainerNamePathParameter; ...TimeoutParameter; - - // TODO should we define metadata headers like: - // ...MetadataHeaders; - + ...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. */ @@ -211,11 +208,8 @@ interface Container { ...LeaseIdOptionalParameter; }, { - // TODO: x-ms-meta headers - // ...MetadataHeaders; - + ...MetadataHeaders; ...EtagResponseHeader; - ...LastModifiedResponseHeader; ...DateResponseHeader; ...LeaseDurationHeader; @@ -273,9 +267,7 @@ interface Container { ...ContainerNamePathParameter; ...TimeoutParameter; ...LeaseIdOptionalParameter; - - // TODO: ...MetadataParameter; or MetadataHeaders? - + ...MetadataHeaders; ...IfModifiedSinceParameter; }, { @@ -647,11 +639,9 @@ interface Blob { ...RequestIdResponseHeader; ...ClientRequestIdHeader; - - // TODO: x-ms-meta headers - // TODO: x-ms-or headers + ...MetadataHeaders; + ...ObjectReplicationHeaders; ...LastModifiedResponseHeader; - ...CreationTimeResponseHeader; ...ObjectReplicationPolicyIdResponseHeader; ...ContentLengthResponseHeader; @@ -702,11 +692,9 @@ interface Blob { ...RequestIdResponseHeader; ...ClientRequestIdHeader; - - // TODO: x-ms-meta headers - // TODO: x-ms-or headers + ...MetadataHeaders; + ...ObjectReplicationHeaders; ...LastModifiedResponseHeader; - ...CreationTimeResponseHeader; ...ObjectReplicationPolicyIdResponseHeader; ...ContentLengthResponseHeader; @@ -766,11 +754,9 @@ interface Blob { ...IfTagsParameter; }, { - // TODO: x-ms-meta headers - // TODO: x-ms-or headers - + ...MetadataHeaders; + ...ObjectReplicationHeaders; ...LastModifiedResponseHeader; - ...CreationTimeResponseHeader; ...ObjectReplicationPolicyIdResponseHeader; ...BlobTypeResponseHeader; @@ -997,10 +983,8 @@ interface Blob { ...ContainerNamePathParameter; ...BlobPathParameter; ...TimeoutParameter; - - // TODO: Metadata ...MetadataParameter; + ...MetadataHeaders; ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; @@ -1146,11 +1130,8 @@ interface Blob { ...ContainerNamePathParameter; ...BlobPathParameter; ...TimeoutParameter; - - // TODO: ...MetadataParameter; - + ...MetadataHeaders; ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; @@ -1183,10 +1164,8 @@ interface Blob { ...ContainerNamePathParameter; ...BlobPathParameter; ...TimeoutParameter; - - // TODO: ...MetadataParameter; + ...MetadataHeaders; ...AccessTierOptional; - ...RehydratePriorityHeader; ...SourceIfModifiedSinceParameter; ...SourceIfUnmodifiedSinceParameter; @@ -1228,10 +1207,8 @@ interface Blob { ...ContainerNamePathParameter; ...BlobPathParameter; ...TimeoutParameter; - - // TODO: ...MetadataParameter; + ...MetadataHeaders; ...AccessTierOptional; - ...SourceIfModifiedSinceParameter; ...SourceIfUnmodifiedSinceParameter; ...SourceIfMatchParameter; @@ -1357,11 +1334,8 @@ interface Blob { BodyParameter & { #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" @statusCode statusCode: 200 | 206; - - // TODO: MetadataResponseHeader; - + ...MetadataHeaders; ...LastModifiedResponseHeader; - ...ContentLengthResponseHeader; ...ContentRangeResponseHeader; ...EtagResponseHeader; @@ -1445,9 +1419,8 @@ interface PageBlob { @route("/{containerName}/{blob}?PageBlob") create is StorageOperation< { - // TODO: Metadata + ...MetadataHeaders; ...ContainerNamePathParameter; - ...BlobPathParameter; ...TimeoutParameter; ...ContentLengthParameter; @@ -1773,9 +1746,8 @@ interface AppendBlob { @route("/{containerName}/{blob}?AppendBlob") create is StorageOperation< { - // TODO: Metadata + ...MetadataHeaders; ...ContainerNamePathParameter; - ...BlobPathParameter; ...TimeoutParameter; ...ContentLengthParameter; @@ -1936,10 +1908,8 @@ interface BlockBlob { @route("/{containerName}/{blob}?BlockBlob") upload is StorageOperation< { - // TODO: Metadata - + ...MetadataHeaders; ...ContainerNamePathParameter; - ...BlobPathParameter; ...BodyParameter; ...TimeoutParameter; @@ -1987,10 +1957,8 @@ interface BlockBlob { @route("/{containerName}/{blob}?BlockBlob&fromUrl") putBlobFromUrl is StorageOperation< { - // TODO: Metadata - + ...MetadataHeaders; ...ContainerNamePathParameter; - ...BlobPathParameter; ...TimeoutParameter; ...ContentMd5Parameter; @@ -2127,10 +2095,8 @@ interface BlockBlob { ...BlobContentMd5Parameter; ...ContentMd5Parameter; ...ContentCrc64Parameter; - - // TODO: ...MetadataParameter; + ...MetadataHeaders; ...LeaseIdOptionalParameter; - ...BlobContentDispositionParameter; ...EncryptionKeyParameter; ...EncryptionKeySha256Parameter; diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index f13d9c6d0a3e..6f941db2d0d1 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -441,6 +441,10 @@ ] } }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, "x-ms-request-id": { "type": "string", "format": "uuid", @@ -488,6 +492,14 @@ "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", @@ -1203,6 +1215,14 @@ "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." @@ -1531,6 +1551,14 @@ "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." @@ -2017,6 +2045,10 @@ ] } }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, "x-ms-request-id": { "type": "string", "format": "uuid", @@ -2275,6 +2307,10 @@ ] } }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, "x-ms-request-id": { "type": "string", "format": "uuid", @@ -3034,6 +3070,14 @@ "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." @@ -3134,6 +3178,14 @@ "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", @@ -5469,6 +5521,14 @@ "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-lease-id", "in": "header", @@ -6250,6 +6310,14 @@ "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-encryption-key", "in": "header", @@ -6422,6 +6490,14 @@ "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-access-tier", "in": "header", @@ -6837,6 +6913,14 @@ "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-access-tier", "in": "header", @@ -7977,6 +8061,14 @@ "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", @@ -9979,6 +10071,14 @@ "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", @@ -10942,6 +11042,14 @@ "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", @@ -11377,6 +11485,14 @@ "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", @@ -12351,6 +12467,14 @@ "type": "string", "x-ms-client-name": "transactionalContentCrc64" }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, { "name": "x-ms-lease-id", "in": "header", From 2df5bfa6584e03852df037873aca465556cfacdf Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 5 Nov 2024 18:04:14 -0800 Subject: [PATCH 083/129] update multipart/mixed content type --- specification/storage/Microsoft.BlobStorage/routes.tsp | 8 ++++---- .../Microsoft.BlobStorage/stable/2021-12-02/blob.json | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 287e80db97d6..90a29c43b9a4 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -128,7 +128,7 @@ interface Service { 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: string, + multipartContentType: "multipart/mixed", /** Specifies the version of the operation to use for this request. */ @header("x-ms-version") @@ -142,7 +142,7 @@ interface Service { /** 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 exisitng API" @header("Content-Type") - contentType: string; + contentType: "multipart/mixed"; /** 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. */ @header("x-ms-version") @@ -386,7 +386,7 @@ interface Container { /** 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: string, + multipartContentType: "multipart/mixed", ...ContentLengthParameter, ...TimeoutParameter, @@ -401,7 +401,7 @@ interface Container { /** 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: string; + multipartContentType: "multipart/mixed"; /** 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. */ @header("x-ms-version") diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 6f941db2d0d1..387cf94938ab 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -594,11 +594,11 @@ "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" ], "parameters": [ { @@ -12968,11 +12968,11 @@ "operationId": "Service_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": [ { From a042e47b267347aa71e8c8224dd6b65e51e70581 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 5 Nov 2024 20:25:11 -0800 Subject: [PATCH 084/129] update to 2025-01-05 api version --- .../storage/Microsoft.BlobStorage/client.tsp | 3 +- .../storage/Microsoft.BlobStorage/main.tsp | 4 +- .../storage/Microsoft.BlobStorage/models.tsp | 30 + .../storage/Microsoft.BlobStorage/routes.tsp | 39 +- .../stable/2021-12-02/blob.json | 50 +- .../stable/2025-01-05/blob.json | 22057 +++++++++------- 6 files changed, 12825 insertions(+), 9358 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index fbdf33b31add..1aac58d98816 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -13,7 +13,7 @@ model BlobStorageClientOptions { @header("x-ms-version") version: string; - ...ContainerNameParameter; + ...ContainerNamePathParameter; } @@clientInitialization(Storage.Blob, BlobStorageClientOptions); @@ -30,4 +30,3 @@ model BlobStorageClientOptions { @@clientName(BlobPropertiesInternal.immutabilityPolicyUntilDate, "ImmutabilityPolicyExpiresOn" ); -@@clientName(PremiumPageBlobAccessTierOptional.accessTier, "tier"); diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index 4eb526bce0fd..320fe53f05de 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -35,7 +35,7 @@ namespace Storage.Blob; #suppress "@azure-tools/typespec-azure-core/no-enum" "Following standard typespec recommendation" @doc("The Azure.Storage.Blob service versions.") enum Versions { - @doc("The 2021-12-02-preview version of the Azure.Storage.Blob service.") + @doc("The 2025-01-05 version of the Azure.Storage.Blob service.") @useDependency(Azure.Core.Versions.v1_0_Preview_2) - v2021_12_02: "2021-12-02", + v2025_01_05: "2025-01-05", } diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 3755031cb990..6687405e0b41 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -2119,3 +2119,33 @@ alias BodyParameter = { @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 index 90a29c43b9a4..8e01ad771959 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -101,14 +101,13 @@ interface Service { UserDelegationKey & DateResponseHeader >; - // TODO: The swagger didnt specify all of the headers we have in the template, like the request id headers /** 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") getAccountInfo is StorageOperation< - {}, + TimeoutParameter, { ...DateResponseHeader; ...SkuNameResponseHeader; @@ -584,11 +583,15 @@ interface Container { @get @route("/{containerName}?restype=account&comp=properties") getAccountInfo is StorageOperation< - ContainerNamePathParameter, + { + ...ContainerNamePathParameter; + ...TimeoutParameter; + }, { ...DateResponseHeader; ...SkuNameResponseHeader; ...AccountKindResponseHeader; + ...IsHierarchicalNamespaceEnabled; } >; } @@ -623,6 +626,10 @@ interface Blob { @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, @@ -678,6 +685,8 @@ interface Blob { ...ImmutabilityPolicyExpiresOnResponseHeader; ...ImmutabilityPolicyModeResponseHeader; ...LegalHoldResponseHeader; + ...StructuredBodyTypeResponseHeader; + ...StructuredContentLengthResponseHeader; }) | (BodyParameter & { #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" @statusCode statusCode: 206; @@ -732,6 +741,8 @@ interface Blob { ...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. */ @@ -931,6 +942,8 @@ interface Blob { ...IfUnmodifiedSinceParameter; ...ImmutabilityPolicyExpiryParameter; ...ImmutabilityPolicyModeParameter; + ...SnapshotParameter; + ...VersionIdParameter; }, { ...DateResponseHeader; @@ -949,6 +962,8 @@ interface Blob { ...ContainerNamePathParameter; ...BlobPathParameter; ...TimeoutParameter; + ...SnapshotParameter; + ...VersionIdParameter; }, DateResponseHeader >; @@ -965,6 +980,8 @@ interface Blob { ...BlobPathParameter; ...TimeoutParameter; ...LegalHoldRequiredParameter; + ...SnapshotParameter; + ...VersionIdParameter; }, { ...DateResponseHeader; @@ -1295,16 +1312,18 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get - @route("/{containerName}/{blob}?restype=account&comp=properties") + @route("/{containerName}/{blob}?restype=account&comp=properties&blob") getAccountInfo is StorageOperation< { ...ContainerNamePathParameter; ...BlobPathParameter; + ...TimeoutParameter; }, { ...DateResponseHeader; ...AccountKindResponseHeader; ...SkuNameResponseHeader; + ...IsHierarchicalNamespaceEnabled; } >; @@ -1493,6 +1512,8 @@ interface PageBlob { ...IfSequenceNumberEqualToParameter; ...ConditionalRequestHeaders; ...IfTagsParameter; + ...StructuredBodyPut; + ...StructuredContentLengthParameter; }, { @statusCode statusCode: 201; @@ -1505,6 +1526,7 @@ interface PageBlob { ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; + ...StructuredBodyTypeResponseHeader; }, "application/octet-stream" >; @@ -1810,6 +1832,8 @@ interface AppendBlob { ...EncryptionScopeParameter; ...ConditionalRequestHeaders; ...IfTagsParameter; + ...StructuredBodyPut; + ...StructuredContentLengthParameter; }, { @statusCode statusCode: 201; @@ -1823,6 +1847,7 @@ interface AppendBlob { ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; + ...StructuredBodyTypeResponseHeader; } >; @@ -1934,6 +1959,8 @@ interface BlockBlob { ...ImmutabilityPolicyModeParameter; ...LegalHoldOptionalParameter; ...ContentCrc64Parameter; + ...StructuredBodyPut; + ...StructuredContentLengthParameter; }, { @statusCode statusCode: 201; @@ -1945,6 +1972,7 @@ interface BlockBlob { ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; + ...StructuredBodyTypeResponseHeader; }, "application/octet-stream" >; @@ -2025,6 +2053,8 @@ interface BlockBlob { ...EncryptionKeySha256Parameter; ...EncryptionAlgorithmParameter; ...EncryptionScopeParameter; + ...StructuredBodyPut; + ...StructuredContentLengthParameter; }, { @statusCode statusCode: 201; @@ -2034,6 +2064,7 @@ interface BlockBlob { ...IsServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; + ...StructuredBodyTypeResponseHeader; }, "application/octet-stream" >; diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 387cf94938ab..0dec18068bdd 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -810,14 +810,6 @@ "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", @@ -2370,14 +2362,6 @@ "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", @@ -2538,14 +2522,6 @@ "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", @@ -7427,14 +7403,6 @@ "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", @@ -7652,7 +7620,7 @@ } } }, - "/{containerName}/{blob}?restype=account&comp=properties": { + "/{containerName}/{blob}?restype=account&comp=properties&blob": { "get": { "operationId": "Blob_GetAccountInfo", "description": "Returns the sku name and account kind", @@ -7854,14 +7822,6 @@ "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": "x-ms-lease-id", "in": "header", @@ -7961,14 +7921,6 @@ "format": "int32", "minimum": 0 }, - { - "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": "Content-MD5", "in": "header", 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..1e0596bcf7d8 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,2166 @@ { "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": "Service_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." + "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." } } }, "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": "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", + "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." + "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." } - }, - "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": "Service_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": { + "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-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." + "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." - }, - "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/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-rfc1123", + "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-rfc1123", + "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-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": "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": { - "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." } - }, - "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": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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." + "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." - }, - "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/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" }, { - "$ref": "#/parameters/ApiVersionParameter" + "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/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." + "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." - }, - "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." } } }, "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-rfc1123", + "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-rfc1123", + "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", + "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-client-request-id": { "type": "string", - "description": "The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID" + "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." + "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." } - }, - "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", "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", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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-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": [ - "container", - "blob" + "BlockBlob", + "PageBlob", + "AppendBlob" ], "x-ms-enum": { - "name": "PublicAccessType", - "modelAsString": true + "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-has-immutability-policy": { - "x-ms-client-name": "HasImmutabilityPolicy", - "description": "Indicates whether the container has an immutability policy set on it.", - "type": "boolean" + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-has-legal-hold": { - "x-ms-client-name": "HasLegalHold", - "description": "Indicates whether the container has a legal hold.", - "type": "boolean" + "x-ms-copy-completion-time": { + "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-default-encryption-scope": { - "x-ms-client-name": "DefaultEncryptionScope", - "description": "The default encryption scope for the container.", - "type": "string" + "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-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-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-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", + "x-ms-copy-source": { "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": "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-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-copy-status": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "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-version": { - "x-ms-client-name": "Version", + "x-ms-copy-status-description": { "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": "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" }, - "Date": { + "x-ms-creation-time": { "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": { - "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": "Returns the date and time the blob was created." }, - "Last-Modified": { + "x-ms-encryption-key-sha256": { "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": "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-encryption-scope": { "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 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": { - "x-ms-client-name": "RequestId", + "x-ms-immutability-policy-mode": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "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-version": { - "x-ms-client-name": "Version", + "x-ms-immutability-policy-until-date": { "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-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." }, - "Date": { + "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-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": "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": [ - "container", - "blob" + "available", + "leased", + "expired", + "breaking", + "broken" ], "x-ms-enum": { - "name": "PublicAccessType", - "modelAsString": true + "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." + } + ] } }, - "ETag": { + "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 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" - } - }, - "schema": { - "$ref": "#/definitions/SignedIdentifiers" - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "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": { + "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": { + "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." } - }, - "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.", + "206": { + "description": "Successful", + "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Content-Disposition": { "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 '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-request-id": { - "x-ms-client-name": "RequestId", + "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" }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Content-Language": { "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 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." + }, + "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." }, "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": [ - "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", + }, + "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-rfc1123", + "description": "The date/time that the container was last modified." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "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", - "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": "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" }, - "Date": { + "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", - "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": [ - "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.", - "headers": { + "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-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." }, - "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": "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": { + "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 media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID" + "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-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-copy-source": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "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-version": { - "x-ms-client-name": "Version", + "x-ms-copy-status": { "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", + "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": "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-rfc1123", + "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" - } - }, - "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": { + "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": "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 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." + } + ] + } }, - "Last-Modified": { + "x-ms-immutability-policy-until-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." + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." }, - "x-ms-lease-id": { - "x-ms-client-name": "LeaseId", + "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", - "description": "Uniquely identifies a container's lease" + "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "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": "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 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": { - "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-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": { - "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-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" - } - }, + "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." + "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." + "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." - }, - "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" - } - }, + "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": "Blob_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/octet-stream" ], - "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" }, { - "$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": "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/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 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-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-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-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" }, - "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" - }, - { - "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": [ + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + }, { - "$ref": "#/parameters/Timeout" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/LeaseBreakPeriod" + "$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": { - "202": { - "description": "The Break operation completed successfully.", + "200": { + "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-time": { - "x-ms-client-name": "LeaseTime", - "type": "integer", - "description": "Approximate time remaining in the lease period, in seconds." + "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-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." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "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." + }, + "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." }, "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": "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": { "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." + "description": "The date/time that the container was last modified." }, - "x-ms-lease-id": { - "x-ms-client-name": "LeaseId", + "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", - "description": "Uniquely identifies a container's lease" + "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "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": "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 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-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-content-crc64": { "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 response header is returned so that the client can check for the integrity of the copied content." }, - "Date": { + "x-ms-copy-completion-time": { "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": [ - "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.", - "headers": { - "Content-Type": { + "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": "The media type of the body of the response. For List Blobs this is 'application/xml'" + "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-copy-progress": { "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": "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-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-copy-source": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "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-version": { - "x-ms-client-name": "Version", + "x-ms-copy-status": { "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": "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." + } + ] + } }, - "Date": { + "x-ms-copy-status-description": { "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/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": { - "type": "string", - "description": "The media type of the body of the response. For List Blobs this is 'application/xml'" - }, - "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/ListBlobsHierarchySegmentResponse" - } - }, - "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=account&comp=properties": { - "get": { - "tags": [ - "container" - ], - "operationId": "Container_GetAccountInfo", - "description": "Returns the sku name and account kind ", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "Success (OK)", - "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": "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-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" }, - "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-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-sku-name": { - "x-ms-client-name": "SkuName", + "x-ms-lease-state": { "type": "string", + "description": "Lease state of the blob.", "enum": [ - "Standard_LRS", - "Standard_GRS", - "Standard_RAGRS", - "Standard_ZRS", - "Premium_LRS" + "available", + "leased", + "expired", + "breaking", + "broken" ], "x-ms-enum": { - "name": "SkuName", - "modelAsString": false - }, - "description": "Identifies the sku name of the account" + "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-account-kind": { - "x-ms-client-name": "AccountKind", + "x-ms-lease-status": { "type": "string", + "description": "The lease status of the blob.", "enum": [ - "Storage", - "BlobStorage", - "StorageV2", - "FileStorage", - "BlockBlobStorage" + "unlocked", + "locked" ], "x-ms-enum": { - "name": "AccountKind", - "modelAsString": false - }, - "description": "Identifies the account kind" + "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-is-hns-enabled": { - "x-ms-client-name": "IsHierarchicalNamespaceEnabled", + "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": "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-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." } } }, - "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": [ - "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.", - "parameters": [ - { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/VersionId" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Range" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/GetRangeContentMD5" - }, - { - "$ref": "#/parameters/GetRangeContentCRC64" - }, - { - "$ref": "#/parameters/StructuredBodyGet" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/IfTags" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "Returns the content of the entire blob.", + "type": "file" + }, "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": { "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": { + "Date": { "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-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "Content-Encoding": { + "ETag": { "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "Cache-Control": { + "Last-Modified": { "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "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-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." }, - "Content-Language": { + "x-ms-blob-content-md5": { "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." + "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": { - "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,67 +2168,108 @@ ], "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-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", + "x-ms-client-request-id": { "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." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-copy-status-description": { - "x-ms-client-name": "CopyStatusDescription", + "x-ms-content-crc64": { "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": "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-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-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" + "failed", + "aborted" ], "x-ms-enum": { - "name": "CopyStatusType", - "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-duration": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", + "x-ms-copy-status-description": { "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "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-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": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", "type": "string", + "description": "Lease state of the blob.", "enum": [ "available", "leased", @@ -2850,220 +2278,590 @@ "broken" ], "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false + "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": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", "type": "string", + "description": "The lease status of the blob.", "enum": [ - "locked", - "unlocked" + "unlocked", + "locked" ], "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false + "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-meta": { "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 metadata headers." }, "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-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-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "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": [ + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "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-version-id": { - "x-ms-client-name": "VersionId", + "x-ms-client-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, client-generated string identifier for the request." }, - "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-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "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": [ + { + "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-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/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/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { "Accept-Ranges": { "type": "string", "description": "Indicates that the service supports requests for partial blob content." }, - "Date": { + "Cache-Control": { "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)." + "description": "This header is returned if it was previously specified for the blob." }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", + "Content-Disposition": { "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 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-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "Content-Encoding": { "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": "This header returns the value that was specified for the Content-Encoding request header" }, - "x-ms-blob-content-md5": { - "x-ms-client-name": "BlobContentMD5", + "Content-Language": { "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": "This header returns the value that was specified for the Content-Language request header." }, - "x-ms-tag-count": { - "x-ms-client-name": "TagCount", + "Content-Length": { "type": "integer", "format": "int64", - "description": "The number of tags associated with the blob" + "description": "The number of bytes present in the response body." }, - "x-ms-blob-sealed": { - "x-ms-client-name": "IsSealed", - "type": "boolean", - "description": "If this blob has been sealed" + "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-last-access-time": { - "x-ms-client-name": "LastAccessed", + "Date": { "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" + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-immutability-policy-until-date": { - "x-ms-client-name": "ImmutabilityPolicyExpiresOn", + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { "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": "The date/time that the container was last modified." }, - "x-ms-immutability-policy-mode": { - "x-ms-client-name": "ImmutabilityPolicyMode", + "x-ms-access-tier": { "type": "string", + "description": "The tier to be set on the blob.", "enum": [ - "Mutable", - "Unlocked", - "Locked" + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" ], "x-ms-enum": { - "name": "BlobImmutabilityPolicyMode", - "modelAsString": false - }, - "description": "Indicates immutability policy mode." + "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-legal-hold": { - "x-ms-client-name": "LegalHold", + "x-ms-access-tier-change-time": { + "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." + }, + "x-ms-access-tier-inferred": { "type": "boolean", - "description": "Indicates if a legal hold is present on the blob." + "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-structured-body": { - "x-ms-client-name": "StructuredBodyType", + "x-ms-archive-status": { "type": "string", - "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + "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-structured-content-length": { - "x-ms-client-name": "StructuredContentLength", + "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": { "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." - }, - "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." - }, - "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": { - "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" + "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", @@ -3071,73 +2869,166 @@ ], "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-content-crc64": { - "x-ms-client-name": "ContentCrc64", + "x-ms-client-request-id": { "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)" + "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", "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" + "failed", + "aborted" ], "x-ms-enum": { - "name": "CopyStatusType", - "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-duration": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", + "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-rfc1123", + "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-expiry-time": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The time this blob will expire." + }, + "x-ms-immutability-policy-mode": { "type": "string", + "description": "Indicates the immutability policy mode of the blob.", "enum": [ - "infinite", - "fixed" + "Mutable", + "Locked", + "Unlocked" ], "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false + "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-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-incremental-copy": { + "type": "boolean", + "description": "Included if the blob is incremental copy 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-last-access-time": { + "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-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": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", "type": "string", + "description": "Lease state of the blob.", "enum": [ "available", "leased", @@ -3146,8415 +3037,11411 @@ "broken" ], "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false + "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": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", "type": "string", + "description": "The lease status of the blob.", "enum": [ - "locked", - "unlocked" + "unlocked", + "locked" ], "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false + "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-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-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-meta": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "The metadata headers." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-or": { "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": "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-version-id": { - "x-ms-client-name": "VersionId", + "x-ms-or-policy-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." + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." }, - "Accept-Ranges": { + "x-ms-rehydrate-priority": { "type": "string", - "description": "Indicates that the service supports requests for partial blob content." + "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." + } + ] + } }, - "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-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", + "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." - }, - "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" + "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-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", + "x-ms-version": { "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." + "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-structured-body": { - "x-ms-client-name": "StructuredBodyType", + "x-ms-version-id": { "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." + "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" } }, "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}?restype=container&comp=metadata": { + "put": { + "operationId": "Container_SetMetadata", + "description": "operation sets one or more user-defined name-value pairs for the specified container.", "parameters": [ { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/VersionId" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$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": "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-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-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" }, { - "$ref": "#/parameters/ApiVersionParameter" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "Returns the properties of the blob.", + "description": "The request has succeeded.", "headers": { - "Last-Modified": { + "Date": { "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": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-creation-time": { - "x-ms-client-name": "CreationTime", + "ETag": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was created." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-meta": { + "Last-Modified": { "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "x-ms-or-policy-id": { - "x-ms-client-name": "ObjectReplicationPolicyId", + "x-ms-client-request-id": { "type": "string", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-or": { + "x-ms-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, server-generated string identifier for the request." }, - "x-ms-blob-type": { - "x-ms-client-name": "BlobType", - "description": "The blob's type.", + "x-ms-version": { "type": "string", - "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - }, - "x-ms-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", + "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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{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-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." + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "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.", + "ETag": { "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false - } + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", + "Last-Modified": { "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false - } + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "x-ms-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", + "x-ms-blob-public-access": { "type": "string", + "description": "The public access setting for the container.", "enum": [ - "locked", - "unlocked" + "blob", + "container" ], "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] } }, - "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." + "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." + "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." - }, - "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." - }, - "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-access-tier": { - "x-ms-client-name": "AccessTier", - "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." - }, - "x-ms-access-tier-inferred": { - "x-ms-client-name": "AccessTierInferred", - "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." - }, - "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}?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" ], - "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" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/DeleteSnapshots" + "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": "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": "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-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/IfTags" + "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/BlobDeleteType" - } + "name": "containerAcl", + "in": "body", + "description": "The access control list for the container.", + "required": true, + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + } + } ], "responses": { - "202": { - "description": "The delete request was accepted and the blob will be deleted.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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." + "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." - }, - "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" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - } - ] + } }, - "/{containerName}/{blob}?PageBlob": { + "/{containerName}?restype=container&comp=undelete": { "put": { - "tags": [ - "blob" - ], - "operationId": "PageBlob_Create", - "description": "The Create operation creates a new page blob.", - "consumes": [ - "application/octet-stream" - ], + "operationId": "Container_Restore", + "description": "Restores a previously-deleted container.", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/BlobContentMD5" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/BlobContentDisposition" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" + "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": "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" }, { - "$ref": "#/parameters/IfTags" + "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" }, { - "$ref": "#/parameters/BlobContentLengthRequired" + "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/BlobSequenceNumber" + "$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-rfc1123", + "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." + }, + "x-ms-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." + } + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}?restype=container&comp=rename": { + "put": { + "operationId": "Container_Rename", + "description": "Renames an existing container.", + "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" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobTagsHeader" + "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" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "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" }, { - "$ref": "#/parameters/ImmutabilityPolicyMode" + "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/LegalHoldOptional" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The blob 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": { + "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." - }, - "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." + "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." + "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-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." - }, + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{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" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + }, + "headers": { "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-client-request-id": { + "type": "string", + "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-request-id": { "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." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-version": { "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 version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." } } }, "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}?comp=lease&restype=container&acquire": { "put": { - "tags": [ - "blob" - ], - "operationId": "AppendBlob_Create", - "description": "The Create Append Blob operation creates a new append blob.", - "consumes": [ - "application/octet-stream" - ], + "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/ContentLength" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/BlobContentMD5" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/BlobContentDisposition" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" + "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/IfTags" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ApiVersionParameter" + "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/ClientRequestId" + "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/BlobTagsHeader" + "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/ImmutabilityPolicyExpiry" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/ImmutabilityPolicyMode" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$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": { + "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" + }, "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." + "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-lease-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": "Uniquely identifies a blobs' lease" }, "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-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." } } }, "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}?comp=lease&restype=container&release": { "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": "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", "parameters": [ { - "$ref": "#/parameters/Body" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ContentMD5" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/BlobContentMD5" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/BlobContentDisposition" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/AccessTierOptional" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/IfTags" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - }, - { - "$ref": "#/parameters/BlobTagsHeader" + "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/ImmutabilityPolicyExpiry" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ImmutabilityPolicyMode" + "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/LegalHoldOptional" + "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/ContentCrc64" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/StructuredBodyPut" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/StructuredContentLength" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The blob was updated.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, "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." - }, - "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." + "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." + "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-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." - }, - "x-ms-structured-body": { - "x-ms-client-name": "StructuredBodyType", - "type": "string", - "description": "Indicates the structured message body was accepted and mirrors back 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": [ - "BlockBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?BlockBlob&fromUrl": { + "/{containerName}?comp=lease&restype=container&renew": { "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" - ], + "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" - }, - { - "$ref": "#/parameters/ContentMD5" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/BlobContentMD5" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/BlobContentDisposition" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/AccessTierOptional" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/IfTags" - }, - { - "$ref": "#/parameters/SourceIfModifiedSince" - }, - { - "$ref": "#/parameters/SourceIfUnmodifiedSince" - }, - { - "$ref": "#/parameters/SourceIfMatch" - }, - { - "$ref": "#/parameters/SourceIfNoneMatch" - }, - { - "$ref": "#/parameters/SourceIfTags" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" + "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/BlobTagsHeader" + "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/CopySource" + "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/CopySourceBlobProperties" + "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/CopySourceAuthorization" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/CopySourceTags" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The blob was updated.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, "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." + "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-lease-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": "Uniquely identifies a blobs' lease" }, "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-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." } } }, "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}?comp=lease&restype=container&break": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_Undelete", - "description": "Undelete a blob that was previously soft deleted", + "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/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" }, { - "$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": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, - "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": [ - "undelete" - ] - } - ] - }, - "/{containerName}/{blob}?comp=expiry": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetExpiry", - "description": "Sets the time a blob will expire and be deleted.", - "parameters": [ { - "$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": "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-rfc1123", + "x-ms-client-name": "ifModifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$ref": "#/parameters/BlobExpiryOptions" + "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/BlobExpiryTime" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The blob expiry was set successfully.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { + "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" + }, "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." + "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-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": { - "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." - }, - "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" - } - }, + "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}?comp=lease&restype=container&change": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetHTTPHeaders", - "description": "The Set HTTP Headers operation sets system properties on the blob", + "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/BlobCacheControl" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentMD5" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$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": "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" + "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" }, { - "$ref": "#/parameters/IfTags" + "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": "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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$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-rfc1123", + "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" + "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" }, "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." - }, - "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" - } - }, + "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": { - "put": { - "tags": [ - "blob" + "/{containerName}?restype=container&comp=list&flat": { + "get": { + "operationId": "Container_ListBlobFlatSegment", + "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", + "produces": [ + "application/xml", + "application/json" ], - "operationId": "Blob_SetImmutabilityPolicy", - "description": "The Set Immutability Policy operation sets the immutability policy on the blob", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "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/ImmutabilityPolicyMode" + "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" }, { - "$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/VersionId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The immutability policy was successfully set.", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListBlobsFlatSegmentResponse" + }, "headers": { + "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-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." + "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." - }, - "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-immutability-policy-until-date": { - "x-ms-client-name": "ImmutabilityPolicyExpiry", - "type": "string", - "format": "date-time-rfc1123", - "description": "Indicates the time the 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." } } }, "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" } - }, - "delete": { - "tags": [ - "blob" + } + }, + "/{containerName}?restype=container&comp=list&hierarchy": { + "get": { + "operationId": "Container_ListBlobHierarchySegment", + "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", + "produces": [ + "application/xml", + "application/json" ], - "operationId": "Blob_DeleteImmutabilityPolicy", - "description": "The Delete Immutability Policy operation deletes the immutability policy 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" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ClientRequestId" + "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" }, { - "$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/VersionId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The delete immutability policy request was accepted and the immutability policy will be deleted.", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" + }, "headers": { + "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-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." + "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." - }, - "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" - } - }, + "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": [ - "immutabilityPolicies" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=legalhold": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetLegalHold", - "description": "The Set Legal Hold operation sets a legal hold on the blob.", + "/{containerName}?restype=account&comp=properties": { + "get": { + "operationId": "Container_GetAccountInfo", + "description": "Returns the sku name and account kind", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" + "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/LegalHoldRequired" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$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/VersionId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The legal hold was successfully set on the blob.", + "description": "The request has succeeded.", "headers": { + "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-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": { - "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-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": { - "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", + "x-ms-sku-name": { "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": "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." + } + ] + } }, - "Date": { + "x-ms-version": { "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." + "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." } } }, "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": [ - "legalhold" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=metadata": { + "/{containerName}/{blob}?comp=expiry": { "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", + "operationId": "Blob_SetExpiry", + "description": "Set the expiration time of a blob", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$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": "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/ApiVersionParameter" + "name": "x-ms-expiry-time", + "in": "header", + "description": "The time this blob will expire.", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-client-name": "ExpiresOn" }, { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The metadata was set successfully.", + "description": "The request has succeeded.", "headers": { + "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" + }, "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." + "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." + "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-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 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", - "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" - } - }, + "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=properties&SetHTTPHeaders": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_AcquireLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", + "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 + }, + { + "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" }, { - "$ref": "#/parameters/LeaseDuration" + "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/ProposedLeaseIdOptional" + "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-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/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-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": { - "201": { - "description": "The Acquire operation completed successfully.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, "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." + "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 blobs' lease" + "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." + "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." - }, - "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" - } - }, + "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": [ - "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": { + "/{containerName}/{blob}?comp=immutabilityPolicies": { "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", + "operationId": "Blob_SetImmutabilityPolicy", + "description": "Set the immutability policy 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" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/LeaseIdRequired" + "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": "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-rfc1123", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "$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-rfc1123", + "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": "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/ApiVersionParameter" + "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/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 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": "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-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-rfc1123", + "description": "Indicates the time the immutability policy will expire." }, "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." - }, - "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" - } - }, + "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": { - "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", + "/{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/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdRequired" - }, - { - "$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": "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/ApiVersionParameter" + "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/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The Renew 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 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" + "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." + "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." - }, - "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" - } - }, + "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": [ - "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": { + "/{containerName}/{blob}?comp=legalhold": { "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", + "operationId": "Blob_SetLegalHold", + "description": "The Set Legal Hold operation sets a legal hold 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" }, { - "$ref": "#/parameters/LeaseIdRequired" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ProposedLeaseIdRequired" + "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": "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/IfMatch" + "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/IfNoneMatch" + "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/IfTags" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The Change 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 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": "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-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." }, - "x-ms-lease-id": { - "x-ms-client-name": "LeaseId", + "x-ms-request-id": { "type": "string", - "description": "Uniquely identifies a blobs' lease" + "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." - }, - "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" - } - }, + "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=metadata": { "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": "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/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 + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + }, + { + "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" }, { - "$ref": "#/parameters/LeaseBreakPeriod" + "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" + "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/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-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 Break operation completed successfully.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, "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." - }, - "x-ms-lease-time": { - "x-ms-client-name": "LeaseTime", - "type": "integer", - "description": "Approximate time remaining in the lease period, in seconds." + "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-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-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-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-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-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" - } - }, + "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}?comp=lease&acquire": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_CreateSnapshot", - "description": "The Create Snapshot operation creates a read-only snapshot of a blob", + "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" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$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/LeaseIdOptional" + "$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": { "201": { - "description": "The snaptshot was taken successfully.", + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "x-ms-snapshot": { - "x-ms-client-name": "Snapshot", + "Date": { "type": "string", - "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot" + "format": "date-time-rfc1123", + "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." + "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" }, "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-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" - } - }, + "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": [ - "snapshot" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=copy": { + "/{containerName}/{blob}?comp=lease&release": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_StartCopyFromURL", - "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", + "operationId": "Blob_ReleaseLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Metadata" + "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/AccessTierOptional" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/RehydratePriority" + "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/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": "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/SourceIfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/SourceIfNoneMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/SourceIfTags" + "$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/IfMatch" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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." + }, + "x-ms-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." + } + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{containerName}/{blob}?comp=lease&renew": { + "put": { + "operationId": "Blob_RenewLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "parameters": [ { - "$ref": "#/parameters/IfNoneMatch" + "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/IfTags" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/CopySource" + "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": "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": "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/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/BlobTagsHeader" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/SealBlob" + "$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": { - "202": { - "description": "The copy blob has been accepted with the specified copy status.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, "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." + "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" }, "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-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-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-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 - } } } }, "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}?comp=lease&change": { "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": "Blob_ChangeLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/AccessTierOptional" - }, - { - "$ref": "#/parameters/SourceIfModifiedSince" - }, - { - "$ref": "#/parameters/SourceIfUnmodifiedSince" - }, - { - "$ref": "#/parameters/SourceIfMatch" - }, - { - "$ref": "#/parameters/SourceIfNoneMatch" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/IfTags" - }, - { - "$ref": "#/parameters/CopySource" + "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/ApiVersionParameter" + "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/ClientRequestId" + "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/SourceContentMD5" + "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/BlobTagsHeader" + "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/ImmutabilityPolicyExpiry" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/ImmutabilityPolicyMode" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/LegalHoldOptional" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/CopySourceAuthorization" + "$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/CopySourceTags" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "202": { - "description": "The copy has completed.", + "200": { + "description": "The request has succeeded.", "headers": { + "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" + }, "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." + "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" }, "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-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-copy-id": { - "x-ms-client-name": "CopyId", - "type": "string", - "description": "String identifier for this copy operation." - }, - "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 - } - }, - "Content-MD5": { - "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." } } }, "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=lease&break": { "put": { - "tags": [ - "blob" - ], - "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.", + "operationId": "Blob_BreakLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "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" + }, + { + "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": "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.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/Timeout" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/LeaseIdOptional" + "$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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "204": { - "description": "The delete request was accepted and the blob will be deleted.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." }, "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." - }, - "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" - } - }, + "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": [ - "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": { + "/{containerName}/{blob}?comp=snapshot": { "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.", + "operationId": "Blob_CreateSnapshot", + "description": "The Create Snapshot operation creates a read-only snapshot 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}$" + }, + { + "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-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/VersionId" + "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/AccessTierRequired" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/RehydratePriority" + "$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/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/IfTags" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The new tier will take effect immediately.", + "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-rfc1123", + "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 newer." - } - } - }, - "202": { - "description": "The transition to the new tier is pending.", - "headers": { + "format": "date-time-rfc1123", + "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." + "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-snapshot": { + "type": "string", + "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." }, "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." + "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": { + "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": [ - "tier" - ] - } - ] + } }, - "/{containerName}/{blob}?restype=account&comp=properties&blob": { - "get": { - "tags": [ - "blob" - ], - "operationId": "Blob_GetAccountInfo", - "description": "Returns the sku name and account kind ", + "/{containerName}/{blob}?comp=copy": { + "put": { + "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" + "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": "Success (OK)", - "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 + "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": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "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." }, - "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." - } - } + { + "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" }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } + { + "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." + } + ] }, - "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": { - "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" - ], - "parameters": [ + "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-rfc1123", + "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-rfc1123", + "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/BlockId" + "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/ContentLength" + "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/ContentMD5" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/ContentCrc64" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/Body" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/Timeout" + "$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/EncryptionKey" + "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/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-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/EncryptionScope" + "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-rfc1123", + "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 block was created.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { - "Content-MD5": { + "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-rfc1123", + "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-rfc1123", + "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-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" + "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-content-crc64": { + "x-ms-copy-status": { "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-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": "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-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", + "x-ms-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, server-generated string identifier for the request." }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-version": { "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 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-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": [ - "block" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=block&fromURL": { + "/{containerName}/{blob}?comp=copy&sync": { "put": { - "tags": [ - "blockblob" - ], - "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.", + "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/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": "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-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-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-rfc1123", + "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-rfc1123", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "$ref": "#/parameters/ContentLength" + "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/SourceUrl" + "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/SourceRange" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/SourceContentMD5" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/SourceContentCRC64" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/Timeout" + "$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" + "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/EncryptionAlgorithm" + "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/EncryptionScope" + "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/LeaseIdOptional" + "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-rfc1123", + "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 block was created.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "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." + "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-rfc1123", + "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-rfc1123", + "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 block. This header is only returned when the block 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": { + "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": { + "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": [ - "block" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=blocklist": { + "/{containerName}/{blob}?comp=copy©id": { "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.", + "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/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" + "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/BlobContentDisposition" + "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/EncryptionKey" + "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/EncryptionKeySha256" + "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/EncryptionAlgorithm" + "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/EncryptionScope" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", + "headers": { + "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-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." + }, + "x-ms-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." + } + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{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": [ { - "$ref": "#/parameters/AccessTierOptional" + "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/IfMatch" + "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/IfNoneMatch" + "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/IfTags" + "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": "blocks", - "description": "Blob Blocks.", - "in": "body", + "name": "x-ms-access-tier", + "in": "header", + "description": "Indicates the tier to be set on the blob.", "required": true, - "schema": { - "$ref": "#/definitions/BlockLookupList" - } - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" + "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/BlobTagsHeader" + "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" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "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/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 block list was recorded.", + "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": "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." - }, - "x-ms-content-crc64": { - "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." - }, "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." + "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-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": { + } + } + }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "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-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", + "x-ms-request-id": { "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." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-version": { "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 version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." } } }, "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}?restype=account&comp=properties&blob": { "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", + "operationId": "Blob_GetAccountInfo", + "description": "Returns the sku name and account kind", "parameters": [ { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/BlockListType" - }, - { - "$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/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" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "The page range was written.", + "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." + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "ETag": { + "x-ms-account-kind": { "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": "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." + } + ] + } }, - "Content-Type": { + "x-ms-client-request-id": { "type": "string", - "description": "The media type of the body of the response. For Get Block List this is 'application/xml'" + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-blob-content-length": { - "x-ms-client-name": "BlobContentLength", - "type": "integer", - "format": "int64", - "description": "The size of the blob in bytes." + "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "x-ms-request-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." + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-sku-name": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "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." + } + ] + } }, "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/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": { - "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_UploadPages", - "description": "The Upload Pages operation writes a range of pages to a page blob", - "consumes": [ - "application/octet-stream" + "/{containerName}/{blob}?comp=tags": { + "get": { + "operationId": "Blob_GetTags", + "description": "The Get Blob Tags operation enables users to get tags on a blob.", + "produces": [ + "application/xml", + "application/json" ], "parameters": [ { - "$ref": "#/parameters/Body" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/ContentMD5" - }, - { - "$ref": "#/parameters/ContentCrc64" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Range" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" + "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/IfSequenceNumberLessThan" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfSequenceNumberEqualTo" + "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": "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/IfMatch" + "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/IfNoneMatch" + "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/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - }, - { - "$ref": "#/parameters/StructuredBodyPut" - }, - { - "$ref": "#/parameters/StructuredContentLength" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The page range was written.", + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/BlobTags" + }, "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." - }, - "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-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for the page blob." + "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." + "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." - }, - "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 pages. This header is only returned when the pages were 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-structured-body": { - "x-ms-client-name": "StructuredBodyType", - "type": "string", - "description": "Indicates the structured message body was accepted and mirrors back 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": [ - "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=tags&_overload=setTags": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_ClearPages", - "description": "The Clear Pages operation clears a set of pages from a page blob", + "operationId": "Blob_SetTags", + "description": "The Set Tags operation enables users to set tags on a blob.", "consumes": [ - "application/octet-stream" + "application/xml" ], "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" + "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/IfSequenceNumberLessThanOrEqualTo" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/IfSequenceNumberLessThan" + "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/IfSequenceNumberEqualTo" + "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": "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" + "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/IfMatch" + "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/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-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.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "tags", + "in": "body", + "description": "The blob tags.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobTags" + } } ], "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": { + "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." - }, - "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-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for the page blob." + "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." + "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." - }, - "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" - } - }, + "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}?PageBlob": { "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": "PageBlob_Create", + "description": "The Create operation creates a new page blob.", "parameters": [ { - "$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" + }, + { + "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}$" }, { - "$ref": "#/parameters/SourceRangeRequiredPutPageFromUrl" + "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/SourceContentMD5" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/SourceContentCRC64" + "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" }, { - "$ref": "#/parameters/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" }, { - "$ref": "#/parameters/Timeout" + "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/RangeRequiredPutPageFromUrl" + "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/EncryptionKey" + "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/EncryptionKeySha256" + "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/EncryptionAlgorithm" + "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/EncryptionScope" + "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" + "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/IfSequenceNumberLessThanOrEqualTo" + "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/IfSequenceNumberLessThan" + "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/IfSequenceNumberEqualTo" + "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/SourceIfModifiedSince" + "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/SourceIfUnmodifiedSince" + "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/SourceIfMatch" + "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/SourceIfNoneMatch" + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "$ref": "#/parameters/ApiVersionParameter" + "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/ClientRequestId" + "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/CopySourceAuthorization" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "201": { - "description": "The page range was written.", + "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." + "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." + "format": "date-time-rfc1123", + "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 the page blob." + "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": { - "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" }, - "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", + "x-ms-version": { "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": "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-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": [ - "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" + "/{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": "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", "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" }, { - "$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": "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/Marker" + "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/MaxResults" + "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-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" + }, + { + "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" + }, + { + "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/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" + }, + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { - "200": { - "description": "Information on the page blob was found.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "Last-Modified": { + "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-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": "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", + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sequence-number": { "type": "integer", "format": "int64", - "description": "The size of the blob in bytes." + "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-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": { + "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-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", + "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 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 response body contains a structured message and specifies the message schema version and properties." }, - "Date": { + "x-ms-version": { "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": "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": { - "$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=page&clear": { + "put": { + "operationId": "PageBlob_ClearPages", + "description": "The Clear Pages operation clears a range of pages from a 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": "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": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$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": "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" + }, + { + "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/PrevSnapshotUrl" + "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" }, { - "$ref": "#/parameters/Range" + "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/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/Marker" + "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/MaxResults" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "Information on the page blob was found.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "Last-Modified": { + "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-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": "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", + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sequence-number": { "type": "integer", "format": "int64", - "description": "The size of the blob in bytes." + "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-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-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." - }, - "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/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=page&update&fromUrl": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_Resize", - "description": "Resize the Blob", + "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/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/EncryptionKey" + "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/EncryptionKeySha256" + "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/EncryptionAlgorithm" + "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/EncryptionScope" + "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/IfModifiedSince" + "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/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": "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": "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/IfTags" + "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/BlobContentLengthRequired" + "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/ApiVersionParameter" + "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/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "The Blob was resized 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 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" - }, - "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-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-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" + }, + { + "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" + }, + { + "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" }, - "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": [ - "properties" - ] - } - ] - }, - "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { - "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_UpdateSequenceNumber", - "description": "Update the sequence number of the blob", - "parameters": [ { - "$ref": "#/parameters/Timeout" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/LeaseIdOptional" + "$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-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-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/IfTags" + "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-rfc1123", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "$ref": "#/parameters/SequenceNumberAction" + "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/BlobSequenceNumber" + "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 sequence numbers were updated 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-rfc1123", + "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." + "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-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": { + "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-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-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-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" - } - }, + "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": { - "put": { - "tags": [ - "pageblob" + "/{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" ], - "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": "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-range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "range" + }, + { + "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/CopySource" + "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/ApiVersionParameter" + "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/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "202": { - "description": "The blob was copied.", + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, "headers": { + "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" + }, "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." + "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": { - "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." + "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." - }, - "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-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-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 - } } } }, "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": [ - "incrementalcopy" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=appendblock": { - "put": { - "tags": [ - "appendblob" - ], - "consumes": [ - "application/octet-stream" + "/{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" ], - "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.", "parameters": [ { - "$ref": "#/parameters/Body" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/ContentMD5" - }, - { - "$ref": "#/parameters/ContentCrc64" + "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": "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/EncryptionKey" + "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/EncryptionKeySha256" + "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/EncryptionAlgorithm" + "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/EncryptionScope" + "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/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-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" + "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/StructuredBodyPut" + "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/StructuredContentLength" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The block was created.", + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, "headers": { + "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" + }, "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." - }, - "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." + "description": "The date/time that the container was last modified." }, - "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-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." + "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." - }, - "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-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." - }, - "x-ms-structured-body": { - "x-ms-client-name": "StructuredBodyType", - "type": "string", - "description": "Indicates the structured message body was accepted and mirrors back 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" } } + }, + "x-ms-pageable": { + "nextLinkName": "nextMarker" } - }, - "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=properties&Resize": { "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": "PageBlob_Resize", + "description": "The Resize operation increases the size of the page blob to the specified size.", "parameters": [ { - "$ref": "#/parameters/SourceUrl" - }, - { - "$ref": "#/parameters/SourceRange" - }, - { - "$ref": "#/parameters/SourceContentMD5" - }, - { - "$ref": "#/parameters/SourceContentCRC64" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/ContentMD5" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$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-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" + "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/IfMatch" + "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/IfNoneMatch" + "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/IfTags" + "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/SourceIfModifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/SourceIfUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/SourceIfMatch" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/SourceIfNoneMatch" + "$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" + "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/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-rfc1123", + "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." + "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-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-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." - }, - "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", - "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." - }, - "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." } } }, "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&UpdateSequenceNumber": { "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": "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" + "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 + }, + { + "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/LeaseIdOptional" + "$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/IfMatch" + "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/IfNoneMatch" + "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/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-rfc1123", + "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." + "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." + "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." - }, - "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" } } }, "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=incrementalcopy": { + "put": { + "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/QueryRequest" - }, - { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$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/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-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/ClientRequestId" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "Returns the content of the entire blob.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "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." - }, - "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." + "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 - } + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", + "Last-Modified": { "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." + "description": "The date/time that the container was last modified." }, - "x-ms-copy-status-description": { - "x-ms-client-name": "CopyStatusDescription", + "x-ms-client-request-id": { "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" + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, "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" - ], - "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" + "failed", + "aborted" ], "x-ms-enum": { - "name": "LeaseStatusType", - "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-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, 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." - }, - "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" } - }, + } + }, + "default": { + "description": "An unexpected error response.", "schema": { - "type": "object", - "format": "file" + "$ref": "#/definitions/StorageError" } + } + } + } + }, + "/{containerName}/{blob}?AppendBlob": { + "put": { + "operationId": "AppendBlob_Create", + "description": "The Create operation creates a new append blob.", + "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" }, - "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 + { + "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-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-content-crc64": { - "x-ms-client-name": "ContentCrc64", + ] + }, + "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/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" + }, + { + "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" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { "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)" + "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-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", + "Date": { "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 - } + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", + "ETag": { "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-rfc1123", + "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." }, - "Accept-Ranges": { + "x-ms-encryption-scope": { "type": "string", - "description": "Indicates that the service supports requests for partial blob content." + "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" - }, - "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-version": { "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 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-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" } }, "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": { - "get": { - "tags": [ - "blob" + "/{containerName}/{blob}?comp=appendblock": { + "put": { + "operationId": "AppendBlob_AppendBlock", + "description": "The Append Block operation commits a new block of data to the end of an append blob.", + "consumes": [ + "application/xml" ], - "operationId": "Blob_GetTags", - "description": "The Get Tags operation enables users to get the tags associated with 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/ApiVersionParameter" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ClientRequestId" + "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/VersionId" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/IfTags" + "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/LeaseIdOptional" - } - ], - "responses": { - "200": { - "description": "Retrieved blob tags", - "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/BlobTags" - } + "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" }, - "default": { - "description": "Failure", + { + "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" + }, + { + "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" + }, + { + "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/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" + }, + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" + "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-rfc1123", + "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-rfc1123", + "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": { + "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-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-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-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." } - }, + } + }, + "default": { + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, + } + }, + "/{containerName}/{blob}?comp=appendblock&fromUrl": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetTags", - "description": "The Set Tags operation enables users to set tags on a blob.", + "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/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}$" + }, + { + "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" + }, + { + "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" + }, + { + "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": "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." + } + ] + }, + "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" + }, + { + "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/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "$ref": "#/parameters/Timeout" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "$ref": "#/parameters/VersionId" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/ContentMD5" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" }, { - "$ref": "#/parameters/ContentCrc64" + "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-rfc1123", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "$ref": "#/parameters/ClientRequestId" + "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-rfc1123", + "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/LeaseIdOptional" + "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/BlobTagsBody" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "204": { - "description": "The tags were applied to the blob", + "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-rfc1123", + "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-rfc1123", + "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-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": { + "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-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-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-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" - } - }, + "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=seal": { + "put": { + "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": [ + { + "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 + }, + { + "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.ConditionalRequestHeaders.ifMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" + }, + "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." + }, + "x-ms-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." + } + } + }, + "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}?BlockBlob": { + "put": { + "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" + ], + "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": "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" + }, + { + "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" + }, + { + "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/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" + }, + { + "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" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } + } + ], + "responses": { + "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-rfc1123", + "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-rfc1123", + "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-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-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-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": { + "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": "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}/{blob}?BlockBlob&fromUrl": { + "put": { + "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": [ + { + "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" + }, + { + "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" + }, + { + "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/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" + }, + { + "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-rfc1123", + "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-rfc1123", + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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/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": { + "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-rfc1123", + "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-rfc1123", + "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-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-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-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": { + "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": "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": { - "type": "string", - "xml": { - "attribute": true + "/{containerName}/{blob}?comp=block": { + "put": { + "operationId": "BlockBlob_StageBlock", + "description": "The Stage Block operation creates a new block to be committed as part of a blob", + "consumes": [ + "application/octet-stream" + ], + "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": "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" + }, + { + "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-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" + }, + { + "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" + }, + { + "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-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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } - }, - "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" + ], + "responses": { + "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-rfc1123", + "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-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": { + "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-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-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." + } + } + }, + "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}/{blob}?comp=block&fromURL": { + "put": { + "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": [ + { + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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-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" + }, + { + "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-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-rfc1123", + "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-rfc1123", + "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-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/Azure.Core.ClientRequestIdHeader" } - }, - "BlobItems": { - "type": "array", - "items": { - "$ref": "#/definitions/BlobItemInternal" + ], + "responses": { + "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-rfc1123", + "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-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": { + "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-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-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." + } + } + }, + "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}/{blob}?comp=blocklist": { + "put": { + "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" + ], + "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." - } - } - }, - "BlobTag": { - "xml": { - "name": "Tag" - }, - "type": "object", - "required": [ - "Key", - "Value" - ], - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - } - }, - "BlobTags": { - "type": "object", - "xml": { - "name": "Tags" - }, - "description": "Blob tags", - "required": [ - "BlobTagSet" - ], - "properties": { - "BlobTagSet": { - "xml": { - "wrapped": true, - "name": "TagSet" + { + "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}$" }, - "type": "array", - "items": { - "$ref": "#/definitions/BlobTag" - } - } - } - }, - "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 + { + "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 }, - "type": "array", - "items": { - "$ref": "#/definitions/Block" - } - }, - "UncommittedBlocks": { - "xml": { - "wrapped": true + { + "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" }, - "type": "array", - "items": { - "$ref": "#/definitions/Block" - } - } - } - }, - "BlockLookupList": { - "type": "object", - "properties": { - "Committed": { - "type": "array", - "items": { + { + "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": "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-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" + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "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" + }, + { + "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" + }, + { + "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/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" + }, + { + "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" + }, + { + "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-rfc1123", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, "type": "string", - "xml": { - "name": "Committed" + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "blocks", + "in": "body", + "description": "Blob Blocks.", + "required": true, + "schema": { + "$ref": "#/definitions/BlockLookupList" } } - }, - "Uncommitted": { - "type": "array", - "items": { - "type": "string", - "xml": { - "name": "Uncommitted" + ], + "responses": { + "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-rfc1123", + "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-rfc1123", + "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-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": { + "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-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-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": { + "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." + } } - } - }, - "Latest": { - "type": "array", - "items": { - "type": "string", - "xml": { - "name": "Latest" + }, + "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" - } - }, - "HeadersPresent": { - "type": "boolean", - "description": "Represents whether the data has headers.", - "xml": { - "name": "HasHeaders" - } - } - } - }, - "JsonTextConfiguration": { - "xml": { - "name": "JsonTextConfiguration" - }, - "description": "json text configuration", - "type": "object", - "properties": { - "RecordSeparator": { - "type": "string", - "description": "The string used to separate records.", - "xml": { - "name": "RecordSeparator" - } - } } }, - "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" + "/{containerName}/{blob}?comp=blocklist&_overload=getBlockList": { + "get": { + "operationId": "BlockBlob_GetBlockList", + "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": [ + { + "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" }, - "xml": { - "wrapped": true, - "name": "Schema" - } - } - } - }, - "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 - } - }, - "Prefix": { - "type": "string" - }, - "Marker": { - "type": "string" - }, - "MaxResults": { - "type": "integer" - }, - "ContainerItems": { - "xml": { - "wrapped": true, - "name": "Containers" + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, - "type": "array", - "items": { - "$ref": "#/definitions/ContainerItem" - } - }, - "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 - } - }, - "Where": { - "type": "string" - }, - "Blobs": { - "xml": { - "name": "Blobs", - "wrapped": true + { + "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}$" }, - "type": "array", - "items": { - "$ref": "#/definitions/FilterBlobItem" + { + "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": "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": "Uncomitted", + "value": "uncommitted", + "description": "The list of uncommitted blocks." + }, + { + "name": "All", + "value": "all", + "description": "Both lists together." + } + ] + }, + "x-ms-client-name": "listType" + }, + { + "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-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.", + "schema": { + "$ref": "#/definitions/BlockLookupList" + }, + "headers": { + "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" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "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." + }, + "x-ms-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." + } + } + }, + "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" - } - } - }, - "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" } } }, - "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": "Service_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." + }, + "x-ms-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." + } + } + }, + "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": "Service_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-rfc1123", + "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." + }, + "x-ms-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." + } + } + }, + "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": "Service_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." + }, + "x-ms-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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } }, - "NextMarker": { - "type": "string" + "x-ms-pageable": { + "nextLinkName": "NextMarker" } } }, - "PageRange": { - "type": "object", - "required": [ - "Start", - "End" - ], - "properties": { - "Start": { - "type": "integer", - "format": "int64", - "xml": { - "name": "Start" + "/?restype=account&comp=properties": { + "get": { + "operationId": "Service_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-rfc1123", + "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." + } + ] + } + }, + "x-ms-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." + } + } + }, + "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": "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.", + "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-rfc1123", + "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." + }, + "x-ms-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." + } + } + }, + "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" - } + "format": "date-time", + "description": "The date-time the policy expires." }, - "InputSerialization": { - "$ref": "#/definitions/QuerySerialization", - "xml": { - "name": "InputSerialization" - } - }, - "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" + "scale": { + "type": "integer", + "format": "int32", + "description": "The arrow field scale." } - } - } - }, - "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" + }, + "required": [ + "type" ] }, - "Blob": { - "name": "blob", - "in": "path", - "required": true, + "Azure.Core.uuid": { "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)." + "format": "uuid", + "description": "Universally Unique Identifier" }, - "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", + "BlobCopySourceTags": { "type": "string", + "description": "The blob copy source tags types.", "enum": [ - "container", - "blob" + "REPLACE", + "COPY" ], "x-ms-enum": { - "name": "PublicAccessType", - "modelAsString": true + "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." + } + ] } }, - "BlobTagsBody": { - "name": "Tags", - "in": "body", - "schema": { - "$ref": "#/definitions/BlobTags" - }, - "x-ms-parameter-location": "method", - "description": "Blob tags" - }, - "BlobTagsHeader": { - "name": "x-ms-tags", - "x-ms-client-name": "BlobTagsString", - "in": "header", - "required": false, - "type": "string", - "x-ms-parameter-location": "method", - "description": "Optional. Used to set blob tags in various blob operations." - }, - "AccessTierRequired": { - "name": "x-ms-access-tier", - "x-ms-client-name": "tier", - "in": "header", - "required": true, + "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": "Indicates the tier to be set on the blob." + "name": "BlobDeleteType", + "modelAsString": true, + "values": [ + { + "name": "Permanent", + "value": "Permanent", + "description": "Permanently delete the blob." + } + ] + } }, - "AccessTierOptional": { - "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", - "Hot", - "Cool", - "Archive", - "Cold" + "NeverExpire", + "RelativeToCreation", + "RelativeToNow", + "Absolute" ], "x-ms-enum": { - "name": "AccessTier", - "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 blob." + "required": [ + "blobItems" + ] }, - "PremiumPageBlobAccessTierOptional": { - "name": "x-ms-access-tier", - "x-ms-client-name": "tier", - "in": "header", - "required": false, - "type": "string", - "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80" - ], - "x-ms-enum": { - "name": "PremiumPageBlobAccessTier", - "modelAsString": true + "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": [] + } }, - "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, + "BlobImmutabilityPolicyMode": { "type": "string", + "description": "The immutability policy mode.", "enum": [ - "High", - "Standard" + "Mutable", + "Locked", + "Unlocked" ], "x-ms-enum": { - "name": "RehydratePriority", - "modelAsString": true - }, - "x-ms-parameter-location": "method", - "description": "Optional: Indicates the priority with which to rehydrate an archived blob." + "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." + } + ] + } }, - "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" + "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." + } }, - "description": "Optional. Sets the blob's Content-Disposition header." + "required": [ + "name", + "deleted", + "snapshot", + "properties" + ] }, - "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" + "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 encoding. If specified, this property is stored with the blob and returned with a read request." + "additionalProperties": { + "type": "string" + } }, - "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" + "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. 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." + "required": [ + "encoded", + "content" + ] }, - "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." + "BlobPrefix": { + "type": "object", + "description": "Represents a blob prefix.", + "properties": { + "name": { + "$ref": "#/definitions/BlobName", + "description": "The blob name." + } + }, + "required": [ + "name" + ] }, - "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" + "BlobPropertiesInternal": { + "type": "object", + "description": "The properties of a blob.", + "properties": { + "creationTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date-time the blob was created in RFC1123 format." + }, + "lastModified": { + "type": "string", + "format": "date-time-rfc1123", + "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-rfc1123", + "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 desination snapshot." + }, + "deletedTime": { + "type": "string", + "format": "date-time-rfc1123", + "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-rfc1123", + "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-rfc1123", + "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-rfc1123", + "description": "The last access time of the blob." + }, + "immutabilityPolicyUntilDate": { + "type": "string", + "format": "date-time-rfc1123", + "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. 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": [ + "lastModified", + "eTag" + ] }, - "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" + "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. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request." + "required": [ + "key", + "value" + ] }, - "BlobDeleteType": { - "name": "deletetype", - "x-ms-client-name": "blobDeleteType", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "Permanent" - ], - "x-ms-enum": { - "name": "BlobDeleteType", - "modelAsString": false + "BlobTags": { + "type": "object", + "description": "Represents blob tags.", + "properties": { + "blobTagSet": { + "type": "array", + "description": "Represents the blob tags.", + "items": { + "$ref": "#/definitions/BlobTag" + }, + "x-ms-identifiers": [] + } }, - "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." + "required": [ + "blobTagSet" + ] }, - "BlobExpiryOptions": { - "name": "x-ms-expiry-option", - "x-ms-client-name": "ExpiryOptions", - "in": "header", - "required": true, + "BlobType": { "type": "string", + "description": "The blob type.", "enum": [ - "NeverExpire", - "RelativeToCreation", - "RelativeToNow", - "Absolute" + "BlockBlob", + "PageBlob", + "AppendBlob" ], "x-ms-enum": { - "name": "BlobExpiryOptions", - "modelAsString": true - }, - "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." - }, - "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." + "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." + } + ] + } }, "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 +14449,1450 @@ ], "x-ms-enum": { "name": "BlockListType", - "modelAsString": false + "modelAsString": true, + "values": [ + { + "name": "Committed", + "value": "committed", + "description": "The list of committed blocks." + }, + { + "name": "Uncomitted", + "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." + "required": [ + "start", + "end" + ] }, - "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." + "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": { + "$ref": "#/definitions/ContainerMetadata", + "description": "The metadata of the container." + } + }, + "required": [ + "name", + "properties" + ] }, - "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." + "ContainerMetadata": { + "type": "object", + "description": "The metadata of a container.", + "additionalProperties": { + "type": "string" + } }, - "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-rfc1123", + "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-rfc1123", + "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-rfc1123", + "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 segement 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." + }, + "maxxResults": { + "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" } } } From da04a914b37a2595d9f71df654d20cd22c3cfc76 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 5 Nov 2024 20:31:52 -0800 Subject: [PATCH 085/129] reset swagger --- .../stable/2021-12-02/blob.json | 21521 +++++++--------- 1 file changed, 9080 insertions(+), 12441 deletions(-) diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json index 0dec18068bdd..26499054713c 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2021-12-02/blob.json @@ -1,2817 +1,2759 @@ { "swagger": "2.0", "info": { - "title": "Azure Storage Blob service", + "title": "Azure Blob Storage", "version": "2021-12-02", - "x-typespec-generated": [ - { - "emitter": "@azure-tools/typespec-autorest" - } - ] + "x-ms-code-generation-settings": { + "header": "MIT", + "strictSpecAdherence": false + } }, - "schemes": [ - "https" - ], "x-ms-parameterized-host": { "hostTemplate": "{url}", "useSchemePrefix": false, + "positionInOperation": "first", "parameters": [ { - "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 + "$ref": "#/parameters/Url" } ] }, - "produces": [ - "application/json" + "schemes": [ + "https" ], "consumes": [ - "application/json" + "application/xml" ], - "security": [ - { - "ApiKeyAuth": [] - }, - { - "OAuth2Auth": [ - "https://storage.azure.com/.default" - ] - } + "produces": [ + "application/xml" ], - "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": "Service_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" + "paths": {}, + "x-ms-paths": { + "/?restype=service&comp=properties": { + "put": { + "tags": [ + "service" ], + "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": [ { - "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/StorageServiceProperties" + }, + { + "$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" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/StorageServiceProperties" - }, + "202": { + "description": "Success (Accepted)", "headers": { "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." } } }, "default": { - "description": "An unexpected error response.", + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, "schema": { "$ref": "#/definitions/StorageError" } } } }, - "put": { - "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", - "consumes": [ - "application/xml" + "get": { + "tags": [ + "service" ], + "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": [ { - "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/Timeout" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ApiVersionParameter" }, { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StorageServiceProperties" - } + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "200": { + "description": "Success.", "headers": { "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." } + }, + "schema": { + "$ref": "#/definitions/StorageServiceProperties" } }, "default": { - "description": "An unexpected error response.", + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, "schema": { "$ref": "#/definitions/StorageError" } } } }, - "post": { - "operationId": "Service_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" + "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" ], + "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": [ { - "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/Timeout" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ApiVersionParameter" }, { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/KeyInfo" - } + "$ref": "#/parameters/ClientRequestId" } ], "responses": { "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/UserDelegationKey" - }, + "description": "Success.", "headers": { - "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-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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/StorageServiceStats" } }, "default": { - "description": "An unexpected error response.", + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, "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" + ] + } + ] }, - "/{containerName}": { + "/?comp=list": { "get": { - "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", + "tags": [ + "service" + ], + "operationId": "Service_ListContainersSegment", + "description": "The List Containers Segment operation returns a list of the containers under the specified account", "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/Prefix" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/Marker" }, { - "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/MaxResults" }, { - "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/ListContainersInclude" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "Success.", "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - }, - "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": "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." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." } + }, + "schema": { + "$ref": "#/definitions/ListContainersSegmentResponse" } }, "default": { - "description": "An unexpected error response.", + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, "schema": { "$ref": "#/definitions/StorageError" } } + }, + "x-ms-pageable": { + "nextLinkName": "NextMarker" } }, - "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": [ + { + "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.", "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-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/KeyInfo" }, { - "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/Timeout" }, { - "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/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "Success.", "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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/UserDelegationKey" } }, "default": { - "description": "An unexpected error response.", + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, "schema": { "$ref": "#/definitions/StorageError" } } } }, - "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" + "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" ], + "operationId": "Service_GetAccountInfo", + "description": "Returns the sku name and account kind ", "parameters": [ { - "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/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } + "$ref": "#/parameters/ApiVersionParameter" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", - "schema": { - "type": "file" - }, + "200": { + "description": "Success (OK)", "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." } } }, "default": { - "description": "An unexpected error response.", + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, "schema": { "$ref": "#/definitions/StorageError" } } } }, - "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": [ + { + "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.", "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" + "$ref": "#/parameters/Body" }, { - "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/ContentLength" }, { - "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/MultipartContentType" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/Timeout" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "200": { + "description": "Success.", "headers": { - "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-client-request-id": { + "Content-Type": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "description": "The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID" }, "x-ms-request-id": { + "x-ms-client-name": "RequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." } + }, + "schema": { + "type": "object", + "format": "file" } }, "default": { - "description": "An unexpected error response.", + "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": [ + "batch" + ] + } + ] }, - "/{containerName}/{blob}": { + "/?comp=blobs": { "get": { - "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" + "tags": [ + "service" ], + "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": [ { - "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" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ApiVersionParameter" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/ClientRequestId" }, { - "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/FilterBlobsWhere" }, { - "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": "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/MaxResults" }, { - "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/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" + } }, + "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": [ { - "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": "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/Metadata" }, { - "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/BlobPublicAccess" }, { - "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/DefaultEncryptionScope" }, { - "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/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" + } + } }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "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": [ { - "$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/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { "200": { - "description": "The request has succeeded.", - "schema": { - "type": "file" - }, + "description": "Success", "headers": { - "Accept-Ranges": { + "x-ms-meta": { "type": "string", - "description": "Indicates that the service supports requests for partial blob content." + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" }, - "Cache-Control": { + "ETag": { "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "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-Disposition": { + "Last-Modified": { "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": "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-Encoding": { + "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", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } }, - "Content-Language": { + "x-ms-lease-state": { + "x-ms-client-name": "LeaseState", + "description": "Lease state of the blob.", "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." + "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-MD5": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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." + "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-Range": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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." + "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" }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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-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": { + "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", "type": "string", - "description": "The type of the blob.", "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" + "container", + "blob" ], "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." - } - ] + "name": "PublicAccessType", + "modelAsString": true } }, - "x-ms-client-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "x-ms-has-immutability-policy": { + "x-ms-client-name": "HasImmutabilityPolicy", + "description": "Indicates whether the container has an immutability policy set on it.", + "type": "boolean" }, - "x-ms-copy-completion-time": { - "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-has-legal-hold": { + "x-ms-client-name": "HasLegalHold", + "description": "Indicates whether the container has a legal hold.", + "type": "boolean" }, - "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-default-encryption-scope": { + "x-ms-client-name": "DefaultEncryptionScope", + "description": "The default encryption scope for the container.", + "type": "string" }, - "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-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-copy-source": { + "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": "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." + "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-copy-status": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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." - } - ] - } + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-copy-status-description": { + "x-ms-version": { + "x-ms-client-name": "Version", "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": "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-creation-time": { + "Date": { "type": "string", "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was created." - }, - "x-ms-encryption-key-sha256": { + "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": { "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 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-encryption-scope": { + "Last-Modified": { "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" + "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-immutability-policy-mode": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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." - } - ] - } + "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-immutability-policy-until-date": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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-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." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-last-access-time": { + "x-ms-version": { + "x-ms-client-name": "Version", "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-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." + "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-state": { + "Date": { "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": { + "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", "type": "string", - "description": "The lease status of the blob.", "enum": [ - "unlocked", - "locked" + "container", + "blob" ], "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." - } - ] + "name": "PublicAccessType", + "modelAsString": true } }, - "x-ms-legal-hold": { - "type": "boolean", - "description": "Specifies the legal hold status to set on the blob." - }, - "x-ms-meta": { + "ETag": { "type": "string", - "description": "The metadata headers." + "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-or": { + "Last-Modified": { "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)." + "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-or-policy-id": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + "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", - "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-tag-count": { - "type": "integer", - "format": "int64", - "description": "The number of tags associated with the blob" + "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": { + "Date": { "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": "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" } }, - "206": { - "description": "Successful", - "schema": { - "type": "file" + "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": { - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "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-Encoding": { - "type": "string", - "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." - }, - "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." - }, - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "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-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." - } - ] - } + "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", - "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-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-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-rfc1123", - "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-rfc1123", - "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-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-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." + "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", - "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-tag-count": { - "type": "integer", - "format": "int64", - "description": "The number of tags associated with the blob" + "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": { + "Date": { "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": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" } } }, "default": { - "description": "An unexpected error response.", + "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": { - "operationId": "Blob_Undelete", - "description": "Undelete a blob that was previously soft deleted", + "tags": [ + "container" + ], + "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" + "$ref": "#/parameters/Timeout" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/ApiVersionParameter" }, { - "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/ClientRequestId" }, { - "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/DeletedContainerName" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/DeletedContainerVersion" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "Created.", "headers": { - "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-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" } } } }, - "post": { - "operationId": "Blob_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/octet-stream" + "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": [ { - "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/ApiVersionParameter" }, { - "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/ClientRequestId" + }, + { + "$ref": "#/parameters/SourceContainerName" + }, + { + "$ref": "#/parameters/SourceLeaseId" + } + ], + "responses": { + "200": { + "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." + }, + "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" + } + }, + "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": [ { - "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/Body" }, { - "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/ContentLength" }, { - "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/MultipartContentType" }, { - "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/ApiVersionParameter" }, { - "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." - } - ] + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "202": { + "description": "Success.", + "headers": { + "Content-Type": { + "type": "string", + "description": "The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID" + }, + "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-client-name": "encryptionAlgorithm" + "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/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/Timeout" }, { - "$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/FilterBlobsWhere" }, { - "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/Marker" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/MaxResults" }, { - "name": "queryRequest", - "in": "body", - "description": "The query request", - "required": true, - "schema": { - "$ref": "#/definitions/QueryRequest" - } + "$ref": "#/parameters/FilterBlobsInclude" } ], "responses": { "200": { - "description": "The request has succeeded.", - "schema": { - "type": "file" - }, + "description": "Success", "headers": { - "Accept-Ranges": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "Indicates that the service supports requests for partial blob content." + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." }, - "Cache-Control": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "Content-Disposition": { + "x-ms-version": { + "x-ms-client-name": "Version", "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." + "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." }, - "Content-Encoding": { + "Date": { "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "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" + } + }, + "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." }, - "Content-Language": { + "Last-Modified": { "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." + "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-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a container's lease" }, - "Content-MD5": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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." + "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-Range": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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." + "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" + } + }, + "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", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The Release operation completed successfully.", + "headers": { "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "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." + "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-content-md5": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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": "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-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-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-blob-type": { + "x-ms-version": { + "x-ms-client-name": "Version", "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." - } - ] - } + "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-client-request-id": { + "Date": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - }, - "x-ms-content-crc64": { + "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": [ + "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" + ], + "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" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The Renew operation completed successfully.", + "headers": { + "ETag": { "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." + "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-copy-completion-time": { + "Last-Modified": { "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." + "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-copy-id": { + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", "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 container's lease" }, - "x-ms-copy-progress": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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" + "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-copy-source": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-copy-status": { + "x-ms-version": { + "x-ms-client-name": "Version", "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." - } - ] - } + "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-copy-status-description": { + "Date": { "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": { + "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": [ + "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 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 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-encryption-scope": { + "Last-Modified": { "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" + "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-lease-duration": { + "x-ms-lease-time": { + "x-ms-client-name": "LeaseTime", "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." - } - ] - } + "description": "Approximate time remaining in the lease period, in seconds." }, - "x-ms-meta": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "The metadata headers." + "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", - "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." + "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" } } }, - "206": { - "description": "Successful", - "schema": { - "type": "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": "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": { - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "Cache-Control": { + "ETag": { "type": "string", - "description": "This header is returned if it was previously specified for the blob." + "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-Disposition": { + "Last-Modified": { "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": "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-Encoding": { + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "description": "Uniquely identifies a container's lease" }, - "Content-Language": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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." + "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-MD5": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "Content-Range": { + "x-ms-version": { + "x-ms-client-name": "Version", "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." + "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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": { - "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-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-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-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." - }, - "x-ms-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." } } }, "default": { - "description": "An unexpected error response.", + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, "schema": { "$ref": "#/definitions/StorageError" } } } }, - "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/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": [ { - "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-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/Prefix" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/Marker" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/MaxResults" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/ListBlobsInclude" }, { - "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" }, { - "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/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "200": { + "description": "Success.", "headers": { - "Date": { + "Content-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 media type of the body of the response. For List Blobs this is 'application/xml'" }, "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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/ListBlobsFlatSegmentResponse" } }, "default": { - "description": "An unexpected error response.", + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, "schema": { "$ref": "#/definitions/StorageError" } } + }, + "x-ms-pageable": { + "nextLinkName": "NextMarker" } }, - "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/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": [ { - "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" + "$ref": "#/parameters/Prefix" }, { - "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/Delimiter" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/Marker" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/MaxResults" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/ListBlobsInclude" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/Timeout" }, { - "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" } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "Success.", "headers": { - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "Cache-Control": { - "type": "string", - "description": "This header is returned if it was previously specified for the blob." - }, - "Content-Disposition": { + "Content-Type": { "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." + "description": "The media type of the body of the response. For List Blobs this is 'application/xml'" }, - "Content-Encoding": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "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-Language": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "Content-MD5": { + "x-ms-version": { + "x-ms-client-name": "Version", "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." + "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, - "x-ms-access-tier": { - "type": "string", - "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." - } - ] - } - }, - "x-ms-access-tier-change-time": { - "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." - }, - "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." - }, - "x-ms-archive-status": { - "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.", - "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": { + } + }, + "schema": { + "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" + } + }, + "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=account&comp=properties": { + "get": { + "tags": [ + "container" + ], + "operationId": "Container_GetAccountInfo", + "description": "Returns the sku name and account kind ", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success (OK)", + "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" + } + } + }, + "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": [ + "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.", + "parameters": [ + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/VersionId" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Range" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/GetRangeContentMD5" + }, + { + "$ref": "#/parameters/GetRangeContentCRC64" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Returns the content of the entire 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." + }, + "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." + }, + "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": "int32", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + "format": "int64", + "description": "The number of bytes present in the response body." }, - "x-ms-blob-sealed": { - "type": "boolean", - "description": "If this blob has been sealed" + "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." + "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", @@ -2819,166 +2761,67 @@ ], "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." - } - ] + "modelAsString": false } }, - "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", "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-destination-snapshot": { + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", "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." + "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": { - "type": "string", + "x-ms-client-name": "CopyStatus", "description": "State of the copy operation identified by x-ms-copy-id.", + "type": "string", "enum": [ "pending", "success", - "failed", - "aborted" + "aborted", + "failed" ], "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." - } - ] + "name": "CopyStatusType", + "modelAsString": false } }, - "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-rfc1123", - "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-expiry-time": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The time this blob will expire." - }, - "x-ms-immutability-policy-mode": { + "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", - "description": "Indicates the immutability policy mode of the blob.", "enum": [ - "Mutable", - "Locked", - "Unlocked" + "infinite", + "fixed" ], "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." - } - ] + "name": "LeaseDurationType", + "modelAsString": false } }, - "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 blob immutability policy will expire." - }, - "x-ms-incremental-copy": { - "type": "boolean", - "description": "Included if the blob is incremental copy 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-last-access-time": { - "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-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", + "x-ms-client-name": "LeaseState", "description": "Lease state of the blob.", + "type": "string", "enum": [ "available", "leased", @@ -2987,11223 +2830,8615 @@ "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." - } - ] + "name": "LeaseStateType", + "modelAsString": false } }, "x-ms-lease-status": { + "x-ms-client-name": "LeaseStatus", + "description": "The current lease status of the blob.", "type": "string", - "description": "The lease status of the blob.", "enum": [ - "unlocked", - "locked" + "locked", + "unlocked" ], "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." - } - ] + "name": "LeaseStatusType", + "modelAsString": false } }, - "x-ms-legal-hold": { - "type": "boolean", - "description": "Specifies the legal hold status to set on the blob." - }, - "x-ms-meta": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "The metadata headers." + "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-or": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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)." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-or-policy-id": { + "x-ms-version": { + "x-ms-client-name": "Version", "type": "string", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + "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-rehydrate-priority": { + "x-ms-version-id": { + "x-ms-client-name": "VersionId", "type": "string", - "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." - } - ] - } + "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-request-id": { + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "description": "Indicates that the service supports requests for partial blob content." }, - "x-ms-request-server-encrypted": { + "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 contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + "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-version": { + "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", - "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-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-version-id": { + "x-ms-immutability-policy-until-date": { + "x-ms-client-name": "ImmutabilityPolicyExpiresOn", "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": "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": "An unexpected error response.", + }, "schema": { - "$ref": "#/definitions/StorageError" + "type": "object", + "format": "file" } - } - } - } - } - }, - "x-ms-paths": { - "/{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-rfc1123", - "x-ms-client-name": "ifModifiedSince" }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", + "206": { + "description": "Returns the content of a specified range of the blob.", "headers": { - "Date": { + "Last-Modified": { "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": "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": { + "x-ms-creation-time": { + "x-ms-client-name": "CreationTime", "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was created." }, - "Last-Modified": { + "x-ms-meta": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" }, - "x-ms-client-request-id": { + "x-ms-or-policy-id": { + "x-ms-client-name": "ObjectReplicationPolicyId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-or": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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)." }, - "x-ms-version": { + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-Type": { "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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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": { + "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" + }, + "Content-Range": { "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": "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." + "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": { + "Content-MD5": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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-public-access": { + "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", - "description": "The public access setting for the container.", "enum": [ - "blob", - "container" + "BlockBlob", + "PageBlob", + "AppendBlob" ], "x-ms-enum": { - "name": "PublicAccessType", - "modelAsString": true, - "values": [ - { - "name": "Blob", - "value": "blob", - "description": "Blob access." - }, - { - "name": "Container", - "value": "container", - "description": "Container access." - } - ] + "name": "BlobType", + "modelAsString": false } }, - "x-ms-client-request-id": { + "x-ms-content-crc64": { + "x-ms-client-name": "ContentCrc64", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-request-id": { + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-version": { + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", "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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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" - }, - { - "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-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-rfc1123", - "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-rfc1123", - "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" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "Date": { + "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", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "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." }, - "ETag": { + "x-ms-copy-progress": { + "x-ms-client-name": "CopyProgress", "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": { + "x-ms-client-name": "CopySource", "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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": { + }, + "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." + }, + "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-client-request-id": { + "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", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for 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-request-id": { + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-version": { + "x-ms-blob-content-md5": { + "x-ms-client-name": "BlobContentMD5", "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": "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." } + }, + "schema": { + "type": "object", + "format": "file" } }, "default": { - "description": "An unexpected error response.", + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, "schema": { "$ref": "#/definitions/StorageError" } } } - } - }, - "/{containerName}?restype=container&comp=rename": { - "put": { - "operationId": "Container_Rename", - "description": "Renames an existing container.", + }, + "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.", "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/Snapshot" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/VersionId" }, { - "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" + "$ref": "#/parameters/Timeout" }, { - "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" + "$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/EncryptionKey" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-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." - }, - "x-ms-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." - } - } + "$ref": "#/parameters/EncryptionKeySha256" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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" + "$ref": "#/parameters/EncryptionAlgorithm" }, { - "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/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/FilterBlobSegment" - }, + "description": "Returns the properties of the blob.", "headers": { - "Date": { + "Last-Modified": { "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": "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-client-request-id": { + "x-ms-creation-time": { + "x-ms-client-name": "CreationTime", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was created." }, - "x-ms-request-id": { + "x-ms-meta": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" }, - "x-ms-version": { + "x-ms-or-policy-id": { + "x-ms-client-name": "ObjectReplicationPolicyId", "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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?comp=lease&restype=container&acquire": { - "put": { - "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": [ - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", - "headers": { - "Date": { + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + }, + "x-ms-or": { "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-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)." }, - "ETag": { + "x-ms-blob-type": { + "x-ms-client-name": "BlobType", + "description": "The blob's type.", "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } }, - "Last-Modified": { + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", "type": "string", "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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-client-request-id": { + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-lease-id": { + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", "type": "string", - "description": "Uniquely identifies a blobs' lease" + "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-request-id": { + "x-ms-copy-progress": { + "x-ms-client-name": "CopyProgress", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-version": { + "x-ms-copy-source": { + "x-ms-client-name": "CopySource", "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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?comp=lease&restype=container&release": { - "put": { - "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", - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "Date": { + "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", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "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." + "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": { + "Content-MD5": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?comp=lease&restype=container&renew": { - "put": { - "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": [ - { - "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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { + }, "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" }, - "ETag": { + "Accept-Ranges": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "description": "Indicates that the service supports requests for partial blob content." }, - "Last-Modified": { + "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", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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-client-request-id": { + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-lease-id": { + "x-ms-access-tier": { + "x-ms-client-name": "AccessTier", "type": "string", - "description": "Uniquely identifies a blobs' lease" + "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." }, - "x-ms-request-id": { + "x-ms-access-tier-inferred": { + "x-ms-client-name": "AccessTierInferred", + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-version": { + "x-ms-access-tier-change-time": { + "x-ms-client-name": "AccessTierChangeTime", "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-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." + }, + "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": "An unexpected error response.", + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, "schema": { "$ref": "#/definitions/StorageError" } } } - } - }, - "/{containerName}?comp=lease&restype=container&break": { - "put": { - "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", + }, + "delete": { + "tags": [ + "blob" + ], + "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": [ { - "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/Snapshot" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/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 + "$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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/LeaseIdOptional" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/DeleteSnapshots" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" }, { - "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/ClientRequestId" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/BlobDeleteType" } ], "responses": { "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "description": "The delete request was accepted and the blob will be deleted.", "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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": "An unexpected error response.", + "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" + } + ] }, - "/{containerName}?comp=lease&restype=container&change": { + "/{containerName}/{blob}?PageBlob": { "put": { - "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", + "tags": [ + "blob" + ], + "operationId": "PageBlob_Create", + "description": "The Create operation creates a new page blob.", + "consumes": [ + "application/octet-stream" + ], "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/Timeout" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/ContentLength" }, { - "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/PremiumPageBlobAccessTierOptional" }, { - "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" + "$ref": "#/parameters/BlobContentType" }, { - "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/BlobContentEncoding" }, { - "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-rfc1123", - "x-ms-client-name": "ifModifiedSince" + "$ref": "#/parameters/BlobContentLanguage" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/BlobContentMD5" + }, + { + "$ref": "#/parameters/BlobCacheControl" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/BlobContentDisposition" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$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/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/LegalHoldOptional" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The blob was created.", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." + "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": { + "Content-MD5": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-lease-id": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "description": "Uniquely identifies a blobs' lease" + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." } } }, "default": { - "description": "An unexpected error response.", + "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": "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}?restype=container&comp=list&flat": { - "get": { - "operationId": "Container_ListBlobFlatSegment", - "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", - "produces": [ - "application/xml", - "application/json" + "/{containerName}/{blob}?AppendBlob": { + "put": { + "tags": [ + "blob" + ], + "operationId": "AppendBlob_Create", + "description": "The Create Append Blob operation creates a new append blob.", + "consumes": [ + "application/octet-stream" ], "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/Timeout" }, { - "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" + "$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/BlobContentType" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/ListBlobsFlatSegmentResponse" - }, - "headers": { - "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-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." - }, - "x-ms-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." - } - } + "$ref": "#/parameters/BlobContentEncoding" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextMarker" - } - } - }, - "/{containerName}?restype=container&comp=list&hierarchy": { - "get": { - "operationId": "Container_ListBlobHierarchySegment", - "description": "[Update] 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" + "$ref": "#/parameters/BlobContentLanguage" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/BlobContentMD5" }, { - "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" + "$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" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" - }, - "headers": { - "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-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." - }, - "x-ms-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." - } - } + "$ref": "#/parameters/LeaseIdOptional" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextMarker" - } - } - }, - "/{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" + "$ref": "#/parameters/BlobContentDisposition" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/EncryptionKey" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-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-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." - } - ] - } - }, - "x-ms-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." - } - } + "$ref": "#/parameters/EncryptionKeySha256" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=expiry": { - "put": { - "operationId": "Blob_SetExpiry", - "description": "Set the expiration time of a blob", - "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/EncryptionAlgorithm" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/EncryptionScope" }, { - "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": "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/IfMatch" }, { - "name": "x-ms-expiry-time", - "in": "header", - "description": "The time this blob will expire.", - "required": false, - "type": "string", - "format": "date-time-rfc1123", - "x-ms-client-name": "ExpiresOn" + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiry" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ImmutabilityPolicyMode" + }, + { + "$ref": "#/parameters/LegalHoldOptional" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The blob was created.", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." + "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", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." } } }, "default": { - "description": "An unexpected error response.", + "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": "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}?comp=properties&SetHTTPHeaders": { + "/{containerName}/{blob}?BlockBlob": { "put": { - "operationId": "Blob_SetHttpHeaders", - "description": "The Set HTTP Headers operation sets system properties on the blob.", + "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" + ], "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/Body" }, { - "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/ContentMD5" }, { - "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/ContentLength" }, { - "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/BlobContentType" }, { - "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/BlobContentEncoding" }, { - "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/BlobContentLanguage" }, { - "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/BlobContentMD5" }, { - "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/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" + "$ref": "#/parameters/Metadata" }, { - "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/BlobContentDisposition" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/EncryptionKey" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/EncryptionKeySha256" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/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/EncryptionScope" + }, + { + "$ref": "#/parameters/AccessTierOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiry" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyMode" + }, + { + "$ref": "#/parameters/LegalHoldOptional" + }, + { + "$ref": "#/parameters/ContentCrc64" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The blob was updated.", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." + "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": { - "type": "integer", - "format": "int64", - "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + "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", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } + }, + "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." + } + } + }, + "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": "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=immutabilityPolicies": { + "/{containerName}/{blob}?BlockBlob&fromUrl": { "put": { - "operationId": "Blob_SetImmutabilityPolicy", - "description": "Set the immutability policy of a blob", + "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" + ], "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/Timeout" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/ContentMD5" }, { - "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/BlobContentType" }, { - "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-rfc1123", - "x-ms-client-name": "ifUnmodifiedSince" + "$ref": "#/parameters/BlobContentEncoding" }, { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" + "$ref": "#/parameters/BlobContentLanguage" }, { - "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/BlobContentMD5" + }, + { + "$ref": "#/parameters/BlobCacheControl" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/LeaseIdOptional" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/BlobContentDisposition" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/AccessTierOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/SourceIfModifiedSince" + }, + { + "$ref": "#/parameters/SourceIfUnmodifiedSince" + }, + { + "$ref": "#/parameters/SourceIfMatch" + }, + { + "$ref": "#/parameters/SourceIfNoneMatch" + }, + { + "$ref": "#/parameters/SourceIfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/SourceContentMD5" + }, + { + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/CopySource" + }, + { + "$ref": "#/parameters/CopySourceBlobProperties" + }, + { + "$ref": "#/parameters/CopySourceAuthorization" + }, + { + "$ref": "#/parameters/CopySourceTags" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The blob was updated.", "headers": { - "Date": { + "ETag": { "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 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-client-request-id": { + "Last-Modified": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-immutability-policy-mode": { + "Content-MD5": { "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." - } - ] - } + "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-immutability-policy-until-date": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "date-time-rfc1123", - "description": "Indicates the time the immutability policy will expire." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." } } }, "default": { - "description": "An unexpected error response.", + "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": "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=immutabilityPolicies&_overload=deleteImmutabilityPolicy": { - "delete": { - "operationId": "Blob_DeleteImmutabilityPolicy", - "description": "The Delete Immutability Policy operation deletes the immutability policy on the blob.", + "/{containerName}/{blob}?comp=undelete": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_Undelete", + "description": "Undelete a blob that was previously soft deleted", "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}$" + "$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" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "The blob was undeleted successfully.", "headers": { - "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-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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": "An unexpected error response.", + "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": [ + "undelete" + ] + } + ] }, - "/{containerName}/{blob}?comp=legalhold": { + "/{containerName}/{blob}?comp=expiry": { "put": { - "operationId": "Blob_SetLegalHold", - "description": "The Set Legal Hold operation sets a legal hold on the blob.", + "tags": [ + "blob" + ], + "operationId": "Blob_SetExpiry", + "description": "Sets the time a blob will expire and be deleted.", "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" + "$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/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-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/BlobExpiryOptions" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/BlobExpiryTime" } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "The blob expiry was set successfully.", "headers": { - "Date": { + "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": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "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", - "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." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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": "An unexpected error response.", + "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": [ + "expiry" + ] + } + ] }, - "/{containerName}/{blob}?comp=metadata": { + "/{containerName}/{blob}?comp=properties&SetHTTPHeaders": { "put": { - "operationId": "Blob_SetMetadata", - "description": "The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs.", + "tags": [ + "blob" + ], + "operationId": "Blob_SetHTTPHeaders", + "description": "The Set HTTP Headers operation sets system properties on the blob", "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" + "$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/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/BlobContentType" }, { - "name": "x-ms-meta", - "in": "header", - "description": "The metadata headers.", - "required": false, - "type": "string", - "x-ms-client-name": "metadata" + "$ref": "#/parameters/BlobContentMD5" }, { - "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/BlobContentEncoding" }, { - "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/BlobContentLanguage" }, { - "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/IfModifiedSince" }, { - "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/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/BlobContentDisposition" }, { - "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" } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "The properties were set successfully.", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." + "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": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - }, - "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-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-encryption-scope": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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" + "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", - "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." + "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": { + "Date": { "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": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" } } }, "default": { - "description": "An unexpected error response.", + "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": [ + "properties" + ] + } + ] }, - "/{containerName}/{blob}?comp=lease&acquire": { + "/{containerName}/{blob}?comp=immutabilityPolicies": { "put": { - "operationId": "Blob_AcquireLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "tags": [ + "blob" + ], + "operationId": "Blob_SetImmutabilityPolicy", + "description": "The Set Immutability Policy operation sets the immutability policy on the blob", "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 - }, - { - "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": "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/Timeout" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/ClientRequestId" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/IfUnmodifiedSince" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/ImmutabilityPolicyExpiry" }, { - "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" + "$ref": "#/parameters/ImmutabilityPolicyMode" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The immutability policy was successfully set.", "headers": { - "Date": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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 a client request id header is sent in the request, this header will be present in the response with the same value." }, - "ETag": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "Last-Modified": { + "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": "The date/time that the container was last modified." + "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-immutability-policy-until-date": { + "x-ms-client-name": "ImmutabilityPolicyExpiry", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "format": "date-time-rfc1123", + "description": "Indicates the time the immutability policy will expire." }, - "x-ms-lease-id": { + "x-ms-immutability-policy-mode": { + "x-ms-client-name": "ImmutabilityPolicyMode", "type": "string", - "description": "Uniquely identifies a blobs' lease" + "enum": [ + "Mutable", + "Unlocked", + "Locked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false + }, + "description": "Indicates immutability policy mode." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "delete": { + "tags": [ + "blob" + ], + "operationId": "Blob_DeleteImmutabilityPolicy", + "description": "The Delete Immutability Policy operation deletes the immutability policy on the blob", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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": "An unexpected error response.", + "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=lease&release": { + "/{containerName}/{blob}?comp=legalhold": { "put": { - "operationId": "Blob_ReleaseLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "tags": [ + "blob" + ], + "operationId": "Blob_SetLegalHold", + "description": "The Set Legal Hold operation sets a legal hold on the blob.", "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 - }, - { - "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/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/Timeout" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/ClientRequestId" }, { - "$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/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/LegalHoldRequired" } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "The legal hold was successfully set on the blob.", "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." - }, "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." } } }, "default": { - "description": "An unexpected error response.", + "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=lease&renew": { + "/{containerName}/{blob}?comp=metadata": { "put": { - "operationId": "Blob_RenewLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "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": [ { - "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/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": "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-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/EncryptionKeySha256" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/EncryptionAlgorithm" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/EncryptionScope" }, { - "$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/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "The metadata was set successfully.", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." + "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", - "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" + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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 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", + "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": "An unexpected error response.", + "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": [ + "metadata" + ] + } + ] }, - "/{containerName}/{blob}?comp=lease&change": { + "/{containerName}/{blob}?comp=lease&acquire": { "put": { - "operationId": "Blob_ChangeLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "tags": [ + "blob" + ], + "operationId": "Blob_AcquireLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", "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}$" + "$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/LeaseDuration" }, { - "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/ProposedLeaseIdOptional" }, { - "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/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/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The Acquire operation completed successfully.", "headers": { - "Date": { + "ETag": { "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "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." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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": "An unexpected error response.", + "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": [ + "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&break": { + "/{containerName}/{blob}?comp=lease&release": { "put": { - "operationId": "Blob_BreakLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "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": [ { - "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/LeaseIdRequired" }, { - "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/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/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "200": { + "description": "The Release operation completed successfully.", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." + "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-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - }, - "x-ms-lease-time": { - "type": "integer", - "format": "int32", - "description": "Approximate time remaining in the lease period, in seconds." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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": "An unexpected error response.", + "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": [ + "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=snapshot": { + "/{containerName}/{blob}?comp=lease&renew": { "put": { - "operationId": "Blob_CreateSnapshot", - "description": "The Create Snapshot operation creates a read-only snapshot of a blob", + "tags": [ + "blob" + ], + "operationId": "Blob_RenewLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", "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/Timeout" }, { - "name": "x-ms-meta", - "in": "header", - "description": "The metadata headers.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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/LeaseIdRequired" }, { - "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/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-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.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The Renew operation completed successfully.", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." + "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-client-request-id": { + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "description": "Uniquely identifies a blobs' lease" }, - "x-ms-request-id": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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." + "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-snapshot": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "type": "string", - "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." + "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": { + "Date": { "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": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" } } }, "default": { - "description": "An unexpected error response.", + "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": [ + "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=copy": { + "/{containerName}/{blob}?comp=lease&change": { "put": { - "operationId": "Blob_StartCopyFromUrl", - "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", + "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": [ { - "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 - }, - { - "name": "x-ms-meta", - "in": "header", - "description": "The metadata headers.", - "required": false, - "type": "string", - "x-ms-client-name": "metadata" - }, - { - "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-rfc1123", - "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-rfc1123", - "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/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/Timeout" }, { - "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/LeaseIdRequired" }, { - "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/ProposedLeaseIdRequired" }, { - "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-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-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/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-rfc1123", - "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" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "200": { + "description": "The Change operation completed successfully.", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." + "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-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." - }, - "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." + "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-copy-status": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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." - } - ] - } + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-request-id": { + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "description": "Uniquely identifies a blobs' lease" }, "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": { + "Date": { "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": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" } } }, "default": { - "description": "An unexpected error response.", + "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": [ + "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=copy&sync": { + "/{containerName}/{blob}?comp=lease&break": { "put": { - "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.", + "tags": [ + "blob" + ], + "operationId": "Blob_BreakLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", "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/Timeout" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/LeaseBreakPeriod" }, { - "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": "x-ms-meta", - "in": "header", - "description": "The metadata headers.", - "required": false, - "type": "string", - "x-ms-client-name": "metadata" + "$ref": "#/parameters/IfMatch" }, { - "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-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-rfc1123", - "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-rfc1123", - "x-ms-client-name": "sourceIfUnmodifiedSince" + "$ref": "#/parameters/IfNoneMatch" }, { - "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" + "$ref": "#/parameters/IfTags" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$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." + }, + "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-time": { + "x-ms-client-name": "LeaseTime", + "type": "integer", + "description": "Approximate time remaining in the lease period, in seconds." + }, + "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" + } + }, + "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": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_CreateSnapshot", + "description": "The Create Snapshot operation creates a read-only snapshot of a blob", + "parameters": [ { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/Timeout" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/Metadata" }, { - "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/EncryptionKey" }, { - "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/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-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/EncryptionScope" }, { - "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/IfModifiedSince" }, { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" + "$ref": "#/parameters/IfUnmodifiedSince" }, { - "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/IfMatch" }, { - "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/IfNoneMatch" }, { - "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/IfTags" }, { - "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/LeaseIdOptional" }, { - "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/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "201": { + "description": "The snaptshot was taken successfully.", "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": { + "x-ms-snapshot": { + "x-ms-client-name": "Snapshot", "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": "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." + "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": "The date/time that the container was last modified." + "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", - "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-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-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-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" + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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": "An unexpected error response.", + "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©id": { + "/{containerName}/{blob}?comp=copy": { "put": { - "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.", + "tags": [ + "blob" + ], + "operationId": "Blob_StartCopyFromURL", + "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", "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/Timeout" }, { - "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/AccessTierOptional" }, { - "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/RehydratePriority" }, { - "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/SourceIfModifiedSince" }, { - "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/SourceIfUnmodifiedSince" + }, + { + "$ref": "#/parameters/SourceIfMatch" + }, + { + "$ref": "#/parameters/SourceIfNoneMatch" + }, + { + "$ref": "#/parameters/SourceIfTags" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/CopySource" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/SealBlob" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiry" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyMode" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/LegalHoldOptional" } ], "responses": { - "204": { - "description": "There is no content to send for this request, but the headers may be useful. ", + "202": { + "description": "The copy blob has been accepted with the specified copy status.", "headers": { - "Date": { + "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": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "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", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-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-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 + } } } }, "default": { - "description": "An unexpected error response.", + "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" + } + ] }, - "/{containerName}/{blob}?comp=tier": { + "/{containerName}/{blob}?comp=copy&sync": { "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.", + "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.", "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/Timeout" }, { - "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/AccessTierOptional" }, { - "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": "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" + "$ref": "#/parameters/SourceIfMatch" }, { - "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" + "$ref": "#/parameters/SourceIfNoneMatch" }, { - "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-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" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/CopySource" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/SourceContentMD5" + }, + { + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiry" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyMode" + }, + { + "$ref": "#/parameters/LegalHoldOptional" + }, + { + "$ref": "#/parameters/CopySourceAuthorization" + }, + { + "$ref": "#/parameters/EncryptionScope" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/CopySourceTags" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "202": { + "description": "The copy has completed.", "headers": { - "x-ms-client-request-id": { + "ETag": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-request-id": { + "Last-Modified": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-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." - } - } - }, - "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", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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}$" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { + }, + "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-account-kind": { + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for this copy operation." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-id.", "type": "string", - "description": "Identifies the account kind", "enum": [ - "Storage", - "BlobStorage", - "StorageV2", - "FileStorage", - "BlockBlobStorage" + "success" ], "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." - } - ] + "name": "SyncCopyStatusType", + "modelAsString": false } }, - "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": { + "Content-MD5": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-sku-name": { + "x-ms-content-crc64": { "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." - } - ] - } + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-version": { + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", "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": "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": "An unexpected error response.", + "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": "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=tags": { - "get": { - "operationId": "Blob_GetTags", - "description": "The Get Blob Tags operation enables users to get tags on a blob.", - "produces": [ - "application/xml", - "application/json" + "/{containerName}/{blob}?comp=copy©id": { + "put": { + "tags": [ + "blob" ], + "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": [ { - "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/CopyId" }, { - "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": "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" }, { - "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" } ], "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/BlobTags" - }, + "204": { + "description": "The delete request was accepted and the blob will be deleted.", "headers": { - "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-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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": "An unexpected error response.", + "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=tags&_overload=setTags": { + "/{containerName}/{blob}?comp=tier": { "put": { - "operationId": "Blob_SetTags", - "description": "The Set Tags operation enables users to set tags on a blob.", - "consumes": [ - "application/xml" + "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": [ { - "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/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" }, { - "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": "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/AccessTierRequired" }, { - "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/RehydratePriority" }, { - "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" + "$ref": "#/parameters/LeaseIdOptional" }, { - "name": "tags", - "in": "body", - "description": "The blob tags.", - "required": true, - "schema": { - "$ref": "#/definitions/BlobTags" - } + "$ref": "#/parameters/IfTags" } ], "responses": { - "204": { - "description": "There is no content to send for this request, but the headers may be useful. ", + "200": { + "description": "The new tier will take effect immediately.", "headers": { - "Date": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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 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", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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": "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." } } }, "default": { - "description": "An unexpected error response.", + "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}?PageBlob": { - "put": { - "operationId": "PageBlob_Create", - "description": "The Create operation creates a new page blob.", + "/{containerName}/{blob}?restype=account&comp=properties": { + "get": { + "tags": [ + "blob" + ], + "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": "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" + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success (OK)", + "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" + } + } }, - { - "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." - } - ] + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } }, - "x-ms-client-name": "encryptionAlgorithm" - }, + "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": { + "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" + ], + "parameters": [ { - "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/BlockId" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/ContentLength" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/ContentMD5" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/ContentCrc64" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/Body" }, { - "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" }, { - "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/LeaseIdOptional" }, { - "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/EncryptionKey" }, { - "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/EncryptionKeySha256" }, { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" + "$ref": "#/parameters/EncryptionAlgorithm" }, { - "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/EncryptionScope" }, { - "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" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "description": "The block was created.", "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-rfc1123", - "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." + "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." }, - "Last-Modified": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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-client-request-id": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-encryption-key-sha256": { + "x-ms-version": { + "x-ms-client-name": "Version", "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": "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-encryption-scope": { + "Date": { "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" + "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-id": { + "x-ms-content-crc64": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-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": { + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", "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 block. This header is only returned when the block was encrypted with a customer-provided key." }, - "x-ms-version-id": { + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", "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": "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": "An unexpected error response.", + "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": [ + "block" + ] + } + ] }, - "/{containerName}/{blob}?comp=page&update": { + "/{containerName}/{blob}?comp=block&fromURL": { "put": { - "operationId": "PageBlob_UploadPages", - "description": "The Upload Pages operation writes a range of pages to a page blob", - "consumes": [ - "application/octet-stream" + "tags": [ + "blockblob" ], + "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": [ { - "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": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" - }, - { - "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/BlockId" }, { - "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/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/SourceUrl" }, { - "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/SourceRange" }, { - "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/SourceContentMD5" }, { - "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/SourceContentCRC64" }, { - "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/Timeout" }, { - "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-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/EncryptionAlgorithm" }, { - "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/EncryptionScope" }, { - "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/LeaseIdOptional" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/SourceIfModifiedSince" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/SourceIfUnmodifiedSince" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/SourceIfMatch" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/SourceIfNoneMatch" }, { - "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": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } + "$ref": "#/parameters/CopySourceAuthorization" } ], "responses": { "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "description": "The block was created.", "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-rfc1123", - "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." + "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." }, - "Last-Modified": { + "x-ms-content-crc64": { "type": "string", - "format": "date-time-rfc1123", - "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." + "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", - "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." + "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-encryption-key-sha256": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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 header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-encryption-scope": { + "x-ms-version": { + "x-ms-client-name": "Version", "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" + "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-id": { + "Date": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-version": { + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", "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 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": "An unexpected error response.", + "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": [ + "block" + ] + } + ] }, - "/{containerName}/{blob}?comp=page&clear": { + "/{containerName}/{blob}?comp=blocklist": { "put": { - "operationId": "PageBlob_ClearPages", - "description": "The Clear Pages operation clears a range of pages from a page blob", + "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": [ { - "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/BlobCacheControl" }, { - "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/BlobContentType" }, { - "name": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" + "$ref": "#/parameters/BlobContentEncoding" }, { - "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/BlobContentLanguage" }, { - "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/BlobContentMD5" }, { - "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/ContentMD5" }, { - "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/ContentCrc64" }, { - "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/BlobContentDisposition" }, { - "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/EncryptionKey" }, { - "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/EncryptionKeySha256" }, { - "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/EncryptionAlgorithm" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/EncryptionScope" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/AccessTierOptional" }, { - "$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/IfMatch" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "name": "blocks", + "description": "Blob Blocks.", + "in": "body", + "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 request has succeeded and a new resource has been created as a result.", + "description": "The block list was recorded.", "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-rfc1123", - "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." + "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": "The date/time that the container was last modified." + "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": { - "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": { + "Content-MD5": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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." }, "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." + "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." + }, + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." } } }, "default": { - "description": "An unexpected error response.", + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, "schema": { "$ref": "#/definitions/StorageError" } } } - } - }, - "/{containerName}/{blob}?comp=page&update&fromUrl": { - "put": { - "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.", + }, + "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", "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" + "$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/BlockListType" }, { - "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/Timeout" }, { - "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/LeaseIdOptional" }, { - "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": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The page range was written.", + "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": { + "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-Type": { + "type": "string", + "description": "The media type of the body of the response. For Get Block List this is 'application/xml'" + }, + "x-ms-blob-content-length": { + "x-ms-client-name": "BlobContentLength", + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, + "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/BlockList" + } }, + "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": [ + "blocklist" + ] + } + ] + }, + "/{containerName}/{blob}?comp=page&update": { + "put": { + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_UploadPages", + "description": "The Upload Pages operation writes a range of pages to a page blob", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ { - "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-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/ContentLength" }, { - "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/ContentMD5" }, { - "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/ContentCrc64" }, { - "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/Timeout" }, { - "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/Range" }, { - "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" }, { - "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/EncryptionKey" }, { - "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/EncryptionKeySha256" }, { - "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/EncryptionAlgorithm" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/EncryptionScope" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/IfSequenceNumberLessThan" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/IfSequenceNumberEqualTo" }, { - "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-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-rfc1123", - "x-ms-client-name": "sourceIfModifiedSince" + "$ref": "#/parameters/IfUnmodifiedSince" }, { - "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-rfc1123", - "x-ms-client-name": "sourceIfUnmodifiedSince" + "$ref": "#/parameters/IfMatch" }, { - "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/IfNoneMatch" }, { - "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/IfTags" }, { - "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" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "description": "The page range was written.", "headers": { - "Content-MD5": { + "ETag": { "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." + "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." }, - "Date": { + "Last-Modified": { "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": "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": { + "Content-MD5": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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." }, - "Last-Modified": { + "x-ms-content-crc64": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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 a page blob. This header is not returned for block blobs or append blobs." + "description": "The current sequence number for the page blob." }, "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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." + "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-encryption-key-sha256": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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 header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-encryption-scope": { + "x-ms-version": { + "x-ms-client-name": "Version", "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" + "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-id": { + "Date": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-version": { + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", "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 pages. This header is only returned when the pages were 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": "An unexpected error response.", + "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": [ + "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": { - "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" + "/{containerName}/{blob}?comp=page&clear": { + "put": { + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_ClearPages", + "description": "The Clear Pages operation clears a set of pages from a page blob", + "consumes": [ + "application/octet-stream" ], "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/ContentLength" }, { - "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/Range" }, { - "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/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/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" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/EncryptionScope" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/IfSequenceNumberLessThan" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/IfSequenceNumberEqualTo" }, { - "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" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" }, { - "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/IfTags" }, { - "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/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PageList" - }, + "201": { + "description": "The page range was cleared.", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." + "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-content-length": { + "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-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", "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." + "description": "The current sequence number for the page blob." }, "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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." - } - } - }, - "default": { - "description": "An unexpected error response.", + }, + "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" } } - }, - "x-ms-pageable": { - "nextLinkName": "nextMarker" } - } + }, + "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=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" + "/{containerName}/{blob}?comp=page&update&fromUrl": { + "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" ], "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/SourceUrl" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/SourceRangeRequiredPutPageFromUrl" }, { - "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/SourceContentMD5" }, { - "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/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/ContentLength" }, { - "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/Timeout" }, { - "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/RangeRequiredPutPageFromUrl" }, { - "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/EncryptionKey" }, { - "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/EncryptionKeySha256" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/EncryptionAlgorithm" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/EncryptionScope" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/LeaseIdOptional" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" }, { - "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/IfSequenceNumberLessThan" + }, + { + "$ref": "#/parameters/IfSequenceNumberEqualTo" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" }, { - "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/IfTags" }, { - "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/SourceIfModifiedSince" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/SourceIfUnmodifiedSince" + }, + { + "$ref": "#/parameters/SourceIfMatch" + }, + { + "$ref": "#/parameters/SourceIfNoneMatch" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/CopySourceAuthorization" } ], "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PageList" - }, + "201": { + "description": "The page range was written.", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." + "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-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." + "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-content-crc64": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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." }, "x-ms-request-id": { + "x-ms-client-name": "RequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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 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." } } }, "default": { - "description": "An unexpected error response.", + "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" + }, + { + "$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=properties&Resize": { - "put": { - "operationId": "PageBlob_Resize", - "description": "The Resize operation increases the size of the page blob to the specified size.", + "/{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", "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/Snapshot" }, { - "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": "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/Range" }, { - "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/IfModifiedSince" }, { - "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/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-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" }, { - "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/Marker" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/MaxResults" } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "Information on the page blob was found.", "headers": { - "Date": { + "Last-Modified": { "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": "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": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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-sequence-number": { + "x-ms-blob-content-length": { + "x-ms-client-name": "BlobContentLength", "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 size of the blob in bytes." }, "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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/PageList" } }, "default": { - "description": "An unexpected error response.", + "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" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "pagelist" + ] + } + ] }, - "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { - "put": { - "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.", + "/{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.", "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/Snapshot" }, { - "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/PrevSnapshot" }, { - "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/PrevSnapshotUrl" }, { - "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/Range" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/LeaseIdOptional" }, { - "$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-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/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" }, { - "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/Marker" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/MaxResults" } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "Information on the page blob was found.", "headers": { - "Date": { + "Last-Modified": { "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": "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": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." - }, - "x-ms-blob-sequence-number": { + "x-ms-blob-content-length": { + "x-ms-client-name": "BlobContentLength", "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 size of the blob in bytes." }, "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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/PageList" } }, "default": { - "description": "An unexpected error response.", + "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" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "pagelist" + ] + } + ] }, - "/{containerName}/{blob}?comp=incrementalcopy": { + "/{containerName}/{blob}?comp=properties&Resize": { "put": { - "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.", + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_Resize", + "description": "Resize the Blob", "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/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/EncryptionKey" }, { - "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/EncryptionKeySha256" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/EncryptionAlgorithm" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/EncryptionScope" }, { - "$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/IfMatch" }, { - "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/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/BlobContentLengthRequired" + }, + { + "$ref": "#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "200": { + "description": "The Blob was resized successfully", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." + "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" }, "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-copy-id": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-copy-status": { + "x-ms-version": { + "x-ms-client-name": "Version", "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-request-id": { - "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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": { + "Date": { "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-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" } } }, "default": { - "description": "An unexpected error response.", + "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": [ + "properties" + ] + } + ] }, - "/{containerName}/{blob}?AppendBlob": { + "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { "put": { - "operationId": "AppendBlob_Create", - "description": "The Create operation creates a new append blob.", + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_UpdateSequenceNumber", + "description": "Update the sequence number of the blob", "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": "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 + "$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/LeaseIdOptional" }, { - "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/IfModifiedSince" }, { - "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/IfUnmodifiedSince" }, { - "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/IfMatch" }, { - "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/IfNoneMatch" }, { - "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/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/SequenceNumberAction" }, { - "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/BlobSequenceNumber" }, { - "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" + } + ], + "responses": { + "200": { + "description": "The sequence numbers were updated 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 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" + }, + "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-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." - } - ] + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } }, - "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" - }, + "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": { + "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.", + "parameters": [ { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/Timeout" }, { - "$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/IfMatch" }, { - "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/IfNoneMatch" }, { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" + "$ref": "#/parameters/IfTags" }, { - "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/CopySource" }, { - "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" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "202": { + "description": "The blob was copied.", "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-rfc1123", - "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." + "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": "The date/time that the container was last modified." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-encryption-key-sha256": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "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 header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-encryption-scope": { + "x-ms-version": { + "x-ms-client-name": "Version", "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" + "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-id": { + "Date": { "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." + "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-version": { + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", "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." }, - "x-ms-version-id": { + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-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." + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } } } }, "default": { - "description": "An unexpected error response.", + "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": [ + "incrementalcopy" + ] + } + ] }, "/{containerName}/{blob}?comp=appendblock": { "put": { - "operationId": "AppendBlob_AppendBlock", - "description": "The Append Block operation commits a new block of data to the end of an append blob.", + "tags": [ + "appendblob" + ], "consumes": [ - "application/xml" + "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.", "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}$" + "$ref": "#/parameters/Body" }, { - "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": "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": "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/ContentMD5" }, { - "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/ContentCrc64" }, { - "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" }, { - "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/BlobConditionMaxSize" }, { - "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/BlobConditionAppendPos" }, { - "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/EncryptionScope" }, { - "$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" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ApiVersionParameter" }, { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } + "$ref": "#/parameters/ClientRequestId" } ], "responses": { "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "description": "The block was created.", "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-rfc1123", - "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." + "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": "The date/time that the container was last modified." + "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-append-offset": { + "Content-MD5": { "type": "string", - "description": "This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes." + "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-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-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", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-content-crc64": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-encryption-key-sha256": { + "x-ms-version": { + "x-ms-client-name": "Version", "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": "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-encryption-scope": { + "Date": { "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" + "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-id": { + "x-ms-blob-append-offset": { + "x-ms-client-name": "BlobAppendOffset", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-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": { + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", "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 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": "An unexpected error response.", + "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": [ + "appendblock" + ] + } + ] }, "/{containerName}/{blob}?comp=appendblock&fromUrl": { "put": { + "tags": [ + "appendblob" + ], "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.", + "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.", "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/SourceUrl" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "$ref": "#/parameters/SourceRange" }, { - "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/SourceContentMD5" }, { - "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/SourceContentCRC64" }, { - "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/Timeout" }, { - "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" - }, - { - "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/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": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" - }, - { - "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/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/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/BlobConditionMaxSize" }, { - "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/BlobConditionAppendPos" }, { - "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/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/SourceIfModifiedSince" }, { - "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-rfc1123", - "x-ms-client-name": "sourceIfModifiedSince" + "$ref": "#/parameters/SourceIfUnmodifiedSince" }, { - "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-rfc1123", - "x-ms-client-name": "sourceIfUnmodifiedSince" + "$ref": "#/parameters/SourceIfMatch" }, { - "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/SourceIfNoneMatch" }, { - "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" + "$ref": "#/parameters/CopySourceAuthorization" } ], "responses": { "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "description": "The block was 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." + }, "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." }, - "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" + "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." }, - "ETag": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "Last-Modified": { + "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": "The date/time that the container was last modified." + "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", - "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": { - "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-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 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": "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." + "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-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": { - "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." } } }, "default": { - "description": "An unexpected error response.", + "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": [ + "appendblock" + ] + } + ] }, "/{containerName}/{blob}?comp=seal": { "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.", "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}$" + "$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.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/LeaseIdOptional" }, { - "$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-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/IfNoneMatch" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/BlobConditionAppendPos" } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "The blob was sealed.", "headers": { - "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" - }, "ETag": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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": "The date/time that the container was last modified." - }, - "x-ms-blob-sealed": { - "type": "boolean", - "description": "If this blob has been sealed" + "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", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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" } } }, "default": { - "description": "An unexpected error response.", + "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": [ + "seal" + ] + } + ] }, - "/{containerName}/{blob}?BlockBlob": { - "put": { - "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" + "/{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.", "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": "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" - }, - { - "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/QueryRequest" }, { - "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/Snapshot" }, { - "$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-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/IfModifiedSince" }, { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" + "$ref": "#/parameters/IfUnmodifiedSince" }, { - "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/IfMatch" }, { - "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/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" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "$ref": "#/parameters/ApiVersionParameter" }, { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } + "$ref": "#/parameters/ClientRequestId" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "Returns the content of the entire blob.", "headers": { - "Content-MD5": { + "Last-Modified": { "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." + "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." }, - "Date": { + "x-ms-meta": { "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-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" }, - "ETag": { + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-Type": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" }, - "Last-Modified": { + "Content-Range": { "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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." }, - "x-ms-client-request-id": { + "ETag": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-encryption-key-sha256": { + "Content-MD5": { "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." + "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-encryption-scope": { + "Content-Encoding": { "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" + "description": "This header returns the value that was specified for the Content-Encoding request header" }, - "x-ms-request-id": { + "Cache-Control": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "description": "This header is returned if it was previously specified for the blob." }, - "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-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-version": { + "Content-Language": { "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 Content-Language request header." }, - "x-ms-version-id": { + "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", - "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": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?BlockBlob&fromUrl": { - "put": { - "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": [ - { - "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" - }, - { - "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" - }, - { - "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." + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false } - ] - }, - "x-ms-client-name": "tier" - }, - { - "$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" - }, - { - "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-rfc1123", - "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-rfc1123", - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "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": { + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", "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": "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." }, - "ETag": { + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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" }, - "Last-Modified": { + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", "type": "string", - "format": "date-time-rfc1123", - "description": "The date/time that the container was last modified." + "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-client-request-id": { + "x-ms-copy-progress": { + "x-ms-client-name": "CopyProgress", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "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-encryption-key-sha256": { + "x-ms-copy-source": { + "x-ms-client-name": "CopySource", "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": "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-encryption-scope": { + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-id.", "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" + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } }, - "x-ms-request-id": { + "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", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "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." + "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": { + "Accept-Ranges": { "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": "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" } - } - }, - "default": { - "description": "An unexpected error response.", + }, "schema": { - "$ref": "#/definitions/StorageError" + "type": "object", + "format": "file" } - } - } - } - }, - "/{containerName}/{blob}?comp=block": { - "put": { - "operationId": "BlockBlob_StageBlock", - "description": "The Stage Block operation creates a new block to be committed as part of a blob", - "consumes": [ - "application/octet-stream" - ], - "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": "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" - }, - { - "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-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" - }, - { - "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" - }, - { - "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.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } - } - ], - "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "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." }, - "Date": { + "Content-Encoding": { "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 header returns the value that was specified for the Content-Encoding request header" }, - "x-ms-client-request-id": { + "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", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } }, "x-ms-content-crc64": { + "x-ms-client-name": "ContentCrc64", "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." + "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-encryption-key-sha256": { + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", "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." + "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-encryption-scope": { + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", "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" + "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-copy-id": { + "x-ms-client-name": "CopyId", "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-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-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": "An unexpected error response.", + "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": [ + "query" + ] + } + ] }, - "/{containerName}/{blob}?comp=block&fromURL": { - "put": { - "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.", + "/{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.", "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": "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/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-copy-source", - "in": "header", - "description": "Specify a URL to the copy source.", - "required": true, - "type": "string", - "x-ms-client-name": "sourceUrl" + "$ref": "#/parameters/ClientRequestId" }, { - "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/Snapshot" }, { - "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/VersionId" }, { - "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/IfTags" }, { - "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" + } + ], + "responses": { + "200": { + "description": "Retrieved blob tags", + "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/BlobTags" + } }, - { - "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" - }, - { - "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-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-rfc1123", - "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-rfc1123", - "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-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/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "default": { + "description": "Failure", "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-rfc1123", - "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-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": { - "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-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-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-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" } - } - }, - "default": { - "description": "An unexpected error response.", + }, "schema": { "$ref": "#/definitions/StorageError" } } } - } - }, - "/{containerName}/{blob}?comp=blocklist": { + }, "put": { - "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" + "tags": [ + "blob" ], + "operationId": "Blob_SetTags", + "description": "The Set Tags operation enables users to set tags on a blob.", "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 - }, - { - "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-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": "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-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" - }, - { - "name": "x-ms-meta", - "in": "header", - "description": "The metadata headers.", - "required": false, - "type": "string", - "x-ms-client-name": "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" - }, - { - "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" - }, - { - "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/ApiVersionParameter" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "$ref": "#/parameters/Timeout" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/VersionId" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/ContentMD5" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "$ref": "#/parameters/ContentCrc64" }, { - "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-tags", - "in": "header", - "description": "Optional. Used to set blob tags in various blob operations.", - "required": false, - "type": "string", - "x-ms-client-name": "BlobTagsString" - }, - { - "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-rfc1123", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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/ClientRequestId" }, { - "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" + "$ref": "#/parameters/LeaseIdOptional" }, { - "name": "blocks", - "in": "body", - "description": "Blob Blocks.", - "required": true, - "schema": { - "$ref": "#/definitions/BlockLookupList" - } + "$ref": "#/parameters/BlobTagsBody" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "204": { + "description": "The tags were applied to the blob", "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-rfc1123", - "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-rfc1123", - "description": "The date/time that the container was last modified." - }, "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", "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-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" + "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", - "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." + "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": { + "Date": { "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": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" } } }, "default": { - "description": "An unexpected error response.", + "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": [ + "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" + } } }, - "/{containerName}/{blob}?comp=blocklist&_overload=getBlockList": { - "get": { - "operationId": "BlockBlob_GetBlockList", - "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": [ - { - "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": "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": "Uncomitted", - "value": "uncommitted", - "description": "The list of uncommitted blocks." - }, - { - "name": "All", - "value": "all", - "description": "Both lists together." - } - ] - }, - "x-ms-client-name": "listType" - }, - { - "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-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.", - "schema": { - "$ref": "#/definitions/BlockLookupList" - }, - "headers": { - "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" - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." - }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "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." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } + "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" + } + } + }, + "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 } + }, + "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" } } }, - "/?comp=batch": { - "post": { - "operationId": "Service_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" - } + "ListBlobsFlatSegmentResponse": { + "xml": { + "name": "EnumerationResults" + }, + "description": "An enumeration of blobs", + "type": "object", + "required": [ + "ServiceEndpoint", + "ContainerName", + "Segment" + ], + "properties": { + "ServiceEndpoint": { + "type": "string", + "xml": { + "attribute": true } - ], - "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." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } + }, + "ContainerName": { + "type": "string", + "xml": { + "attribute": true } + }, + "Prefix": { + "type": "string" + }, + "Marker": { + "type": "string" + }, + "MaxResults": { + "type": "integer" + }, + "Segment": { + "$ref": "#/definitions/BlobFlatListSegment" + }, + "NextMarker": { + "type": "string" } } }, - "/?comp=blobs": { - "get": { - "operationId": "Service_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" + "ListBlobsHierarchySegmentResponse": { + "xml": { + "name": "EnumerationResults" + }, + "description": "An enumeration of blobs", + "type": "object", + "required": [ + "ServiceEndpoint", + "ContainerName", + "Segment" + ], + "properties": { + "ServiceEndpoint": { + "type": "string", + "xml": { + "attribute": true } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/FilterBlobSegment" - }, - "headers": { - "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-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." - }, - "x-ms-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." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } + }, + "ContainerName": { + "type": "string", + "xml": { + "attribute": true } + }, + "Prefix": { + "type": "string" + }, + "Marker": { + "type": "string" + }, + "MaxResults": { + "type": "integer" + }, + "Delimiter": { + "type": "string" + }, + "Segment": { + "$ref": "#/definitions/BlobHierarchyListSegment" + }, + "NextMarker": { + "type": "string" } } }, - "/?comp=list": { - "get": { - "operationId": "Service_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" + "BlobFlatListSegment": { + "xml": { + "name": "Blobs" + }, + "required": [ + "BlobItems" + ], + "type": "object", + "properties": { + "BlobItems": { + "type": "array", + "items": { + "$ref": "#/definitions/BlobItemInternal" } - ], - "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." - }, - "x-ms-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." - } - } - }, - "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" } }, - "x-ms-pageable": { - "nextLinkName": "NextMarker" + "BlobItems": { + "type": "array", + "items": { + "$ref": "#/definitions/BlobItemInternal" + } } } }, - "/?restype=account&comp=properties": { - "get": { - "operationId": "Service_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" + "BlobPrefix": { + "type": "object", + "required": [ + "Name" + ], + "properties": { + "Name": { + "$ref": "#/definitions/BlobName" + } + } + }, + "BlobName": { + "type": "object", + "properties": { + "Encoded": { + "xml": { + "attribute": true, + "name": "Encoded" }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "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-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." - } - ] - } - }, - "x-ms-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." - } - } + "type": "boolean", + "description": "Indicates if the blob name is encoded." + }, + "content": { + "xml": { + "x-ms-text": true + }, + "type": "string", + "description": "The name of the blob." + } + } + }, + "BlobTag": { + "xml": { + "name": "Tag" + }, + "type": "object", + "required": [ + "Key", + "Value" + ], + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + } + }, + "BlobTags": { + "type": "object", + "xml": { + "name": "Tags" + }, + "description": "Blob tags", + "required": [ + "BlobTagSet" + ], + "properties": { + "BlobTagSet": { + "xml": { + "wrapped": true, + "name": "TagSet" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } + "type": "array", + "items": { + "$ref": "#/definitions/BlobTag" } } } }, - "/?restype=service&comp=stats": { - "get": { - "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.", - "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" + "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 }, - { - "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 + "type": "array", + "items": { + "$ref": "#/definitions/Block" + } + }, + "UncommittedBlocks": { + "xml": { + "wrapped": true }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "type": "array", + "items": { + "$ref": "#/definitions/Block" } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/StorageServiceStats" - }, - "headers": { - "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-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." - }, - "x-ms-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." - } + } + } + }, + "BlockLookupList": { + "type": "object", + "properties": { + "Committed": { + "type": "array", + "items": { + "type": "string", + "xml": { + "name": "Committed" } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" + } + }, + "Uncommitted": { + "type": "array", + "items": { + "type": "string", + "xml": { + "name": "Uncommitted" + } + } + }, + "Latest": { + "type": "array", + "items": { + "type": "string", + "xml": { + "name": "Latest" } } } + }, + "xml": { + "name": "BlockList" } - } - }, - "definitions": { - "AccessPolicy": { + }, + "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", - "description": "Represents an access policy.", "properties": { - "start": { + "ColumnSeparator": { + "type": "string", + "description": "The string used to separate columns.", + "xml": { + "name": "ColumnSeparator" + } + }, + "FieldQuote": { "type": "string", - "format": "date-time", - "description": "The date-time the policy is active." + "description": "The string used to quote a specific field.", + "xml": { + "name": "FieldQuote" + } }, - "expiry": { + "RecordSeparator": { "type": "string", - "format": "date-time", - "description": "The date-time the policy expires." + "description": "The string used to separate records.", + "xml": { + "name": "RecordSeparator" + } }, - "permission": { + "EscapeChar": { "type": "string", - "description": "The permissions for acl the policy." + "description": "The string used as an escape character.", + "xml": { + "name": "EscapeChar" + } + }, + "HeadersPresent": { + "type": "boolean", + "description": "Represents whether the data has headers.", + "xml": { + "name": "HasHeaders" + } } + } + }, + "JsonTextConfiguration": { + "xml": { + "name": "JsonTextConfiguration" }, - "required": [ - "start", - "expiry", - "permission" - ] + "description": "json text configuration", + "type": "object", + "properties": { + "RecordSeparator": { + "type": "string", + "description": "The string used to separate records.", + "xml": { + "name": "RecordSeparator" + } + } + } }, - "AccessTier": { - "type": "string", - "description": "The access tiers.", - "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive", - "Premium", - "Cold" + "ArrowConfiguration": { + "xml": { + "name": "ArrowConfiguration" + }, + "description": "Groups the settings used for formatting the response if the response should be Arrow formatted.", + "type": "object", + "required": [ + "Schema" ], - "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." + "properties": { + "Schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ArrowField" }, - { - "name": "Premium", - "value": "Premium", - "description": "The Premium access tier." + "xml": { + "wrapped": true, + "name": "Schema" + } + } + } + }, + "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 + } + }, + "Prefix": { + "type": "string" + }, + "Marker": { + "type": "string" + }, + "MaxResults": { + "type": "integer" + }, + "ContainerItems": { + "xml": { + "wrapped": true, + "name": "Containers" }, - { - "name": "Cold", - "value": "Cold", - "description": "The Cold access tier." + "type": "array", + "items": { + "$ref": "#/definitions/ContainerItem" } - ] + }, + "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 + } } }, - "AccountKind": { + "ErrorCode": { + "description": "Error codes returned by the service", "type": "string", - "description": "The account kind.", "enum": [ - "Storage", - "BlobStorage", - "StorageV2", - "FileStorage", - "BlockBlobStorage" + "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" ], "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." - } - ] + "name": "StorageErrorCode", + "modelAsString": true } }, - "ArchiveStatus": { - "type": "string", - "description": "The archive status.", - "enum": [ - "rehydrate-pending-to-hot", - "rehydrate-pending-to-cool", - "rehydrate-pending-to-cold" + "FilterBlobItem": { + "xml": { + "name": "Blob" + }, + "description": "Blob info from a Filter Blobs API call", + "type": "object", + "required": [ + "Name", + "ContainerName" ], - "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." - } - ] + "properties": { + "Name": { + "type": "string" + }, + "ContainerName": { + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/BlobTags" + }, + "VersionId": { + "type": "string" + }, + "IsCurrentVersion": { + "type": "boolean" + } } }, - "ArrowConfiguration": { + "FilterBlobSegment": { + "description": "The result of a Filter Blobs API call", + "xml": { + "name": "EnumerationResults" + }, "type": "object", - "description": "Represents the Apache Arrow configuration.", + "required": [ + "ServiceEndpoint", + "Where", + "Blobs" + ], "properties": { - "schema": { + "ServiceEndpoint": { + "type": "string", + "xml": { + "attribute": true + } + }, + "Where": { + "type": "string" + }, + "Blobs": { + "xml": { + "name": "Blobs", + "wrapped": true + }, "type": "array", - "description": "The Apache Arrow schema", "items": { - "$ref": "#/definitions/ArrowField" - }, - "x-ms-identifiers": [] + "$ref": "#/definitions/FilterBlobItem" + } + }, + "NextMarker": { + "type": "string" } - }, - "required": [ - "schema" - ] + } }, - "ArrowField": { + "GeoReplication": { + "description": "Geo-Replication information for the Secondary Storage Service", "type": "object", - "description": "Represents an Apache Arrow field.", + "required": [ + "Status", + "LastSyncTime" + ], "properties": { - "type": { + "Status": { + "description": "The status of the secondary location", "type": "string", - "description": "The arrow field type." - }, - "name": { + "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", - "description": "The arrow field name." + "format": "date-time-rfc1123" + } + } + }, + "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" }, - "precision": { - "type": "integer", - "format": "int32", - "description": "The arrow field precision." + "Delete": { + "description": "Indicates whether all delete requests should be logged.", + "type": "boolean" }, - "scale": { - "type": "integer", - "format": "int32", - "description": "The arrow field scale." + "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" } + } + }, + "ContainerMetadata": { + "type": "object", + "xml": { + "name": "Metadata" }, - "required": [ - "type" - ] + "additionalProperties": { + "type": "string" + } }, - "Azure.Core.uuid": { - "type": "string", - "format": "uuid", - "description": "Universally Unique Identifier" + "BlobMetadata": { + "type": "object", + "xml": { + "name": "Metadata" + }, + "properties": { + "Encrypted": { + "type": "string", + "xml": { + "attribute": true + } + } + }, + "additionalProperties": { + "type": "string" + } }, - "BlobCopySourceTags": { - "type": "string", - "description": "The blob copy source tags types.", - "enum": [ - "REPLACE", - "COPY" + "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" ], - "x-ms-enum": { - "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." + "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" + } + } + }, + "PageList": { + "description": "the list of pages", + "type": "object", + "properties": { + "PageRange": { + "type": "array", + "items": { + "$ref": "#/definitions/PageRange" + } + }, + "ClearRange": { + "type": "array", + "items": { + "$ref": "#/definitions/ClearRange" } - ] + }, + "NextMarker": { + "type": "string" + } } }, - "BlobDeleteType": { - "type": "string", - "description": "The type of blob deletions.", - "enum": [ - "Permanent" + "PageRange": { + "type": "object", + "required": [ + "Start", + "End" ], - "x-ms-enum": { - "name": "BlobDeleteType", - "modelAsString": true, - "values": [ - { - "name": "Permanent", - "value": "Permanent", - "description": "Permanently delete the blob." + "properties": { + "Start": { + "type": "integer", + "format": "int64", + "xml": { + "name": "Start" } - ] + }, + "End": { + "type": "integer", + "format": "int64", + "xml": { + "name": "End" + } + } + }, + "xml": { + "name": "PageRange" } }, - "BlobExpiryOptions": { - "type": "string", - "description": "The blob expiration options.", - "enum": [ - "NeverExpire", - "RelativeToCreation", - "RelativeToNow", - "Absolute" + "ClearRange": { + "type": "object", + "required": [ + "Start", + "End" ], - "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." + "properties": { + "Start": { + "type": "integer", + "format": "int64", + "xml": { + "name": "Start" + } + }, + "End": { + "type": "integer", + "format": "int64", + "xml": { + "name": "End" } - ] + } + }, + "xml": { + "name": "ClearRange" } }, - "BlobFlatListSegment": { + "QueryRequest": { + "description": "Groups the set of query request settings.", "type": "object", - "description": "The blob flat list segment.", + "required": [ + "QueryType", + "Expression" + ], "properties": { - "blobItems": { - "type": "array", - "description": "The blob items.", - "items": { - "$ref": "#/definitions/BlobItemInternal" + "QueryType": { + "type": "string", + "description": "Required. The type of the provided query expression.", + "xml": { + "name": "QueryType" }, - "x-ms-identifiers": [] + "enum": [ + "SQL" + ] + }, + "Expression": { + "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" + } + }, + "OutputSerialization": { + "$ref": "#/definitions/QuerySerialization", + "xml": { + "name": "OutputSerialization" + } } }, - "required": [ - "blobItems" - ] + "xml": { + "name": "QueryRequest" + } }, - "BlobHierarchyListSegment": { + "QueryFormat": { "type": "object", - "description": "Represents an array of blobs.", + "required": [ + "Type" + ], "properties": { - "blobItems": { - "type": "array", - "description": "The blob items", - "items": { - "$ref": "#/definitions/BlobItemInternal" - }, - "x-ms-identifiers": [] + "Type": { + "$ref": "#/definitions/QueryType" }, - "blobPrefixes": { - "type": "array", - "description": "The blob prefixes.", - "items": { - "$ref": "#/definitions/BlobPrefix" - }, - "x-ms-identifiers": [] + "DelimitedTextConfiguration": { + "$ref": "#/definitions/DelimitedTextConfiguration" + }, + "JsonTextConfiguration": { + "$ref": "#/definitions/JsonTextConfiguration" + }, + "ArrowConfiguration": { + "$ref": "#/definitions/ArrowConfiguration" + }, + "ParquetTextConfiguration": { + "$ref": "#/definitions/ParquetConfiguration" } - }, + } + }, + "QuerySerialization": { + "type": "object", "required": [ - "blobItems" - ] + "Format" + ], + "properties": { + "Format": { + "$ref": "#/definitions/QueryFormat", + "xml": { + "name": "Format" + } + } + } + }, + "QueryType": { + "type": "string", + "description": "The quick query format type.", + "enum": [ + "delimited", + "json", + "arrow", + "parquet" + ], + "x-ms-enum": { + "name": "QueryFormatType", + "modelAsString": false + }, + "xml": { + "name": "Type" + } }, - "BlobImmutabilityPolicyMode": { + "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", - "description": "The immutability policy mode.", "enum": [ - "Mutable", - "Locked", - "Unlocked" + "High", + "Standard" ], "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." - } - ] + "name": "RehydratePriority", + "modelAsString": true + }, + "xml": { + "name": "RehydratePriority" } }, - "BlobItemInternal": { + "RetentionPolicy": { + "description": "the retention policy which determines how long the associated data should persist", "type": "object", - "description": "An Azure Storage Blob", + "required": [ + "Enabled" + ], "properties": { - "name": { - "$ref": "#/definitions/BlobName", - "description": "The name of the blob." + "Enabled": { + "description": "Indicates whether a retention policy is enabled for the storage service", + "type": "boolean" }, - "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." + "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 }, - "hasVersionsOnly": { - "type": "boolean", - "description": "Whether the blog has versions only." + "AllowPermanentDelete": { + "description": "Indicates whether permanent delete is allowed on this storage account.", + "type": "boolean" } - }, - "required": [ - "name", - "deleted", - "snapshot", - "properties" - ] + } }, - "BlobMetadata": { + "SignedIdentifier": { + "xml": { + "name": "SignedIdentifier" + }, + "description": "signed identifier", "type": "object", - "description": "The blob metadata.", + "required": [ + "Id", + "AccessPolicy" + ], "properties": { - "encrypted": { + "Id": { "type": "string", - "description": "Whether the blob metadata is encrypted." + "description": "a unique id" + }, + "AccessPolicy": { + "$ref": "#/definitions/AccessPolicy" } - }, - "additionalProperties": { - "type": "string" } }, - "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." - } + "SignedIdentifiers": { + "description": "a collection of signed identifiers", + "type": "array", + "items": { + "$ref": "#/definitions/SignedIdentifier" }, - "required": [ - "encoded", - "content" - ] + "xml": { + "wrapped": true, + "name": "SignedIdentifiers" + } }, - "BlobPrefix": { + "StaticWebsite": { + "description": "The properties that enable an account to host a static website", "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.", + "Enabled" + ], "properties": { - "creationTime": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The date-time the blob was created in RFC1123 format." - }, - "lastModified": { - "type": "string", - "format": "date-time-rfc1123", - "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." + "Enabled": { + "description": "Indicates whether this account is hosting a static website", + "type": "boolean" }, - "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-rfc1123", - "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 desination snapshot." + "IndexDocument": { + "description": "The default name of the index page under each directory", + "type": "string" }, - "deletedTime": { - "type": "string", - "format": "date-time-rfc1123", - "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-rfc1123", - "description": "The access tier change time of the blob." - }, - "tagCount": { - "type": "integer", - "format": "int32", - "description": "The number of tags for the blob." + "ErrorDocument404Path": { + "description": "The absolute path of the custom 404 page", + "type": "string" }, - "expiryTime": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The expire time of the blob." + "DefaultIndexDocumentPath": { + "description": "Absolute path of the default index page", + "type": "string" + } + } + }, + "StorageServiceProperties": { + "description": "Storage Service Properties.", + "type": "object", + "properties": { + "Logging": { + "$ref": "#/definitions/Logging" }, - "sealed": { - "type": "boolean", - "description": "Whether the blob is sealed." + "HourMetrics": { + "$ref": "#/definitions/Metrics" }, - "rehydratePriority": { - "$ref": "#/definitions/RehydratePriority", - "description": "The rehydrate priority of the blob." + "MinuteMetrics": { + "$ref": "#/definitions/Metrics" }, - "lastAccessTime": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The last access time of the blob." + "Cors": { + "description": "The set of CORS rules.", + "type": "array", + "items": { + "$ref": "#/definitions/CorsRule" + }, + "xml": { + "wrapped": true + } }, - "immutabilityPolicyUntilDate": { - "type": "string", - "format": "date-time-rfc1123", - "description": "The immutability policy until time of the blob." + "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" }, - "immutabilityPolicyMode": { - "$ref": "#/definitions/BlobImmutabilityPolicyMode", - "description": "The immutability policy mode of the blob." + "DeleteRetentionPolicy": { + "$ref": "#/definitions/RetentionPolicy" }, - "legalHold": { - "type": "boolean", - "description": "Whether the blob is under legal hold." + "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": [ + "2021-12-02" + ] + }, + "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" + }, + "x-ms-parameter-location": "method", + "description": "Blob tags" + }, + "BlobTagsHeader": { + "name": "x-ms-tags", + "x-ms-client-name": "BlobTagsString", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Optional. Used to set blob tags in various blob operations." + }, + "AccessTierRequired": { + "name": "x-ms-access-tier", + "x-ms-client-name": "tier", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true + }, + "x-ms-parameter-location": "method", + "description": "Indicates the tier to be set on the blob." + }, + "AccessTierOptional": { + "name": "x-ms-access-tier", + "x-ms-client-name": "tier", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true + }, + "x-ms-parameter-location": "method", + "description": "Optional. Indicates the tier to be set on the blob." + }, + "PremiumPageBlobAccessTierOptional": { + "name": "x-ms-access-tier", + "x-ms-client-name": "tier", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80" + ], + "x-ms-enum": { + "name": "PremiumPageBlobAccessTier", + "modelAsString": true }, - "required": [ - "lastModified", - "eTag" - ] + "x-ms-parameter-location": "method", + "description": "Optional. Indicates the tier to be set on the page blob." }, - "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." - } + "RehydratePriority": { + "name": "x-ms-rehydrate-priority", + "x-ms-client-name": "rehydratePriority", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "High", + "Standard" + ], + "x-ms-enum": { + "name": "RehydratePriority", + "modelAsString": true }, - "required": [ - "key", - "value" - ] + "x-ms-parameter-location": "method", + "description": "Optional: Indicates the priority with which to rehydrate an archived blob." }, - "BlobTags": { - "type": "object", - "description": "Represents blob tags.", - "properties": { - "blobTagSet": { - "type": "array", - "description": "Represents the blob tags.", - "items": { - "$ref": "#/definitions/BlobTag" - }, - "x-ms-identifiers": [] - } + "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" }, - "required": [ - "blobTagSet" - ] + "description": "Optional. Sets the blob's Content-Disposition header." + }, + "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" + }, + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request." + }, + "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" + }, + "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." + }, + "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" + }, + "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." + }, + "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" + }, + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request." }, - "BlobType": { + "BlobDeleteType": { + "name": "deletetype", + "x-ms-client-name": "blobDeleteType", + "in": "query", + "required": false, "type": "string", - "description": "The blob type.", "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" + "Permanent" ], "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." - } - ] - } + "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." + }, + "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 + }, + "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." + }, + "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." }, "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", @@ -14211,1450 +11446,854 @@ ], "x-ms-enum": { "name": "BlockListType", - "modelAsString": true, - "values": [ - { - "name": "Committed", - "value": "committed", - "description": "The list of committed blocks." - }, - { - "name": "Uncomitted", - "value": "uncommitted", - "description": "The list of uncommitted blocks." - }, - { - "name": "All", - "value": "all", - "description": "Both lists together." - } - ] - } - }, - "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" - } - } + "modelAsString": false } }, - "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." - } + "Body": { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "format": "file" }, - "required": [ - "start", - "end" - ] + "x-ms-parameter-location": "method", + "description": "Initial data" }, - "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": { - "$ref": "#/definitions/ContainerMetadata", - "description": "The metadata of the container." - } + "ContainerAcl": { + "name": "containerAcl", + "in": "body", + "schema": { + "$ref": "#/definitions/SignedIdentifiers" }, - "required": [ - "name", - "properties" - ] + "x-ms-parameter-location": "method", + "description": "the acls for the container" }, - "ContainerMetadata": { - "type": "object", - "description": "The metadata of a container.", - "additionalProperties": { - "type": "string" - } + "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." }, - "ContainerProperties": { - "type": "object", - "description": "The properties of a container.", - "properties": { - "lastModified": { - "type": "string", - "format": "date-time-rfc1123", - "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-rfc1123", - "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" - ] + "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." }, - "CopyStatus": { + "ContainerName": { + "name": "containerName", + "in": "path", + "required": true, "type": "string", - "description": "The copy status.", - "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-parameter-location": "method", + "description": "The container name." }, - "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 - } + "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." + }, + "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." + }, + "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." + }, + "CopySourceTags": { + "name": "x-ms-copy-source-tag-option", + "x-ms-client-name": "copySourceTags", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "REPLACE", + "COPY" + ], + "x-ms-enum": { + "name": "BlobCopySourceTags", + "modelAsString": false }, - "required": [ - "allowedOrigins", - "allowedMethods", - "allowedHeaders", - "exposedHeaders", - "maxAgeInSeconds" - ] + "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." }, - "DeleteSnapshotsOptionType": { + "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, "type": "string", - "description": "The delete snapshots option type.", "enum": [ - "only", - "include" + "include", + "only" ], "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." - } - ] + "modelAsString": false } }, - "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." - } - } + "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." }, - "EncryptionAlgorithmType": { + "EncryptionKeySha256": { + "name": "x-ms-encryption-key-sha256", + "x-ms-client-name": "encryptionKeySha256", "type": "string", - "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.", + "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." + }, + "EncryptionAlgorithm": { + "name": "x-ms-encryption-algorithm", + "x-ms-client-name": "encryptionAlgorithm", + "type": "string", + "in": "header", + "required": false, "enum": [ "AES256" ], "x-ms-enum": { "name": "EncryptionAlgorithmType", - "modelAsString": true, - "values": [ - { - "name": "AES256", - "value": "AES256", - "description": "The AES256 encryption algorithm." - } - ] - } + "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." }, - "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" - } + "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" }, - "required": [ - "name", - "containerName" - ] + "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." }, - "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." - } + "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" }, - "required": [ - "serviceEndpoint", - "where", - "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." }, - "FilterBlobsIncludeItem": { + "DeletedContainerName": { + "name": "x-ms-deleted-container-name", + "x-ms-client-name": "DeletedContainerName", "type": "string", - "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." - } - ] - } + "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." }, - "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-rfc1123", - "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." + "DeletedContainerVersion": { + "name": "x-ms-deleted-container-version", + "x-ms-client-name": "DeletedContainerVersion", + "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." + }, + "FilterBlobsInclude": { + "name": "include", + "in": "query", + "required": false, + "type": "array", + "collectionFormat": "csv", + "items": { + "type": "string", + "enum": [ + "none", + "versions" + ], + "x-ms-enum": { + "name": "FilterBlobsIncludeItem", + "modelAsString": false } }, - "required": [ - "status", - "lastSyncTime" - ] + "x-ms-parameter-location": "method", + "description": "Include this parameter to specify one or more datasets to include in the response." }, - "GeoReplicationStatusType": { + "FilterBlobsWhere": { + "name": "where", + "in": "query", + "required": false, "type": "string", - "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." - } - ] - } + "description": "Filters the results to return only to return only blobs whose tags match the specified expression.", + "x-ms-parameter-location": "method" }, - "JsonTextConfiguration": { - "type": "object", - "description": "Represents the JSON text configuration.", - "properties": { - "recordSeparator": { - "type": "string", - "description": "The string used to separate records." - } - } + "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." }, - "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." - } + "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." + }, + "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" }, - "required": [ - "start", - "expiry" - ] + "description": "Specify an ETag value to operate only on blobs with a matching value." }, - "LeaseDuration": { + "IfModifiedSince": { + "name": "If-Modified-Since", + "x-ms-client-name": "ifModifiedSince", + "in": "header", + "required": false, "type": "string", - "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." - } - ] - } + "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." }, - "LeaseState": { + "IfNoneMatch": { + "name": "If-None-Match", + "x-ms-client-name": "ifNoneMatch", + "in": "header", + "required": false, "type": "string", - "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." - } - ] - } + "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." }, - "LeaseStatus": { + "IfUnmodifiedSince": { + "name": "If-Unmodified-Since", + "x-ms-client-name": "ifUnmodifiedSince", + "in": "header", + "required": false, "type": "string", - "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." - } - ] - } + "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." }, - "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." - } + "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." + }, + "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" }, - "required": [ - "serviceEndpoint", - "containerName", - "segment" - ] + "description": "Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified." }, - "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." - } + "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" }, - "required": [ - "serviceEndpoint", - "containerName", - "segment" - ] + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value." }, - "ListBlobsIncludeItem": { + "ImmutabilityPolicyExpiry": { + "name": "x-ms-immutability-policy-until-date", + "x-ms-client-name": "immutabilityPolicyExpiry", + "in": "header", + "required": false, "type": "string", - "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." - } - ] - } + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method", + "description": "Specifies the date time when the blobs immutability policy is set to expire." }, - "ListContainersIncludeType": { + "ImmutabilityPolicyMode": { + "name": "x-ms-immutability-policy-mode", + "x-ms-client-name": "immutabilityPolicyMode", + "in": "header", + "required": false, "type": "string", - "description": "Include this parameter to specify that the container's metadata be returned as part of the response body.", "enum": [ - "metadata", - "deleted", - "system" + "Unlocked", + "Locked" ], "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" - } - ] - } - }, - "ListContainersSegmentResponse": { - "type": "object", - "description": "The list container segement 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." - }, - "maxxResults": { - "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." - } + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false }, - "required": [ - "serviceEndpoint", - "containerItems" - ] + "x-ms-parameter-location": "method", + "description": "Specifies the immutability policy mode to set on the blob." }, - "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." + "KeyInfo": { + "description": "Key information", + "name": "KeyInfo", + "in": "body", + "x-ms-parameter-location": "method", + "required": true, + "schema": { + "$ref": "#/definitions/KeyInfo" + } + }, + "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 } }, - "required": [ - "version", - "delete", - "read", - "write", - "retentionPolicy" - ] + "x-ms-parameter-location": "method", + "description": "Include this parameter to specify one or more datasets to include in the response." }, - "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." + "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 } }, - "required": [ - "enabled" - ] + "x-ms-parameter-location": "method", + "description": "Include this parameter to specify that the container's metadata be returned as part of the response body." }, - "ObjectReplicationMetadata": { - "type": "object", - "description": "The object replication metadata.", - "additionalProperties": { - "type": "string" - } + "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." }, - "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." - } - } + "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." }, - "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." - } + "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" }, - "required": [ - "start", - "end" - ] + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID." }, - "ParquetConfiguration": { - "type": "object", - "description": "Represents the Parquet configuration.", - "additionalProperties": {} + "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." }, - "PremiumPageBlobAccessTier": { + "Marker": { + "name": "marker", + "in": "query", + "required": false, "type": "string", - "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." - } - ] - } + "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" }, - "PublicAccessType": { + "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." + }, + "Metadata": { + "name": "x-ms-meta", + "x-ms-client-name": "metadata", + "in": "header", + "required": false, "type": "string", - "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." - } - ] - } + "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-" }, - "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" - ] + "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_" }, - "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" - ] + "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." }, - "QueryRequestType": { + "ObjectReplicationRules": { + "name": "x-ms-or", + "x-ms-client-name": "ObjectReplicationRules", + "in": "header", + "required": false, "type": "string", - "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." - } - ] - } + "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-" }, - "QuerySerialization": { - "type": "object", - "description": "The query serialization settings.", - "properties": { - "format": { - "$ref": "#/definitions/QueryFormat", - "description": "The query format." - } - }, - "required": [ - "format" - ] + "Prefix": { + "name": "prefix", + "in": "query", + "required": false, + "type": "string", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "x-ms-parameter-location": "method" }, - "QueryType": { + "PrevSnapshot": { + "name": "prevsnapshot", + "in": "query", + "required": false, "type": "string", - "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." - } - ] - } + "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." }, - "RehydratePriority": { + "PrevSnapshotUrl": { + "name": "x-ms-previous-snapshot-url", + "x-ms-client-name": "prevSnapshotUrl", + "in": "header", + "required": false, "type": "string", - "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." - } - ] - } + "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." }, - "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." - } + "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." + }, + "ProposedLeaseIdRequired": { + "name": "x-ms-proposed-lease-id", + "x-ms-client-name": "proposedLeaseId", + "in": "header", + "required": true, + "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": { + "name": "queryRequest", + "in": "body", + "x-ms-parameter-location": "client", + "schema": { + "$ref": "#/definitions/QueryRequest" }, - "required": [ - "enabled" - ] + "description": "the query request" + }, + "Range": { + "name": "x-ms-range", + "x-ms-client-name": "range", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Return only the bytes of the blob in the specified range." + }, + "RangeRequiredPutPageFromUrl": { + "name": "x-ms-range", + "x-ms-client-name": "range", + "in": "header", + "required": true, + "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." }, - "SequenceNumberActionType": { + "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", "type": "string", - "description": "The sequence number actions.", "enum": [ - "increment", "max", - "update" + "update", + "increment" ], "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." - } - ] + "modelAsString": false } }, - "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" - ] + "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." }, - "SignedIdentifiers": { - "type": "array", - "description": "Represents an array of signed identifiers", - "items": { - "$ref": "#/definitions/SignedIdentifier" - } + "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." + }, + "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." }, - "SkuName": { + "SourceContainerName": { + "name": "x-ms-source-container-name", + "x-ms-client-name": "SourceContainerName", "type": "string", - "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." - } - ] - } + "in": "header", + "required": true, + "x-ms-parameter-location": "method", + "description": "Required. Specifies the name of the container to rename." }, - "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" - ] + "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." }, - "StorageError": { - "type": "object", - "description": "The error response.", - "properties": { - "Message": { - "type": "string", - "description": "The error message." - } - } + "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." }, - "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." - } - } + "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." }, - "StorageServiceStats": { - "type": "object", - "description": "Stats for the storage service.", - "properties": { - "geoReplication": { - "$ref": "#/definitions/GeoReplication", - "description": "The geo replication stats." - } - } + "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." }, - "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." - } + "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" }, - "required": [ - "signedOid", - "signedTid", - "signedStart", - "signedExpiry", - "signedService", - "signedVersion", - "value" - ] - } - }, - "parameters": { - "Azure.Core.ClientRequestIdHeader": { - "name": "x-ms-client-request-id", + "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", "in": "header", - "description": "An opaque, globally-unique, client-generated string identifier for the request.", "required": false, "type": "string", - "format": "uuid", + "format": "date-time-rfc1123", "x-ms-parameter-location": "method", - "x-ms-client-name": "clientRequestId" + "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." }, - "Azure.Core.ConditionalRequestHeaders.ifMatch": { - "name": "If-Match", + "SourceIfNoneMatch": { + "name": "x-ms-source-if-none-match", + "x-ms-client-name": "sourceIfNoneMatch", "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-client-name": "ifMatch" + "x-ms-parameter-grouping": { + "name": "source-modified-access-conditions" + }, + "description": "Specify an ETag value to operate only on blobs without a matching value." }, - "Azure.Core.ConditionalRequestHeaders.ifModifiedSince": { - "name": "If-Modified-Since", + "SourceIfUnmodifiedSince": { + "name": "x-ms-source-if-unmodified-since", + "x-ms-client-name": "sourceIfUnmodifiedSince", "in": "header", - "description": "The request should only proceed if the entity was modified after this time.", "required": false, "type": "string", - "format": "date-time", + "format": "date-time-rfc1123", "x-ms-parameter-location": "method", - "x-ms-client-name": "ifModifiedSince" + "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." }, - "Azure.Core.ConditionalRequestHeaders.ifNoneMatch": { - "name": "If-None-Match", + "SourceLeaseId": { + "name": "x-ms-source-lease-id", + "x-ms-client-name": "sourceLeaseId", "in": "header", - "description": "The request should only proceed if no entity matches this string.", "required": false, "type": "string", "x-ms-parameter-location": "method", - "x-ms-client-name": "ifNoneMatch" + "description": "A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match." }, - "Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince": { - "name": "If-Unmodified-Since", + "SourceIfTags": { + "name": "x-ms-source-if-tags", + "x-ms-client-name": "sourceIfTags", "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-client-name": "ifUnmodifiedSince" + "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." } } } From e3360bc4dd6ff56481086b6c2fc9d64996d422a0 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 5 Nov 2024 20:40:20 -0800 Subject: [PATCH 086/129] tspconfig.yaml updates --- specification/storage/Microsoft.BlobStorage/tspconfig.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml index 0b4da9bfed37..9255f1a97c63 100644 --- a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml +++ b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml @@ -16,11 +16,13 @@ options: 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 @@ -28,12 +30,15 @@ options: 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: "storage_blob" crate-name: "storage_blob" + flavor: azure linter: extends: - - "@azure-tools/typespec-azure-core/all" + - "@azure-tools/typespec-azure-rulesets/data-plane" From a663167061747ebc0b7a3cbbd970892949fa1694 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 5 Nov 2024 20:44:51 -0800 Subject: [PATCH 087/129] example placeholder --- .../Microsoft.BlobStorage/examples/2025-01-05/placeholder.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 specification/storage/Microsoft.BlobStorage/examples/2025-01-05/placeholder.md 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 From e2860b8af5147f138d8ccc4135bd70b6ebf27a3a Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Wed, 6 Nov 2024 15:20:05 -0800 Subject: [PATCH 088/129] fix collection headers --- specification/storage/Microsoft.BlobStorage/models.tsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 6687405e0b41..e60237103976 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -2026,13 +2026,13 @@ alias ContainerNamePathParameter = { // 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. */ - @header("x-ms-meta") metadata?: string; + @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?: string; + @header("x-ms-or") objectReplicationRules?: Record; }; /** The If-Unmodified-Since header. */ From 8e0d1c458295044b3119a335f0500461039a9745 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 12 Nov 2024 13:52:15 -0800 Subject: [PATCH 089/129] fixes --- specification/storage/Microsoft.BlobStorage/models.tsp | 10 +++++----- specification/storage/Microsoft.BlobStorage/routes.tsp | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index e60237103976..6215a9842665 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -179,7 +179,7 @@ model ListContainersSegmentResponse { @Xml.name("Marker") marker?: string; /** The max results of the containers. */ - @Xml.name("MaxResults") maxxResults?: int32; + @Xml.name("MaxResults") maxResults?: int32; /** The container segment. */ // TODO: should this be unwrapped? The swagger shows it as wrapped. Example in docs: https://learn.microsoft.com/en-us/rest/api/storageservices/list-containers2?tabs=microsoft-entra-id#response-body @@ -187,7 +187,7 @@ model ListContainersSegmentResponse { /** The next marker of the containers. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API. The casing is correct." - @nextLink + @Azure.Core.nextLink @Xml.name("NextMarker") NextMarker?: string; } @@ -878,7 +878,7 @@ model ListBlobsFlatSegmentResponse { @Xml.name("Segment") segment: BlobFlatListSegment; /** The next marker of the blobs. */ - @nextLink + @Azure.Core.nextLink @Xml.name("NextMarker") nextMarker?: string; } @@ -900,7 +900,7 @@ model PageList { @Xml.name("ClearRange") clearRange?: ClearRange[]; /** The next marker. */ - @nextLink + @Azure.Core.nextLink @Xml.name("NextMarker") nextMarker?: string; } @@ -1961,7 +1961,7 @@ model ListBlobsHierarchySegmentResponse { @Xml.name("Segment") segment: BlobHierarchyListSegment; /** The next marker of the blobs. */ - @nextLink + @Azure.Core.nextLink @Xml.name("NextMarker") nextMarker?: string; } diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 8e01ad771959..96fc7282878e 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -1382,8 +1382,7 @@ interface Blob { ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; ...BlobContentMd5ResponseHeader; - }, - "application/octet-stream" + } >; /** The Get Blob Tags operation enables users to get tags on a blob. */ From 9fa8f5c7330c34b5dea1587e57131d021ae29251 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 3 Dec 2024 17:03:09 -0800 Subject: [PATCH 090/129] revert wip --- specification/storage/Microsoft.BlobStorage/models.tsp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 6215a9842665..d61a8a3fbd34 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -183,7 +183,9 @@ model ListContainersSegmentResponse { /** The container segment. */ // TODO: should this be unwrapped? The swagger shows it as wrapped. Example in docs: https://learn.microsoft.com/en-us/rest/api/storageservices/list-containers2?tabs=microsoft-entra-id#response-body - @Xml.name("Containers") containerItems: ContainerItem[]; + @Azure.Core.items + @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." @@ -1924,7 +1926,9 @@ model BlobPrefix { @Xml.name("Blobs") model BlobHierarchyListSegment { /** The blob items */ - @Xml.name("BlobItems") blobItems: BlobItemInternal[]; + @Azure.Core.items + @Xml.name("BlobItems") + blobItems: BlobItemInternal[]; /** The blob prefixes. */ @Xml.name("BlobPrefixes") blobPrefixes?: BlobPrefix[]; From 901f28a341257fdcc6ef0f889d0e47f5c96b4379 Mon Sep 17 00:00:00 2001 From: Catalina Peralta Date: Tue, 10 Dec 2024 17:22:21 -0800 Subject: [PATCH 091/129] regen openapi --- .../stable/2025-01-05/blob.json | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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 1e0596bcf7d8..a0181fcea014 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 @@ -1700,11 +1700,11 @@ "operationId": "Blob_Query", "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", "produces": [ - "application/octet-stream", + "application/xml", "application/json" ], "consumes": [ - "application/octet-stream" + "application/xml" ], "parameters": [ { @@ -4729,7 +4729,8 @@ } }, "x-ms-pageable": { - "nextLinkName": "nextMarker" + "nextLinkName": "nextMarker", + "itemName": "blobItems" } } }, @@ -13470,7 +13471,8 @@ } }, "x-ms-pageable": { - "nextLinkName": "NextMarker" + "nextLinkName": "NextMarker", + "itemName": "containerItems" } } }, @@ -15211,7 +15213,7 @@ "type": "string", "description": "The marker of the containers." }, - "maxxResults": { + "maxResults": { "type": "integer", "format": "int32", "description": "The max results of the containers." From 40b23601d03a59d83bf12c3aac4b01a9138b0b8a Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 3 Jan 2025 17:46:45 -0800 Subject: [PATCH 092/129] add continuation token decorator --- .../storage/Microsoft.BlobStorage/models.tsp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index d61a8a3fbd34..07906a6a361a 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -72,7 +72,9 @@ model FilterBlobSegment { @Xml.name("Blobs") blobs: FilterBlobItem[]; /** The next marker of the blobs. */ - @Xml.name("NextMarker") nextMarker?: string; + @continuationToken + @Xml.name("NextMarker") + nextMarker?: string; } /** The filter blob item. */ @@ -189,6 +191,7 @@ model ListContainersSegmentResponse { /** The next marker of the containers. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API. The casing is correct." + @continuationToken @Azure.Core.nextLink @Xml.name("NextMarker") NextMarker?: string; @@ -880,6 +883,7 @@ model ListBlobsFlatSegmentResponse { @Xml.name("Segment") segment: BlobFlatListSegment; /** The next marker of the blobs. */ + @continuationToken @Azure.Core.nextLink @Xml.name("NextMarker") nextMarker?: string; @@ -902,6 +906,7 @@ model PageList { @Xml.name("ClearRange") clearRange?: ClearRange[]; /** The next marker. */ + @continuationToken @Azure.Core.nextLink @Xml.name("NextMarker") nextMarker?: string; @@ -1965,6 +1970,7 @@ model ListBlobsHierarchySegmentResponse { @Xml.name("Segment") segment: BlobHierarchyListSegment; /** The next marker of the blobs. */ + @continuationToken @Azure.Core.nextLink @Xml.name("NextMarker") nextMarker?: string; @@ -2088,7 +2094,9 @@ alias MaxResultsParameter = { /** 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. */ - @query marker?: string; + @continuationToken + @query + marker?: string; }; /** The prefix parameter. */ From 0612495ab25bf6d4e5b09f72d233de92d3f67f97 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 3 Jan 2025 17:47:31 -0800 Subject: [PATCH 093/129] simplify spec --- specification/storage/Microsoft.BlobStorage/models.tsp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 07906a6a361a..b5d2d2c37ef3 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -213,7 +213,7 @@ model ContainerItem { @Xml.name("Properties") properties: ContainerProperties; /** The metadata of the container. */ - @Xml.name("Metadata") metadata?: ContainerMetadata; + @Xml.name("Metadata") metadata?: Record; } /** The properties of a container. */ @@ -266,11 +266,6 @@ model ContainerProperties { immutableStorageWithVersioningEnabled?: boolean; } -/** The metadata of a container. */ -#suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" -@Xml.name("Metadata") -model ContainerMetadata is Record; - /** Stats for the storage service. */ model StorageServiceStats { /** The geo replication stats. */ @@ -521,6 +516,7 @@ model BlobItemInternal { @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; @@ -2036,6 +2032,7 @@ alias ContainerNamePathParameter = { // 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; }; From 19f80ab25a01c8a03dec867ec8700d6d2439449b Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 3 Jan 2025 17:49:06 -0800 Subject: [PATCH 094/129] add linter suppression --- specification/storage/Microsoft.BlobStorage/routes.tsp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 96fc7282878e..6621d4b12659 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -867,6 +867,7 @@ interface Blob { /** 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("/{containerName}/{blob}?comp=undelete") @@ -881,6 +882,7 @@ interface Blob { /** 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("/{containerName}/{blob}?comp=expiry") @@ -1568,6 +1570,7 @@ interface PageBlob { /** 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") @@ -1623,6 +1626,7 @@ interface PageBlob { /** 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") getPageRanges is StorageOperation< @@ -1648,6 +1652,7 @@ interface PageBlob { /** 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") getPageRangesDiff is StorageOperation< From c93a8a31842548c91fd0dfd644d6b1a808eee2e9 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 3 Jan 2025 17:49:30 -0800 Subject: [PATCH 095/129] regen openapi --- .../stable/2025-01-05/blob.json | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) 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 a0181fcea014..a5ab6dacd0b4 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 @@ -14539,8 +14539,11 @@ "description": "The properties of the container." }, "metadata": { - "$ref": "#/definitions/ContainerMetadata", - "description": "The metadata of the container." + "type": "object", + "description": "The metadata of the container.", + "additionalProperties": { + "type": "string" + } } }, "required": [ @@ -14548,13 +14551,6 @@ "properties" ] }, - "ContainerMetadata": { - "type": "object", - "description": "The metadata of a container.", - "additionalProperties": { - "type": "string" - } - }, "ContainerProperties": { "type": "object", "description": "The properties of a container.", From cd6164d23d02a83744ff47b6dec33b1999a19bc6 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 3 Jan 2025 18:34:31 -0800 Subject: [PATCH 096/129] clean up --- specification/storage/Microsoft.BlobStorage/models.tsp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index b5d2d2c37ef3..b1d10e35a040 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -55,7 +55,6 @@ model SignedIdentifier { @Xml.name("AccessPolicy") accessPolicy: AccessPolicy; } -// TODO: looks like this is a pagedResult /** The result of a Filter Blobs API call */ @Xml.name("EnumerationResults") model FilterBlobSegment { @@ -72,7 +71,6 @@ model FilterBlobSegment { @Xml.name("Blobs") blobs: FilterBlobItem[]; /** The next marker of the blobs. */ - @continuationToken @Xml.name("NextMarker") nextMarker?: string; } @@ -192,7 +190,6 @@ model ListContainersSegmentResponse { /** The next marker of the containers. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API. The casing is correct." @continuationToken - @Azure.Core.nextLink @Xml.name("NextMarker") NextMarker?: string; } @@ -880,7 +877,6 @@ model ListBlobsFlatSegmentResponse { /** The next marker of the blobs. */ @continuationToken - @Azure.Core.nextLink @Xml.name("NextMarker") nextMarker?: string; } @@ -903,7 +899,6 @@ model PageList { /** The next marker. */ @continuationToken - @Azure.Core.nextLink @Xml.name("NextMarker") nextMarker?: string; } @@ -1967,7 +1962,6 @@ model ListBlobsHierarchySegmentResponse { /** The next marker of the blobs. */ @continuationToken - @Azure.Core.nextLink @Xml.name("NextMarker") nextMarker?: string; } From 56b8e1be728303201f960daf2e137e1b386ee39b Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 3 Jan 2025 19:21:59 -0800 Subject: [PATCH 097/129] regen openapi --- .../stable/2025-01-05/blob.json | 17 ----------------- 1 file changed, 17 deletions(-) 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 a5ab6dacd0b4..d9d36dcd4749 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 @@ -4541,9 +4541,6 @@ "$ref": "#/definitions/StorageError" } } - }, - "x-ms-pageable": { - "nextLinkName": "nextMarker" } } }, @@ -4727,10 +4724,6 @@ "$ref": "#/definitions/StorageError" } } - }, - "x-ms-pageable": { - "nextLinkName": "nextMarker", - "itemName": "blobItems" } } }, @@ -9505,9 +9498,6 @@ "$ref": "#/definitions/StorageError" } } - }, - "x-ms-pageable": { - "nextLinkName": "nextMarker" } } }, @@ -9680,9 +9670,6 @@ "$ref": "#/definitions/StorageError" } } - }, - "x-ms-pageable": { - "nextLinkName": "nextMarker" } } }, @@ -13469,10 +13456,6 @@ "$ref": "#/definitions/StorageError" } } - }, - "x-ms-pageable": { - "nextLinkName": "NextMarker", - "itemName": "containerItems" } } }, From 9972f75111206e6a0f150f1776e7c7018f2b8001 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Mon, 6 Jan 2025 14:50:38 -0800 Subject: [PATCH 098/129] use apiVersion decorator --- .../storage/Microsoft.BlobStorage/routes.tsp | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 6621d4b12659..c5701937adfc 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -12,6 +12,13 @@ using TypeSpec.Versioning; using Azure.Core; using Azure.ClientGenerator.Core; +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< @@ -25,10 +32,7 @@ op StorageOperation< @header("Content-Type") contentType: MediaType, - /** Specifies the version of the operation to use for this request. */ - @header("x-ms-version") - version: string, - + ...ApiVersionHeader, ...TParams, ...ClientRequestIdHeader, ): (TResponse & { @@ -129,10 +133,7 @@ interface Service { @header("Content-Type") multipartContentType: "multipart/mixed", - /** Specifies the version of the operation to use for this request. */ - @header("x-ms-version") - version: string, - + ...ApiVersionHeader, ...TimeoutParameter, ...ClientRequestIdHeader, ...ContentLengthParameter, @@ -389,11 +390,7 @@ interface Container { ...ContentLengthParameter, ...TimeoutParameter, - - /** Specifies the version of the operation to use for this request. */ - @header("x-ms-version") - version: string, - + ...ApiVersionHeader, ...ClientRequestIdHeader, ): ({ @statusCode statusCode: 202; @@ -605,10 +602,7 @@ interface Blob { @get @route("/{containerName}/{blob}") download( - /** Specifies the version of the operation to use for this request. */ - @header("x-ms-version") - version: string, - + ...ApiVersionHeader, ...ClientRequestIdHeader, ...ContainerNamePathParameter, ...BlobPathParameter, From 5af211e04ca056bb6879160b2d65bbfbec6780b9 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Mon, 6 Jan 2025 15:01:11 -0800 Subject: [PATCH 099/129] add typespec/xml to package.json --- package-lock.json | 14 ++++++++++++++ package.json | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 4ff3c2f2b07d..130970b4f563 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,6 +24,7 @@ "@typespec/rest": "0.63.0", "@typespec/streams": "0.63.0", "@typespec/versioning": "0.63.0", + "@typespec/xml": "0.63.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", "oav": "^3.5.1", "prettier": "~3.3.3", @@ -3816,6 +3817,19 @@ "@typespec/compiler": "~0.63.0" } }, + "node_modules/@typespec/xml": { + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@typespec/xml/-/xml-0.63.0.tgz", + "integrity": "sha512-2aQxWWqc5f4OTmC2nNafHi+ppr8GqwwMXx/2DnNjeshZF/JD0FNCYH8gV4gFZe7mfRfB9bAxNkcKj2AF01ntqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@typespec/compiler": "~0.63.0" + } + }, "node_modules/@vitest/expect": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz", diff --git a/package.json b/package.json index d40b511e7e4f..6a778af3d2b2 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@typespec/openapi3": "0.63.0", "@typespec/prettier-plugin-typespec": "0.63.0", "@typespec/rest": "0.63.0", + "@typespec/xml": "0.63.0", "@typespec/streams": "0.63.0", "@typespec/versioning": "0.63.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", @@ -29,4 +30,4 @@ "npm": ">=9.0.0" }, "private": true -} +} \ No newline at end of file From f9b9dc700641ba5db476d44343df52bb9975d77b Mon Sep 17 00:00:00 2001 From: Joel Hendrix Date: Wed, 8 Jan 2025 11:35:30 -0800 Subject: [PATCH 100/129] remove duplicate x-ms-version headers --- .../storage/Microsoft.BlobStorage/client.tsp | 4 ---- .../storage/Microsoft.BlobStorage/routes.tsp | 20 ------------------- 2 files changed, 24 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index 1aac58d98816..f2df0e4f520e 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -9,10 +9,6 @@ namespace Customizations; /** client init */ model BlobStorageClientOptions { - /** 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. */ - @header("x-ms-version") - version: string; - ...ContainerNamePathParameter; } diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index c5701937adfc..26a45e350fb3 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -41,10 +41,6 @@ op StorageOperation< @header("Content-Type") contentType: MediaType; - /** 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. */ - @header("x-ms-version") - version: string; - ...RequestIdResponseHeader; ...ClientRequestIdHeader; }) | TError; @@ -144,10 +140,6 @@ interface Service { @header("Content-Type") contentType: "multipart/mixed"; - /** 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. */ - @header("x-ms-version") - version: string; - ...RequestIdResponseHeader; ...ClientRequestIdHeader; }) | StorageError; @@ -399,10 +391,6 @@ interface Container { @header("Content-Type") multipartContentType: "multipart/mixed"; - /** 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. */ - @header("x-ms-version") - version: string; - ...RequestIdResponseHeader; } & BodyParameter) | StorageError; @@ -630,10 +618,6 @@ interface Blob { ...IfTagsParameter, ...ConditionalRequestHeaders, ): (BodyParameter & { - /** 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. */ - @header("x-ms-version") - version: string; - /** The media type of the body of the response. */ @header("Content-Type") contentType: "application/octet-stream"; @@ -685,10 +669,6 @@ interface Blob { #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" @statusCode statusCode: 206; - /** 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. */ - @header("x-ms-version") - version: string; - /** The media type of the body of the response. */ @header("Content-Type") contentType: "application/octet-stream"; From 55d0cae944b016b6166314770fd8198c9b5f7ed9 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Wed, 8 Jan 2025 11:44:08 -0800 Subject: [PATCH 101/129] spelling --- specification/storage/Microsoft.BlobStorage/models.tsp | 8 ++++---- specification/storage/Microsoft.BlobStorage/routes.tsp | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index b1d10e35a040..5229c4aca5af 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -163,7 +163,7 @@ union SkuName { string, } -/** The list container segement response */ +/** The list container segment response */ @pagedResult @Xml.name("EnumerationResults") model ListContainersSegmentResponse { @@ -602,7 +602,7 @@ model BlobPropertiesInternal { /** Whether the blog is incremental copy. */ @Xml.name("IncrementalCopy") incrementalCopy?: boolean; - /** The name of the desination snapshot. */ + /** The name of the destination snapshot. */ @Xml.name("DestinationSnapshot") destinationSnapshot?: string; /** The time the blob was deleted. */ @@ -1252,7 +1252,7 @@ alias ObjectReplicationPolicyIdResponseHeader = { objectReplicationPolicyId?: string; }; -/** The if seuqnce number equal to parameter. */ +/** 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") @@ -1279,7 +1279,7 @@ union BlockListType { Committed: "committed", /** The list of uncommitted blocks. */ - Uncomitted: "uncommitted", + Uncommitted: "uncommitted", /** Both lists together. */ All: "all", diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 26a45e350fb3..c93f451bb485 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -28,7 +28,7 @@ op StorageOperation< TError = StorageError >( /** Content-Type header */ - #suppress "@typespec/http/content-type-ignored" "Template for exisitng API" + #suppress "@typespec/http/content-type-ignored" "Template for existng API" @header("Content-Type") contentType: MediaType, @@ -37,7 +37,7 @@ op StorageOperation< ...ClientRequestIdHeader, ): (TResponse & { /** Content-Type header */ - #suppress "@typespec/http/content-type-ignored" "Template for exisitng API" + #suppress "@typespec/http/content-type-ignored" "Template for existng API" @header("Content-Type") contentType: MediaType; @@ -136,7 +136,7 @@ interface Service { ...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 exisitng API" + #suppress "@typespec/http/content-type-ignored" "Template for existng API" @header("Content-Type") contentType: "multipart/mixed"; From d1868de4f04cba938cc213f5116b6c01d594aabf Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Wed, 8 Jan 2025 11:48:40 -0800 Subject: [PATCH 102/129] comment out @pagedResult decorator --- .../storage/Microsoft.BlobStorage/models.tsp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 5229c4aca5af..65269a5fc686 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -164,7 +164,8 @@ union SkuName { } /** The list container segment response */ -@pagedResult +// FIXME: non-standard paging operation, should we have a @pagedResult decorator here? +// @pagedResult @Xml.name("EnumerationResults") model ListContainersSegmentResponse { /** The service endpoint. */ @@ -849,7 +850,8 @@ model RetentionPolicy { // List Blobs /** An enumeration of blobs. */ -@pagedResult +// FIXME: non-standard paging operation, should we have a @pagedResult decorator here? +// @pagedResult @Xml.name("EnumerationResults") model ListBlobsFlatSegmentResponse { /** The service endpoint. */ @@ -889,7 +891,8 @@ model BlobFlatListSegment { } /** Represents a page list. */ -@pagedResult +// FIXME: non-standard paging operation, should we have a @pagedResult decorator here? +// @pagedResult model PageList { /** The page ranges. */ @Xml.name("PageRange") pageRange?: PageRange[]; @@ -1931,7 +1934,8 @@ model BlobHierarchyListSegment { } /** An enumeration of blobs */ -@pagedResult +// FIXME: non-standard paging operation, should we have a @pagedResult decorator here? +// @pagedResult @Xml.name("EnumerationResults") model ListBlobsHierarchySegmentResponse { /** The service endpoint. */ From d8e7165e5ddf4e34a998b6203048ebc6003c8ad4 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Wed, 8 Jan 2025 11:52:14 -0800 Subject: [PATCH 103/129] spelling + openapi regen --- .../storage/Microsoft.BlobStorage/routes.tsp | 6 +- .../stable/2025-01-05/blob.json | 296 +----------------- 2 files changed, 7 insertions(+), 295 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index c93f451bb485..fcfbb8025151 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -28,7 +28,7 @@ op StorageOperation< TError = StorageError >( /** Content-Type header */ - #suppress "@typespec/http/content-type-ignored" "Template for existng API" + #suppress "@typespec/http/content-type-ignored" "Template for existing API" @header("Content-Type") contentType: MediaType, @@ -37,7 +37,7 @@ op StorageOperation< ...ClientRequestIdHeader, ): (TResponse & { /** Content-Type header */ - #suppress "@typespec/http/content-type-ignored" "Template for existng API" + #suppress "@typespec/http/content-type-ignored" "Template for existing API" @header("Content-Type") contentType: MediaType; @@ -136,7 +136,7 @@ interface Service { ...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 existng API" + #suppress "@typespec/http/content-type-ignored" "Template for existing API" @header("Content-Type") contentType: "multipart/mixed"; 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 d9d36dcd4749..7d3418d507ce 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 @@ -106,10 +106,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -170,10 +166,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -246,10 +238,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -449,10 +437,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -575,10 +559,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -659,10 +639,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -750,10 +726,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -1258,10 +1230,6 @@ "format": "int64", "description": "The number of tags associated with the blob" }, - "x-ms-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": { "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." @@ -1603,10 +1571,6 @@ "format": "int64", "description": "The number of tags associated with the blob" }, - "x-ms-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": { "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." @@ -1681,10 +1645,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -2083,10 +2043,6 @@ "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-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." } } }, @@ -2345,10 +2301,6 @@ "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-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." } } }, @@ -2513,10 +2465,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -3146,10 +3094,6 @@ "format": "int64", "description": "The number of tags associated with the blob" }, - "x-ms-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": { "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." @@ -3252,10 +3196,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -3367,10 +3307,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -3509,10 +3445,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -3592,10 +3524,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -3675,10 +3603,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -3803,10 +3727,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -3918,10 +3838,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -4020,10 +3936,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -4126,10 +4038,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -4238,10 +4146,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -4352,10 +4256,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -4528,10 +4428,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -4711,10 +4607,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -4866,10 +4758,6 @@ } ] } - }, - "x-ms-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." } } }, @@ -5001,10 +4889,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -5169,10 +5053,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -5348,10 +5228,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -5440,10 +5316,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -5544,10 +5416,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -5725,10 +5593,6 @@ "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": { - "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": { "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." @@ -5855,10 +5719,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -5969,10 +5829,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -6087,10 +5943,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -6213,10 +6065,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -6333,10 +6181,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -6510,10 +6354,6 @@ "type": "string", "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." }, - "x-ms-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": { "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." @@ -6933,10 +6773,6 @@ "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "x-ms-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": { "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." @@ -7356,10 +7192,6 @@ "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." }, - "x-ms-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": { "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." @@ -7452,10 +7284,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -7695,10 +7523,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -7714,10 +7538,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -7879,10 +7699,6 @@ } ] } - }, - "x-ms-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." } } }, @@ -7994,10 +7810,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -8123,10 +7935,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -8525,10 +8333,6 @@ "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": { - "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": { "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." @@ -8807,10 +8611,6 @@ "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-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." } } }, @@ -9024,10 +8824,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -9328,10 +9124,6 @@ "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-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." } } }, @@ -9485,10 +9277,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -9657,10 +9445,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -9831,10 +9615,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -9994,10 +9774,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -10148,10 +9924,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -10450,10 +10222,6 @@ "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": { - "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": { "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." @@ -10719,10 +10487,6 @@ "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-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." } } }, @@ -11018,10 +10782,6 @@ "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-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." } } }, @@ -11137,10 +10897,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -11601,10 +11357,6 @@ "type": "string", "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." }, - "x-ms-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": { "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." @@ -12057,10 +11809,6 @@ "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": { - "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": { "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." @@ -12278,10 +12026,6 @@ "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-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." } } }, @@ -12521,10 +12265,6 @@ "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-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." } } }, @@ -12958,10 +12698,6 @@ "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": { - "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": { "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." @@ -13039,7 +12775,7 @@ "description": "The list of committed blocks." }, { - "name": "Uncomitted", + "name": "Uncommitted", "value": "uncommitted", "description": "The list of uncommitted blocks." }, @@ -13116,10 +12852,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -13200,10 +12932,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -13321,10 +13049,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -13443,10 +13167,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -13591,10 +13311,6 @@ } ] } - }, - "x-ms-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." } } }, @@ -13658,10 +13374,6 @@ "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." - }, - "x-ms-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." } } }, @@ -14280,7 +13992,7 @@ }, "destinationSnapshot": { "type": "string", - "description": "The name of the desination snapshot." + "description": "The name of the destination snapshot." }, "deletedTime": { "type": "string", @@ -14442,7 +14154,7 @@ "description": "The list of committed blocks." }, { - "name": "Uncomitted", + "name": "Uncommitted", "value": "uncommitted", "description": "The list of uncommitted blocks." }, @@ -15178,7 +14890,7 @@ }, "ListContainersSegmentResponse": { "type": "object", - "description": "The list container segement response", + "description": "The list container segment response", "properties": { "serviceEndpoint": { "type": "string", From e11ada68e90cb5fc2967c6b4e2cd76e3aa2a845c Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Wed, 8 Jan 2025 11:57:07 -0800 Subject: [PATCH 104/129] update SignedIdentifiers --- specification/storage/Microsoft.BlobStorage/models.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 65269a5fc686..49f77726de37 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -42,7 +42,7 @@ model BlockLookupList { } /** Represents an array of signed identifiers */ -// TODO: do the array elements need xml.unwrapped? +@Xml.name("SignedIdentifiers") model SignedIdentifiers is Array; /** The signed identifier. */ From 8be8f66ee3dda4034ed16a3b2df8c79616349734 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Thu, 9 Jan 2025 16:02:21 -0800 Subject: [PATCH 105/129] clean up --- .../storage/Microsoft.BlobStorage/models.tsp | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 49f77726de37..b59e2d600c55 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -66,7 +66,6 @@ model FilterBlobSegment { /** The filter for the blobs. */ @Xml.name("Where") where: string; - // TODO: the docs show this as unwrapped but the swagger specified it as wrapped: https://learn.microsoft.com/en-us/rest/api/storageservices/list-blobs?tabs=microsoft-entra-id /** The blob segment. */ @Xml.name("Blobs") blobs: FilterBlobItem[]; @@ -85,7 +84,6 @@ model FilterBlobItem { @Xml.name("ContainerName") containerName: string; /** The metadata of the blob. */ - // TODO: check if this is correct BlobTags has the xml.name on it @Xml.unwrapped tags?: BlobTags; /** The version ID of the blob. */ @@ -164,8 +162,6 @@ union SkuName { } /** The list container segment response */ -// FIXME: non-standard paging operation, should we have a @pagedResult decorator here? -// @pagedResult @Xml.name("EnumerationResults") model ListContainersSegmentResponse { /** The service endpoint. */ @@ -850,8 +846,6 @@ model RetentionPolicy { // List Blobs /** An enumeration of blobs. */ -// FIXME: non-standard paging operation, should we have a @pagedResult decorator here? -// @pagedResult @Xml.name("EnumerationResults") model ListBlobsFlatSegmentResponse { /** The service endpoint. */ @@ -873,9 +867,8 @@ model ListBlobsFlatSegmentResponse { /** The max results of the blobs. */ @Xml.name("MaxResults") maxResults?: int32; - // TODO: is this correct? Looks like the name is wrong...should be "Blobs" /** The blob segment. */ - @Xml.name("Segment") segment: BlobFlatListSegment; + segment: BlobFlatListSegment; /** The next marker of the blobs. */ @continuationToken @@ -891,8 +884,6 @@ model BlobFlatListSegment { } /** Represents a page list. */ -// FIXME: non-standard paging operation, should we have a @pagedResult decorator here? -// @pagedResult model PageList { /** The page ranges. */ @Xml.name("PageRange") pageRange?: PageRange[]; @@ -1934,8 +1925,6 @@ model BlobHierarchyListSegment { } /** An enumeration of blobs */ -// FIXME: non-standard paging operation, should we have a @pagedResult decorator here? -// @pagedResult @Xml.name("EnumerationResults") model ListBlobsHierarchySegmentResponse { /** The service endpoint. */ @@ -1960,9 +1949,8 @@ model ListBlobsHierarchySegmentResponse { /** The max results of the blobs. */ @Xml.name("MaxResults") maxResults?: int32; - // TODO: Is this correct? Looks like it should be blobs /** The blob segment. */ - @Xml.name("Segment") segment: BlobHierarchyListSegment; + segment: BlobHierarchyListSegment; /** The next marker of the blobs. */ @continuationToken From 51553f8e6425090c663f917faee3485aade67354 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Thu, 9 Jan 2025 16:31:35 -0800 Subject: [PATCH 106/129] clean up --- specification/storage/Microsoft.BlobStorage/models.tsp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index b59e2d600c55..4bd999bdd181 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -179,8 +179,6 @@ model ListContainersSegmentResponse { @Xml.name("MaxResults") maxResults?: int32; /** The container segment. */ - // TODO: should this be unwrapped? The swagger shows it as wrapped. Example in docs: https://learn.microsoft.com/en-us/rest/api/storageservices/list-containers2?tabs=microsoft-entra-id#response-body - @Azure.Core.items @Xml.name("Containers") containerItems: ContainerItem[]; @@ -1021,7 +1019,6 @@ model ArrowField { } /** Represents the Parquet configuration. */ -// TODO: in swagger this was a type: object...is record unknown correct? #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" model ParquetConfiguration is Record; @@ -1900,8 +1897,6 @@ model BlobName { @Xml.name("Encoded") encoded: boolean; - // FIXME: does this need the unwrapped decorator around it? Swagger specified this property as x-ms-text - // Related issue: https://github.com/microsoft/typespec/issues/2970 /** The blob name. */ @Xml.unwrapped content: string; } From 3c1dc533c8ed23445a0756cc0e80428ff941dbab Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Tue, 14 Jan 2025 18:48:59 -0800 Subject: [PATCH 107/129] remove containerName param from client --- specification/storage/Microsoft.BlobStorage/client.tsp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index f2df0e4f520e..2fbddbd8bd55 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -7,13 +7,6 @@ using Storage.Blob; namespace Customizations; -/** client init */ -model BlobStorageClientOptions { - ...ContainerNamePathParameter; -} - -@@clientInitialization(Storage.Blob, BlobStorageClientOptions); - @@clientName(ContainerProperties.denyEncryptionScopeOverride, "PreventEncryptionScopeOverride" ); From 8937e5600dff76eede8fa89ceb9c625616e6b4f5 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Wed, 15 Jan 2025 11:06:13 -0800 Subject: [PATCH 108/129] add client customizations --- specification/storage/Microsoft.BlobStorage/client.tsp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index 2fbddbd8bd55..5459db392d19 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -7,6 +7,16 @@ using Storage.Blob; namespace Customizations; +/** Parameters to be added in client constructors */ +model BlobServiceClientParameters { + ...ContainerNamePathParameter; + ...BlobPathParameter; +} + +@@clientInitialization(Storage.Blob.Blob, BlobServiceClientParameters); +@@clientInitialization(Storage.Blob.PageBlob, BlobServiceClientParameters); +@@clientInitialization(Storage.Blob.Container, ContainerNamePathParameter); + @@clientName(ContainerProperties.denyEncryptionScopeOverride, "PreventEncryptionScopeOverride" ); From d8d0c7cdfbcfd50470e4a66f79af7ec6be03db9b Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Thu, 16 Jan 2025 17:27:33 -0800 Subject: [PATCH 109/129] add other interfaces --- specification/storage/Microsoft.BlobStorage/client.tsp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index 5459db392d19..be3d44303abd 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -14,6 +14,8 @@ model BlobServiceClientParameters { } @@clientInitialization(Storage.Blob.Blob, BlobServiceClientParameters); +@@clientInitialization(Storage.Blob.AppendBlob, BlobServiceClientParameters); +@@clientInitialization(Storage.Blob.BlockBlob, BlobServiceClientParameters); @@clientInitialization(Storage.Blob.PageBlob, BlobServiceClientParameters); @@clientInitialization(Storage.Blob.Container, ContainerNamePathParameter); From 098212748c35e5186bb9a1f9f290e7ed253cfb97 Mon Sep 17 00:00:00 2001 From: Joel Hendrix Date: Fri, 17 Jan 2025 15:57:15 -0800 Subject: [PATCH 110/129] clean up some doc comments --- .../storage/Microsoft.BlobStorage/routes.tsp | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index fcfbb8025151..5ba0ecb0e7da 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -411,7 +411,7 @@ interface Container { DateResponseHeader & FilterBlobSegment >; - /** [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 */ + /** 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" @@ -435,7 +435,7 @@ interface Container { } >; - /** [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 */ + /** 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" @@ -456,7 +456,7 @@ interface Container { } >; - /** [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 */ + /** 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" @@ -478,7 +478,7 @@ interface Container { } >; - /** [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 */ + /** 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 @@ -501,7 +501,7 @@ interface Container { } >; - /** [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 */ + /** 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" @@ -524,7 +524,7 @@ interface Container { } >; - /** [Update] The List Blobs operation returns a list of the blobs under the specified container */ + /** 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 @@ -541,7 +541,7 @@ interface Container { ListBlobsFlatSegmentResponse & DateResponseHeader >; - /** [Update] The List Blobs operation returns a list of the blobs under the specified container */ + /** 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 @@ -996,7 +996,7 @@ interface Blob { } >; - /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ + /** 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" @@ -1021,7 +1021,7 @@ interface Blob { } >; - /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ + /** 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" @@ -1043,7 +1043,7 @@ interface Blob { } >; - /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ + /** 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" @@ -1066,7 +1066,7 @@ interface Blob { } >; - /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ + /** 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" @@ -1090,7 +1090,7 @@ interface Blob { } >; - /** [Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. */ + /** 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 From b2db3e459215384d93735c3c11c6d1443710d33d Mon Sep 17 00:00:00 2001 From: Joel Hendrix Date: Mon, 3 Feb 2025 08:02:52 -0800 Subject: [PATCH 111/129] add missing x-ms-blob-type header --- .../storage/Microsoft.BlobStorage/routes.tsp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 5ba0ecb0e7da..f4cf4d087d31 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -1442,6 +1442,9 @@ interface PageBlob { ...ImmutabilityPolicyExpiryParameter; ...ImmutabilityPolicyModeParameter; ...LegalHoldOptionalParameter; + + @header("x-ms-blob-type") + blobType: "PageBlob"; }, { @statusCode statusCode: 201; @@ -1768,6 +1771,9 @@ interface AppendBlob { ...ImmutabilityPolicyExpiryParameter; ...ImmutabilityPolicyModeParameter; ...LegalHoldOptionalParameter; + + @header("x-ms-blob-type") + blobType: "AppendBlob"; }, { @statusCode statusCode: 201; @@ -1939,6 +1945,9 @@ interface BlockBlob { ...ContentCrc64Parameter; ...StructuredBodyPut; ...StructuredContentLengthParameter; + + @header("x-ms-blob-type") + blobType: "BlockBlob"; }, { @statusCode statusCode: 201; @@ -1994,6 +2003,9 @@ interface BlockBlob { ...CopySourceBlobPropertiesParameter; ...CopySourceAuthorizationParameter; ...CopySourceTagsParameter; + + @header("x-ms-blob-type") + blobType: "BlockBlob"; }, { @statusCode statusCode: 201; From 1021c5bdf48138017f5235e12cc46cd0c8796f81 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 7 Feb 2025 18:45:38 -0800 Subject: [PATCH 112/129] update lock file --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f3a2a2d08906..5046f98d5afa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "@typespec/rest": "0.64.1", "@typespec/streams": "0.64.0", "@typespec/versioning": "0.64.0", + "@typespec/xml": "0.64.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", "oav": "^3.5.1", "prettier": "~3.3.3", @@ -3645,7 +3646,6 @@ "integrity": "sha512-Sk+5S2C4YK+fqSadAlzRBSZbhvtDtxLQUS+vrYgiqzVS1F61nUmP7gQGUj+Kps7ncZSppPZystWJJnF7K34UJg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=18.0.0" }, @@ -10008,4 +10008,4 @@ } } } -} \ No newline at end of file +} From d218e6edf0f13ac24e453979d76c24ed6f2ad1f2 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 7 Feb 2025 18:46:53 -0800 Subject: [PATCH 113/129] regen openapi --- .../stable/2025-01-05/blob.json | 76 ++++++++++++++++--- 1 file changed, 64 insertions(+), 12 deletions(-) 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 7d3418d507ce..981fca68fe48 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 @@ -3742,7 +3742,7 @@ "/{containerName}?comp=lease&restype=container&acquire": { "put": { "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", + "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", @@ -3853,7 +3853,7 @@ "/{containerName}?comp=lease&restype=container&release": { "put": { "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", + "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", @@ -3951,7 +3951,7 @@ "/{containerName}?comp=lease&restype=container&renew": { "put": { "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", + "description": "The Renew Lease operation renews an existing lease.", "parameters": [ { "name": "x-ms-version", @@ -4053,7 +4053,7 @@ "/{containerName}?comp=lease&restype=container&break": { "put": { "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", + "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", @@ -4161,7 +4161,7 @@ "/{containerName}?comp=lease&restype=container&change": { "put": { "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", + "description": "The Change Lease operation is used to change the ID of an existing lease.", "parameters": [ { "name": "x-ms-version", @@ -4271,7 +4271,7 @@ "/{containerName}?restype=container&comp=list&flat": { "get": { "operationId": "Container_ListBlobFlatSegment", - "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", + "description": "The List Blobs operation returns a list of the blobs under the specified container.", "produces": [ "application/xml", "application/json" @@ -4443,7 +4443,7 @@ "/{containerName}?restype=container&comp=list&hierarchy": { "get": { "operationId": "Container_ListBlobHierarchySegment", - "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", + "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" @@ -5611,7 +5611,7 @@ "/{containerName}/{blob}?comp=lease&acquire": { "put": { "operationId": "Blob_AcquireLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "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": [ { "name": "x-ms-version", @@ -5734,7 +5734,7 @@ "/{containerName}/{blob}?comp=lease&release": { "put": { "operationId": "Blob_ReleaseLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "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": [ { "name": "x-ms-version", @@ -5844,7 +5844,7 @@ "/{containerName}/{blob}?comp=lease&renew": { "put": { "operationId": "Blob_RenewLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "description": "The Renew Lease operation renews an existing lease.", "parameters": [ { "name": "x-ms-version", @@ -5958,7 +5958,7 @@ "/{containerName}/{blob}?comp=lease&change": { "put": { "operationId": "Blob_ChangeLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "description": "The Change Lease operation is used to change the ID of an existing lease.", "parameters": [ { "name": "x-ms-version", @@ -6080,7 +6080,7 @@ "/{containerName}/{blob}?comp=lease&break": { "put": { "operationId": "Blob_BreakLease", - "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", + "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", @@ -8285,6 +8285,19 @@ "type": "boolean", "x-ms-client-name": "legalHold" }, + { + "name": "x-ms-blob-type", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "PageBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -10174,6 +10187,19 @@ "type": "boolean", "x-ms-client-name": "legalHold" }, + { + "name": "x-ms-blob-type", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "AppendBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -11295,6 +11321,19 @@ "format": "int64", "x-ms-client-name": "structuredContentLength" }, + { + "name": "x-ms-blob-type", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "BlockBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -11761,6 +11800,19 @@ "type": "string", "x-ms-client-name": "copySourceTags" }, + { + "name": "x-ms-blob-type", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "BlockBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } From 05a7704cab060f068dbbc4860243a24e82a8c578 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Tue, 11 Feb 2025 17:11:02 -0800 Subject: [PATCH 114/129] update blob type --- .../storage/Microsoft.BlobStorage/routes.tsp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index f4cf4d087d31..821ac3fb729a 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -1443,8 +1443,9 @@ interface PageBlob { ...ImmutabilityPolicyModeParameter; ...LegalHoldOptionalParameter; + /** The type of the blob. */ @header("x-ms-blob-type") - blobType: "PageBlob"; + blobType: BlobType.PageBlob; }, { @statusCode statusCode: 201; @@ -1772,8 +1773,9 @@ interface AppendBlob { ...ImmutabilityPolicyModeParameter; ...LegalHoldOptionalParameter; + /** The type of the blob. */ @header("x-ms-blob-type") - blobType: "AppendBlob"; + blobType: BlobType.AppendBlob; }, { @statusCode statusCode: 201; @@ -1946,8 +1948,9 @@ interface BlockBlob { ...StructuredBodyPut; ...StructuredContentLengthParameter; + /** The type of the blob. */ @header("x-ms-blob-type") - blobType: "BlockBlob"; + blobType: BlobType.BlockBlob; }, { @statusCode statusCode: 201; @@ -2004,8 +2007,9 @@ interface BlockBlob { ...CopySourceAuthorizationParameter; ...CopySourceTagsParameter; + /** The type of the blob. */ @header("x-ms-blob-type") - blobType: "BlockBlob"; + blobType: BlobType.BlockBlob; }, { @statusCode statusCode: 201; From 308f6b4a214ac879c6b67fa62653046100d5d1ef Mon Sep 17 00:00:00 2001 From: Joel Hendrix Date: Tue, 18 Feb 2025 07:29:59 -0800 Subject: [PATCH 115/129] add missing content type for appendBlock --- specification/storage/Microsoft.BlobStorage/routes.tsp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 821ac3fb729a..c5103fff5abf 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -1834,7 +1834,8 @@ interface AppendBlob { ...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. */ From 0583c50dbd43e94eb062bf44a4526af6e4c6f80d Mon Sep 17 00:00:00 2001 From: vincenttran-msft <101599632+vincenttran-msft@users.noreply.github.com> Date: Tue, 18 Feb 2025 16:29:52 -0800 Subject: [PATCH 116/129] Add initial crate-version, rename package-dir and crate-name (#32687) --- specification/storage/Microsoft.BlobStorage/tspconfig.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml index 9255f1a97c63..85860efa7c93 100644 --- a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml +++ b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml @@ -36,8 +36,9 @@ options: namespace: com.azure.storage.blob flavor: azure "@azure-tools/typespec-rust": - package-dir: "storage_blob" - crate-name: "storage_blob" + package-dir: "azure_storage_blobs" + crate-name: "azure_storage_blobs" + crate-version: "0.1.0" flavor: azure linter: extends: From 469022d92f8d8e94208c2a5886055dbc97dd1ed1 Mon Sep 17 00:00:00 2001 From: Joel Hendrix Date: Wed, 19 Feb 2025 09:45:02 -0800 Subject: [PATCH 117/129] make request and response media types configurable moved query to block blob as it's specific to that blob type --- .../storage/Microsoft.BlobStorage/routes.tsp | 125 +++++++++--------- 1 file changed, 64 insertions(+), 61 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index c5103fff5abf..5496cb9874ec 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -24,13 +24,14 @@ alias ApiVersionHeader = { op StorageOperation< TParams extends TypeSpec.Reflection.Model | void, TResponse extends TypeSpec.Reflection.Model | void, - MediaType extends string = "application/xml", + 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: MediaType, + contentType: RequestMediaType, ...ApiVersionHeader, ...TParams, @@ -39,7 +40,7 @@ op StorageOperation< /** Content-Type header */ #suppress "@typespec/http/content-type-ignored" "Template for existing API" @header("Content-Type") - contentType: MediaType; + contentType: ResponseMediaType; ...RequestIdResponseHeader; ...ClientRequestIdHeader; @@ -1303,64 +1304,6 @@ interface Blob { } >; - /** 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") - 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; - } - >; - /** 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 @@ -2180,4 +2123,64 @@ interface BlockBlob { ...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") + 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" + >; } From 7171d9625d714a19efe1bd28adbf352c3409bc30 Mon Sep 17 00:00:00 2001 From: Joel Hendrix Date: Wed, 19 Feb 2025 16:10:14 -0800 Subject: [PATCH 118/129] fix client naming for x-ms-meta and x-ms-or headers for Rust --- specification/storage/Microsoft.BlobStorage/client.tsp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index be3d44303abd..7798c1253a4b 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -31,3 +31,6 @@ model BlobServiceClientParameters { @@clientName(BlobPropertiesInternal.immutabilityPolicyUntilDate, "ImmutabilityPolicyExpiresOn" ); + +@@clientName(MetadataHeaders, "metadata", "rust"); +@@clientName(ObjectReplicationHeaders, "objectReplicationHeaders", "rust"); From 1530d964ce2489aae004030bead632ffbfc4ec28 Mon Sep 17 00:00:00 2001 From: Joel Hendrix Date: Thu, 20 Feb 2025 12:58:14 -0800 Subject: [PATCH 119/129] fix headers that contain time stamps --- .../storage/Microsoft.BlobStorage/models.tsp | 96 +++++++++---------- .../storage/Microsoft.BlobStorage/routes.tsp | 4 +- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 4bd999bdd181..84fc09320779 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -212,9 +212,9 @@ model ContainerItem { model ContainerProperties { /** The date-time the container was last modified in RFC1123 format. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") + @encode("rfc7231") @Xml.name("Last-Modified") - lastModified: string; + lastModified: utcDateTime; /** The ETag of the container. */ @Xml.name("ETag") eTag: string; @@ -246,9 +246,9 @@ model ContainerProperties { /** The deleted time of the container. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") + @encode("rfc7231") @Xml.name("DeletedTime") - deletedTime?: string; + deletedTime?: utcDateTime; /** The remaining retention days of the container. */ @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; @@ -271,9 +271,9 @@ model GeoReplication { /** 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("date-time-rfc1123") + @encode("rfc7231") @Xml.name("LastSyncTime") - lastSyncTime: string; + lastSyncTime: utcDateTime; } /** The geo replication status. */ @@ -521,15 +521,15 @@ model BlobItemInternal { model BlobPropertiesInternal { /** The date-time the blob was created in RFC1123 format. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") + @encode("rfc7231") @Xml.name("Creation-Time") - creationTime?: string; + creationTime?: utcDateTime; /** The date-time the blob was last modified in RFC1123 format. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") + @encode("rfc7231") @Xml.name("Last-Modified") - lastModified: string; + lastModified: utcDateTime; /** The blog ETag. */ @Xml.name("ETag") eTag: string; @@ -584,9 +584,9 @@ model BlobPropertiesInternal { /** The copy completion time of the blob. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") + @encode("rfc7231") @Xml.name("CopyCompletionTime") - copyCompletionTime?: string; + copyCompletionTime?: utcDateTime; /** The copy status description of the blob. */ @Xml.name("CopyStatusDescription") copyStatusDescription?: string; @@ -602,9 +602,9 @@ model BlobPropertiesInternal { /** The time the blob was deleted. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") + @encode("rfc7231") @Xml.name("DeletedTime") - deletedTime?: string; + deletedTime?: utcDateTime; /** The remaining retention days of the blob. */ @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; @@ -626,18 +626,18 @@ model BlobPropertiesInternal { /** The access tier change time of the blob. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") + @encode("rfc7231") @Xml.name("AccessTierChangeTime") - accessTierChangeTime?: string; + 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("date-time-rfc1123") + @encode("rfc7231") @Xml.name("Expiry-Time") - expiryTime?: string; + expiryTime?: utcDateTime; /** Whether the blob is sealed. */ @Xml.name("Sealed") @@ -648,15 +648,15 @@ model BlobPropertiesInternal { /** The last access time of the blob. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") + @encode("rfc7231") @Xml.name("LastAccessTime") - lastAccessTime?: string; + lastAccessTime?: utcDateTime; /** The immutability policy until time of the blob. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") + @encode("rfc7231") @Xml.name("ImmutabilityPolicyUntilDate") - immutabilityPolicyUntilDate?: string; + immutabilityPolicyUntilDate?: utcDateTime; /** The immutability policy mode of the blob. */ @Xml.name("ImmutabilityPolicyMode") @@ -1127,9 +1127,9 @@ alias ExpiryTimeHeader = { /** The time this blob will expire. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" @clientName("ExpiresOn") - @encode("date-time-rfc1123") + @encode("rfc7231") @header("x-ms-expiry-time") - expiryTime?: string; + expiryTime?: utcDateTime; }; /** The immutability policy expires on response header. */ @@ -1137,18 +1137,18 @@ 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("date-time-rfc1123") + @encode("rfc7231") @header("x-ms-immutability-policy-until-date") - immutabilityPolicyUntilDate?: string; + 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("date-time-rfc1123") + @encode("rfc7231") @header("x-ms-last-access-time") - lastAccessed?: string; + lastAccessed?: utcDateTime; }; /** The is sealed response header. */ @@ -1224,9 +1224,9 @@ alias CopyStatusDescriptionResponseHeader = { 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("date-time-rfc1123") + @encode("rfc7231") @header("x-ms-copy-completion-time") - copyCompletionTime?: string; + copyCompletionTime?: utcDateTime; }; /** The blob type response header. */ @@ -1347,9 +1347,9 @@ alias CopyIdResponseHeader = { 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("date-time-rfc1123") + @encode("rfc7231") @header("x-ms-source-if-unmodified-since") - sourceIfUnmodifiedSince?: string; + sourceIfUnmodifiedSince?: utcDateTime; }; /** The lease time response header. */ @@ -1419,10 +1419,10 @@ alias ImmutabilityPolicyModeResponseHeader = { alias ImmutabilityPolicyExpiryResponseHeader = { /** Indicates the time the immutability policy will expire. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") + @encode("rfc7231") @clientName("ImmutabilityPolicyExpiry") @header("x-ms-immutability-policy-until-date") - immutabilityPolicyUntilDate: string; + immutabilityPolicyUntilDate: utcDateTime; }; /** The blob sequence number response header. */ @@ -1510,27 +1510,27 @@ alias VersionIdResponseHeader = { alias CreationTimeResponseHeader = { /** Returns the date and time the blob was created. */ #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("date-time-rfc1123") + @encode("rfc7231") @header("x-ms-creation-time") - creationTime: string; + 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("date-time-rfc1123") + @encode("rfc7231") @header("Last-Modified") - lastModified: string; + 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("date-time-rfc1123") + @encode("rfc7231") @header("Date") - date: string; + date: utcDateTime; }; /** The ETag response header */ @@ -1612,8 +1612,8 @@ 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("date-time-rfc1123") - sourceIfModifiedSince?: string; + @encode("rfc7231") + sourceIfModifiedSince?: utcDateTime; }; /** The content CRC64 parameter. */ @@ -1657,9 +1657,9 @@ alias ImmutabilityPolicyModeParameter = { 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("date-time-rfc1123") + @encode("rfc7231") @header("x-ms-immutability-policy-until-date") - immutabilityPolicyExpiry?: string; + immutabilityPolicyExpiry?: utcDateTime; }; /** The blobs tags header parameter. */ @@ -2027,18 +2027,18 @@ alias ObjectReplicationHeaders = { 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("date-time-rfc1123") + @encode("rfc7231") @header("If-Unmodified-Since") - ifUnmodifiedSince?: string; + 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("date-time-rfc1123") + @encode("rfc7231") @header("If-Modified-Since") - ifModifiedSince?: string; + ifModifiedSince?: utcDateTime; }; /** The filter blobs include parameter. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 5496cb9874ec..72bacbd6df27 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -790,9 +790,9 @@ interface Blob { /** 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("date-time-rfc1123") + @encode("rfc7231") @header("x-ms-access-tier-change-time") - accessTierChangeTime?: string; + accessTierChangeTime?: utcDateTime; ...VersionIdResponseHeader; ...IsCurrentVersionResponseHeader; From c7a7a98bb2f7db2090f01c3722e24cd8d3238cf6 Mon Sep 17 00:00:00 2001 From: Joel Hendrix Date: Thu, 20 Feb 2025 13:02:47 -0800 Subject: [PATCH 120/129] consolidate redundant response headers --- specification/storage/Microsoft.BlobStorage/models.tsp | 10 ---------- specification/storage/Microsoft.BlobStorage/routes.tsp | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index 84fc09320779..fd893e86d6d4 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -1415,16 +1415,6 @@ alias ImmutabilityPolicyModeResponseHeader = { immutabilityPolicyMode: BlobImmutabilityPolicyMode; }; -/** The immutability policy expiration response header. */ -alias ImmutabilityPolicyExpiryResponseHeader = { - /** Indicates the time the immutability policy will expire. */ - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("rfc7231") - @clientName("ImmutabilityPolicyExpiry") - @header("x-ms-immutability-policy-until-date") - immutabilityPolicyUntilDate: utcDateTime; -}; - /** 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. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 72bacbd6df27..e425263b1b06 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -924,7 +924,7 @@ interface Blob { }, { ...DateResponseHeader; - ...ImmutabilityPolicyExpiryResponseHeader; + ...ImmutabilityPolicyExpiresOnResponseHeader; ...ImmutabilityPolicyModeResponseHeader; } >; From e5bdccbc8a36bb1eb1a94574c524d735f4762ddb Mon Sep 17 00:00:00 2001 From: Joel Hendrix Date: Thu, 20 Feb 2025 14:16:03 -0800 Subject: [PATCH 121/129] fix getBlockList --- .../storage/Microsoft.BlobStorage/models.tsp | 22 +++++++++++++++++++ .../storage/Microsoft.BlobStorage/routes.tsp | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index fd893e86d6d4..3356637f2d88 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -22,6 +22,28 @@ model StorageError { /// 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 { diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index e425263b1b06..9c5bbfd805c6 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -2116,7 +2116,7 @@ interface BlockBlob { ...LeaseIdOptionalParameter; ...IfTagsParameter; }, - BlockLookupList & { + BlockList & { ...LastModifiedResponseHeader; ...EtagResponseHeader; ...BlobContentLengthRequired; From 1348546c54a497c02fd4af8d1eec9fe28e7ee530 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 21 Feb 2025 15:21:13 -0800 Subject: [PATCH 122/129] suppress swagger lint error --- .../Microsoft.BlobStorage/readme.md | 60 +++++++++++-------- .../stable/2025-01-05/blob.json | 4 ++ 2 files changed, 39 insertions(+), 25 deletions(-) diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/readme.md b/specification/storage/data-plane/Microsoft.BlobStorage/readme.md index 1ea989887762..c8bc60fef981 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: stable/2025-01-05/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 981fca68fe48..b7f275d5ded6 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 @@ -8288,6 +8288,7 @@ { "name": "x-ms-blob-type", "in": "header", + "description": "The type of the blob.", "required": true, "type": "string", "enum": [ @@ -10190,6 +10191,7 @@ { "name": "x-ms-blob-type", "in": "header", + "description": "The type of the blob.", "required": true, "type": "string", "enum": [ @@ -11324,6 +11326,7 @@ { "name": "x-ms-blob-type", "in": "header", + "description": "The type of the blob.", "required": true, "type": "string", "enum": [ @@ -11803,6 +11806,7 @@ { "name": "x-ms-blob-type", "in": "header", + "description": "The type of the blob.", "required": true, "type": "string", "enum": [ From 1468fa90d8253b75d2f467cc361607b52db1a30f Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 21 Feb 2025 17:26:17 -0800 Subject: [PATCH 123/129] update namespace structure + client customizations --- .../storage/Microsoft.BlobStorage/client.tsp | 44 +- .../storage/Microsoft.BlobStorage/routes.tsp | 4216 +++++++++-------- 2 files changed, 2148 insertions(+), 2112 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index 7798c1253a4b..439f4479b22b 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -13,11 +13,45 @@ model BlobServiceClientParameters { ...BlobPathParameter; } -@@clientInitialization(Storage.Blob.Blob, BlobServiceClientParameters); -@@clientInitialization(Storage.Blob.AppendBlob, BlobServiceClientParameters); -@@clientInitialization(Storage.Blob.BlockBlob, BlobServiceClientParameters); -@@clientInitialization(Storage.Blob.PageBlob, BlobServiceClientParameters); -@@clientInitialization(Storage.Blob.Container, ContainerNamePathParameter); +@@clientNamespace(Storage.Blob, "Azure.Storage.Blobs"); +@@clientNamespace(Storage.Blob.Blob, "Azure.Storage.Blobs"); +@@clientNamespace(Storage.Blob.Container, "Azure.Storage.Blobs"); +@@clientNamespace(Storage.Blob.AppendBlob, "Azure.Storage.Blobs"); +@@clientNamespace(Storage.Blob.BlockBlob, "Azure.Storage.Blobs"); +@@clientNamespace(Storage.Blob.PageBlob, "Azure.Storage.Blobs"); + +@@clientName(Storage.Blob, "ServiceClient"); + +@@clientInitialization(Storage.Blob.Blob, + { + parameters: BlobServiceClientParameters, + initializedBy: InitializedBy.parent | InitializedBy.individually, + } +); +@@clientInitialization(Storage.Blob.Container, + { + parameters: ContainerNamePathParameter, + initializedBy: InitializedBy.parent | InitializedBy.individually, + } +); +@@clientInitialization(Storage.Blob.AppendBlob, + { + parameters: BlobServiceClientParameters, + initializedBy: InitializedBy.parent | InitializedBy.individually, + } +); +@@clientInitialization(Storage.Blob.BlockBlob, + { + parameters: BlobServiceClientParameters, + initializedBy: InitializedBy.parent | InitializedBy.individually, + } +); +@@clientInitialization(Storage.Blob.PageBlob, + { + parameters: BlobServiceClientParameters, + initializedBy: InitializedBy.parent | InitializedBy.individually, + } +); @@clientName(ContainerProperties.denyEncryptionScopeOverride, "PreventEncryptionScopeOverride" diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 9c5bbfd805c6..1368f914150f 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -4,747 +4,641 @@ import "@azure-tools/typespec-azure-core"; import "@typespec/http"; import "./models.tsp"; -namespace Storage.Blob; - using TypeSpec.Http; using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; using Azure.ClientGenerator.Core; -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; - -#suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." -interface Service { - /** 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") - 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") - getProperties is StorageOperation; - - /** 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") - 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") - 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") - 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") - 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") - submitBatch( - /** Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_ */ +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") - multipartContentType: "multipart/mixed", + contentType: RequestMediaType, ...ApiVersionHeader, - ...TimeoutParameter, + ...TParams, ...ClientRequestIdHeader, - ...ContentLengthParameter, - ...BodyParameter, - ): (BodyParameter & { - /** The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID */ + ): (TResponse & { + /** Content-Type header */ #suppress "@typespec/http/content-type-ignored" "Template for existing API" @header("Content-Type") - contentType: "multipart/mixed"; + contentType: ResponseMediaType; ...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") - 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." -interface 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("/{containerName}?restype=container") - 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("/{containerName}?restype=container") - 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("/{containerName}?restype=container") - 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("/{containerName}?restype=container&comp=metadata") - 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("/{containerName}?restype=container&comp=acl") - 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("/{containerName}?restype=container&comp=acl") - 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("/{containerName}?restype=container&comp=undelete") - 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("/{containerName}?restype=container&comp=rename") - 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("/{containerName}?restype=container&comp=batch") - 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("/{containerName}?restype=container&comp=blobs") - 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("/{containerName}?comp=lease&restype=container&acquire") - 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("/{containerName}?comp=lease&restype=container&release") - 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("/{containerName}?comp=lease&restype=container&renew") - 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("/{containerName}?comp=lease&restype=container&break") - breakLease is StorageOperation< - { - ...ContainerNamePathParameter; - ...TimeoutParameter; - ...IfModifiedSinceParameter; - ...IfUnmodifiedSinceParameter; - ...LeaseBreakPeriodParameter; - }, - { + }) | TError; + + #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." + namespace Service { + /** 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; + + /** 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." + 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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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; - ...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("/{containerName}?comp=lease&restype=container&change") - 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("/{containerName}?restype=container&comp=list&flat") - 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("/{containerName}?restype=container&comp=list&hierarchy") - 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("/{containerName}?restype=account&comp=properties") - 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." -interface 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 - @route("/{containerName}/{blob}") - 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 - @route("/{containerName}/{blob}") - getProperties is StorageOperation< - { - ...ContainerNamePathParameter; - ...BlobPathParameter; - ...SnapshotParameter; - ...VersionIdParameter; - ...TimeoutParameter; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...ConditionalRequestHeaders; - ...IfTagsParameter; - }, - { + /** 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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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("/{containerName}?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." + 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 + @route("/{containerName}/{blob}") + 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; @@ -752,1406 +646,41 @@ interface Blob { ...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; + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; ...AcceptRangesResponseHeader; + ...DateResponseHeader; ...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; + ...BlobContentMd5ResponseHeader; ...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 - @route("/{containerName}/{blob}") - 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("/{containerName}/{blob}?comp=undelete") - 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("/{containerName}/{blob}?comp=expiry") - 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("/{containerName}/{blob}?comp=properties&SetHTTPHeaders") - 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("/{containerName}/{blob}?comp=immutabilityPolicies") - 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("/{containerName}/{blob}?comp=immutabilityPolicies") - 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("/{containerName}/{blob}?comp=legalhold") - 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("/{containerName}/{blob}?comp=metadata") - 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("/{containerName}/{blob}?comp=lease&acquire") - 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("/{containerName}/{blob}?comp=lease&release") - 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("/{containerName}/{blob}?comp=lease&renew") - 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("/{containerName}/{blob}?comp=lease&change") - 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("/{containerName}/{blob}?comp=lease&break") - 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("/{containerName}/{blob}?comp=snapshot") - 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("/{containerName}/{blob}?comp=copy") - 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("/{containerName}/{blob}?comp=copy&sync") - 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("/{containerName}/{blob}?comp=copy©id") - 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("/{containerName}/{blob}?comp=tier") - 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("/{containerName}/{blob}?restype=account&comp=properties&blob") - 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("/{containerName}/{blob}?comp=tags") - 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("/{containerName}/{blob}?comp=tags") - 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." -interface 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") - 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") - 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") - 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") - 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") - 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") - 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") - 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") - 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") - 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." -interface 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") - 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" - @put - @route("/{containerName}/{blob}?comp=appendblock") - 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") - 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") - 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." -interface 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") - 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") - 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") - 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") - 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") - 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") - 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") - query is StorageOperation< - { - ...ContainerNamePathParameter; - ...BlobPathParameter; - - /** The query request */ - @body - queryRequest: QueryRequest; - - ...SnapshotParameter; - ...TimeoutParameter; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...ConditionalRequestHeaders; - ...IfTagsParameter; - }, - BodyParameter & { + ...StructuredContentLengthResponseHeader; + }) | (BodyParameter & { #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" - @statusCode statusCode: 200 | 206; + @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; @@ -2167,11 +696,13 @@ interface BlockBlob { ...CopyStatusDescriptionResponseHeader; ...CopyIdResponseHeader; ...CopyProgressResponseHeader; - ...CopySourceResponseHeader; ...CopyStatusResponseHeader; + ...CopySourceResponseHeader; ...LeaseDurationHeader; ...LeaseStateResponseHeader; ...LeaseStatusResponseHeader; + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; ...AcceptRangesResponseHeader; ...DateResponseHeader; ...BlobCommittedBlockCountResponseHeader; @@ -2179,8 +710,1479 @@ interface BlockBlob { ...EncryptionKeySha256ResponseHeader; ...EncryptionScopeResponseHeader; ...BlobContentMd5ResponseHeader; - }, - "application/xml", - "application/octet-stream" - >; -} + ...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 + @route("/{containerName}/{blob}") + 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 + @route("/{containerName}/{blob}") + 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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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" + >; + } +} \ No newline at end of file From 95265d47f239ba43a990a5a815cf61d18ddcfcdf Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 21 Feb 2025 17:26:26 -0800 Subject: [PATCH 124/129] openapi --- .../stable/2025-01-05/blob.json | 395 ++++++++++-------- 1 file changed, 218 insertions(+), 177 deletions(-) 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 b7f275d5ded6..82128a2cbce0 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 @@ -226,7 +226,7 @@ "headers": { "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-client-request-id": { @@ -297,7 +297,7 @@ "headers": { "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" }, "ETag": { @@ -306,7 +306,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-public-access": { @@ -538,7 +538,7 @@ "headers": { "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" }, "ETag": { @@ -547,7 +547,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -692,7 +692,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifModifiedSince" }, { @@ -701,7 +701,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifUnmodifiedSince" }, { @@ -714,7 +714,7 @@ "headers": { "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-client-request-id": { @@ -940,7 +940,7 @@ }, "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" }, "ETag": { @@ -949,7 +949,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-committed-block-count": { @@ -1008,7 +1008,7 @@ }, "x-ms-copy-completion-time": { "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-id": { @@ -1065,7 +1065,7 @@ }, "x-ms-creation-time": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "Returns the date and time the blob was created." }, "x-ms-encryption-key-sha256": { @@ -1108,7 +1108,7 @@ }, "x-ms-immutability-policy-until-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 blob immutability policy will expire." }, "x-ms-is-current-version": { @@ -1117,7 +1117,7 @@ }, "x-ms-last-access-time": { "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-lease-duration": { @@ -1277,7 +1277,7 @@ }, "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" }, "ETag": { @@ -1286,7 +1286,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-committed-block-count": { @@ -1349,7 +1349,7 @@ }, "x-ms-copy-completion-time": { "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-id": { @@ -1406,7 +1406,7 @@ }, "x-ms-creation-time": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "Returns the date and time the blob was created." }, "x-ms-encryption-key-sha256": { @@ -1449,7 +1449,7 @@ }, "x-ms-immutability-policy-until-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 blob immutability policy will expire." }, "x-ms-is-current-version": { @@ -1458,7 +1458,7 @@ }, "x-ms-last-access-time": { "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-lease-duration": { @@ -1633,7 +1633,7 @@ "headers": { "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-client-request-id": { @@ -1657,10 +1657,10 @@ } }, "post": { - "operationId": "Blob_Query", + "operationId": "BlockBlob_Query", "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", "produces": [ - "application/xml", + "application/octet-stream", "application/json" ], "consumes": [ @@ -1829,7 +1829,7 @@ }, "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" }, "ETag": { @@ -1838,7 +1838,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-committed-block-count": { @@ -1897,7 +1897,7 @@ }, "x-ms-copy-completion-time": { "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-id": { @@ -2087,7 +2087,7 @@ }, "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" }, "ETag": { @@ -2096,7 +2096,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-committed-block-count": { @@ -2155,7 +2155,7 @@ }, "x-ms-copy-completion-time": { "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-id": { @@ -2453,7 +2453,7 @@ "headers": { "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-client-request-id": { @@ -2634,7 +2634,7 @@ }, "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" }, "ETag": { @@ -2643,7 +2643,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-access-tier": { @@ -2756,7 +2756,7 @@ }, "x-ms-access-tier-change-time": { "type": "string", - "format": "date-time-rfc1123", + "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." }, "x-ms-access-tier-inferred": { @@ -2844,7 +2844,7 @@ }, "x-ms-copy-completion-time": { "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-destination-snapshot": { @@ -2905,7 +2905,7 @@ }, "x-ms-creation-time": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "Returns the date and time the blob was created." }, "x-ms-encryption-key-sha256": { @@ -2918,7 +2918,7 @@ }, "x-ms-expiry-time": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The time this blob will expire." }, "x-ms-immutability-policy-mode": { @@ -2953,7 +2953,7 @@ }, "x-ms-immutability-policy-until-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 blob immutability policy will expire." }, "x-ms-incremental-copy": { @@ -2966,7 +2966,7 @@ }, "x-ms-last-access-time": { "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-lease-duration": { @@ -3162,7 +3162,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifModifiedSince" }, { @@ -3175,7 +3175,7 @@ "headers": { "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" }, "ETag": { @@ -3184,7 +3184,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -3262,7 +3262,7 @@ "headers": { "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" }, "ETag": { @@ -3271,7 +3271,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-public-access": { @@ -3393,7 +3393,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifModifiedSince" }, { @@ -3402,7 +3402,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifUnmodifiedSince" }, { @@ -3424,7 +3424,7 @@ "headers": { "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" }, "ETag": { @@ -3433,7 +3433,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -3512,7 +3512,7 @@ "headers": { "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-client-request-id": { @@ -3591,7 +3591,7 @@ "headers": { "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-client-request-id": { @@ -3715,7 +3715,7 @@ "headers": { "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-client-request-id": { @@ -3791,7 +3791,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifModifiedSince" }, { @@ -3800,7 +3800,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifUnmodifiedSince" }, { @@ -3813,7 +3813,7 @@ "headers": { "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" }, "ETag": { @@ -3822,7 +3822,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -3893,7 +3893,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifModifiedSince" }, { @@ -3902,7 +3902,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifUnmodifiedSince" }, { @@ -3915,7 +3915,7 @@ "headers": { "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" }, "ETag": { @@ -3924,7 +3924,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -3991,7 +3991,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifModifiedSince" }, { @@ -4000,7 +4000,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifUnmodifiedSince" }, { @@ -4013,7 +4013,7 @@ "headers": { "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" }, "ETag": { @@ -4022,7 +4022,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -4085,7 +4085,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifModifiedSince" }, { @@ -4094,7 +4094,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifUnmodifiedSince" }, { @@ -4116,7 +4116,7 @@ "headers": { "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" }, "ETag": { @@ -4125,7 +4125,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -4209,7 +4209,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifModifiedSince" }, { @@ -4218,7 +4218,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifUnmodifiedSince" }, { @@ -4231,7 +4231,7 @@ "headers": { "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" }, "ETag": { @@ -4240,7 +4240,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -4416,7 +4416,7 @@ "headers": { "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-client-request-id": { @@ -4595,7 +4595,7 @@ "headers": { "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-client-request-id": { @@ -4658,7 +4658,7 @@ "headers": { "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-account-kind": { @@ -4855,7 +4855,7 @@ "description": "The time this blob will expire.", "required": false, "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ExpiresOn" }, { @@ -4868,7 +4868,7 @@ "headers": { "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" }, "ETag": { @@ -4877,7 +4877,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -5027,7 +5027,7 @@ "headers": { "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" }, "ETag": { @@ -5036,7 +5036,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-sequence-number": { @@ -5110,7 +5110,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "ifUnmodifiedSince" }, { @@ -5119,7 +5119,7 @@ "description": "Specifies the date time when the blobs immutability policy is set to expire.", "required": false, "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "immutabilityPolicyExpiry" }, { @@ -5181,7 +5181,7 @@ "headers": { "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-client-request-id": { @@ -5221,8 +5221,8 @@ }, "x-ms-immutability-policy-until-date": { "type": "string", - "format": "date-time-rfc1123", - "description": "Indicates the time the immutability policy will expire." + "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", @@ -5304,7 +5304,7 @@ "headers": { "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-client-request-id": { @@ -5400,7 +5400,7 @@ "headers": { "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-client-request-id": { @@ -5559,7 +5559,7 @@ "headers": { "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" }, "ETag": { @@ -5568,7 +5568,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -5694,7 +5694,7 @@ "headers": { "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" }, "ETag": { @@ -5703,7 +5703,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -5808,7 +5808,7 @@ "headers": { "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" }, "ETag": { @@ -5817,7 +5817,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -5918,7 +5918,7 @@ "headers": { "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" }, "ETag": { @@ -5927,7 +5927,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -6040,7 +6040,7 @@ "headers": { "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" }, "ETag": { @@ -6049,7 +6049,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -6155,7 +6155,7 @@ "headers": { "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" }, "ETag": { @@ -6164,7 +6164,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -6324,7 +6324,7 @@ "headers": { "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" }, "ETag": { @@ -6333,7 +6333,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -6562,7 +6562,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfModifiedSince" }, { @@ -6571,7 +6571,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfUnmodifiedSince" }, { @@ -6656,7 +6656,7 @@ "description": "Specifies the date time when the blobs immutability policy is set to expire.", "required": false, "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "immutabilityPolicyExpiry" }, { @@ -6711,7 +6711,7 @@ "headers": { "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" }, "ETag": { @@ -6720,7 +6720,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -6953,7 +6953,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfModifiedSince" }, { @@ -6962,7 +6962,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfUnmodifiedSince" }, { @@ -7039,7 +7039,7 @@ "description": "Specifies the date time when the blobs immutability policy is set to expire.", "required": false, "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "immutabilityPolicyExpiry" }, { @@ -7122,7 +7122,7 @@ }, "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" }, "ETag": { @@ -7131,7 +7131,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -7272,7 +7272,7 @@ "headers": { "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-client-request-id": { @@ -7599,7 +7599,7 @@ "headers": { "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-account-kind": { @@ -7798,7 +7798,7 @@ "headers": { "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-client-request-id": { @@ -7923,7 +7923,7 @@ "headers": { "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-client-request-id": { @@ -8240,7 +8240,7 @@ "description": "Specifies the date time when the blobs immutability policy is set to expire.", "required": false, "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "immutabilityPolicyExpiry" }, { @@ -8313,7 +8313,7 @@ }, "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" }, "ETag": { @@ -8322,7 +8322,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -8579,7 +8579,7 @@ }, "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" }, "ETag": { @@ -8588,7 +8588,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-sequence-number": { @@ -8808,7 +8808,7 @@ }, "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" }, "ETag": { @@ -8817,7 +8817,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-sequence-number": { @@ -9046,7 +9046,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfModifiedSince" }, { @@ -9055,7 +9055,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfUnmodifiedSince" }, { @@ -9096,7 +9096,7 @@ }, "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" }, "ETag": { @@ -9105,7 +9105,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-sequence-number": { @@ -9265,7 +9265,7 @@ "headers": { "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" }, "ETag": { @@ -9274,7 +9274,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-content-length": { @@ -9433,7 +9433,7 @@ "headers": { "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" }, "ETag": { @@ -9442,7 +9442,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-content-length": { @@ -9603,7 +9603,7 @@ "headers": { "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" }, "ETag": { @@ -9612,7 +9612,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-sequence-number": { @@ -9762,7 +9762,7 @@ "headers": { "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" }, "ETag": { @@ -9771,7 +9771,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-sequence-number": { @@ -9877,7 +9877,7 @@ "headers": { "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" }, "ETag": { @@ -9886,7 +9886,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -10143,7 +10143,7 @@ "description": "Specifies the date time when the blobs immutability policy is set to expire.", "required": false, "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "immutabilityPolicyExpiry" }, { @@ -10216,7 +10216,7 @@ }, "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" }, "ETag": { @@ -10225,7 +10225,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -10270,7 +10270,7 @@ "operationId": "AppendBlob_AppendBlock", "description": "The Append Block operation commits a new block of data to the end of an append blob.", "consumes": [ - "application/xml" + "application/octet-stream" ], "parameters": [ { @@ -10465,7 +10465,7 @@ }, "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" }, "ETag": { @@ -10474,7 +10474,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-append-offset": { @@ -10714,7 +10714,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfModifiedSince" }, { @@ -10723,7 +10723,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfUnmodifiedSince" }, { @@ -10764,7 +10764,7 @@ }, "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" }, "ETag": { @@ -10773,7 +10773,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-append-offset": { @@ -10900,7 +10900,7 @@ "headers": { "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" }, "ETag": { @@ -10909,7 +10909,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-sealed": { @@ -11253,7 +11253,7 @@ "description": "Specifies the date time when the blobs immutability policy is set to expire.", "required": false, "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "immutabilityPolicyExpiry" }, { @@ -11361,7 +11361,7 @@ }, "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" }, "ETag": { @@ -11370,7 +11370,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -11719,7 +11719,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfModifiedSince" }, { @@ -11728,7 +11728,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfUnmodifiedSince" }, { @@ -11831,7 +11831,7 @@ }, "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" }, "ETag": { @@ -11840,7 +11840,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -12050,7 +12050,7 @@ }, "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-client-request-id": { @@ -12243,7 +12243,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfModifiedSince" }, { @@ -12252,7 +12252,7 @@ "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-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "sourceIfUnmodifiedSince" }, { @@ -12293,7 +12293,7 @@ }, "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-client-request-id": { @@ -12648,7 +12648,7 @@ "description": "Specifies the date time when the blobs immutability policy is set to expire.", "required": false, "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "x-ms-client-name": "immutabilityPolicyExpiry" }, { @@ -12716,7 +12716,7 @@ }, "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" }, "ETag": { @@ -12725,7 +12725,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-client-request-id": { @@ -12877,12 +12877,12 @@ "200": { "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/BlockLookupList" + "$ref": "#/definitions/BlockList" }, "headers": { "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" }, "ETag": { @@ -12891,7 +12891,7 @@ }, "Last-Modified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, "x-ms-blob-content-length": { @@ -13093,7 +13093,7 @@ "headers": { "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-client-request-id": { @@ -13267,7 +13267,7 @@ "headers": { "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-account-kind": { @@ -13418,7 +13418,7 @@ "headers": { "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-client-request-id": { @@ -13950,12 +13950,12 @@ "properties": { "creationTime": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date-time the blob was created in RFC1123 format." }, "lastModified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date-time the blob was last modified in RFC1123 format." }, "eTag": { @@ -14031,7 +14031,7 @@ }, "copyCompletionTime": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The copy completion time of the blob." }, "copyStatusDescription": { @@ -14052,7 +14052,7 @@ }, "deletedTime": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The time the blob was deleted." }, "remainingRetentionDays": { @@ -14082,7 +14082,7 @@ }, "accessTierChangeTime": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The access tier change time of the blob." }, "tagCount": { @@ -14092,7 +14092,7 @@ }, "expiryTime": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The expire time of the blob." }, "sealed": { @@ -14105,12 +14105,12 @@ }, "lastAccessTime": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The last access time of the blob." }, "immutabilityPolicyUntilDate": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The immutability policy until time of the blob." }, "immutabilityPolicyMode": { @@ -14192,6 +14192,47 @@ ] } }, + "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." + } + }, + "required": [ + "name", + "size" + ] + }, + "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": { "type": "string", "description": "The block list types.", @@ -14308,7 +14349,7 @@ "properties": { "lastModified": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The date-time the container was last modified in RFC1123 format." }, "eTag": { @@ -14349,7 +14390,7 @@ }, "deletedTime": { "type": "string", - "format": "date-time-rfc1123", + "format": "date-time-rfc7231", "description": "The deleted time of the container." }, "remainingRetentionDays": { @@ -14601,7 +14642,7 @@ }, "lastSyncTime": { "type": "string", - "format": "date-time-rfc1123", + "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." } }, From 1239c76e9d27e38bb8f20eb3ee1d82bc471c252d Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 21 Feb 2025 17:31:03 -0800 Subject: [PATCH 125/129] fix service operations --- .../storage/Microsoft.BlobStorage/routes.tsp | 224 +++++++++--------- .../stable/2025-01-05/blob.json | 16 +- 2 files changed, 119 insertions(+), 121 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 1368f914150f..25013c6558e1 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -10,6 +10,7 @@ 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 = { @@ -46,121 +47,118 @@ namespace Storage.Blob{ ...ClientRequestIdHeader; }) | TError; - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." - namespace Service { - /** 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; - - /** 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"; + /** 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; + + /** 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", - ...RequestIdResponseHeader; - ...ClientRequestIdHeader; - }) | StorageError; + ...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"; - /** 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 - >; - } + ...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." namespace Container { 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 82128a2cbce0..63d822f31a9a 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 @@ -62,7 +62,7 @@ "paths": { "": { "get": { - "operationId": "Service_GetProperties", + "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", @@ -118,7 +118,7 @@ } }, "put": { - "operationId": "Service_SetProperties", + "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" @@ -178,7 +178,7 @@ } }, "post": { - "operationId": "Service_GetUserDelegationKey", + "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", @@ -12922,7 +12922,7 @@ }, "/?comp=batch": { "post": { - "operationId": "Service_SubmitBatch", + "operationId": "SubmitBatch", "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", "produces": [ "multipart/mixed", @@ -13002,7 +13002,7 @@ }, "/?comp=blobs": { "get": { - "operationId": "Service_FilterBlobs", + "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", @@ -13119,7 +13119,7 @@ }, "/?comp=list": { "get": { - "operationId": "Service_ListContainersSegment", + "operationId": "ListContainersSegment", "description": "The List Containers Segment operation returns a list of the containers under the specified account", "produces": [ "application/xml", @@ -13237,7 +13237,7 @@ }, "/?restype=account&comp=properties": { "get": { - "operationId": "Service_GetAccountInfo", + "operationId": "GetAccountInfo", "description": "Returns the sku name and account kind.", "parameters": [ { @@ -13381,7 +13381,7 @@ }, "/?restype=service&comp=stats": { "get": { - "operationId": "Service_GetStatistics", + "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", From b185501b905adcc44a138a8bdb1390cac736d609 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 21 Feb 2025 17:37:42 -0800 Subject: [PATCH 126/129] clean up routes --- .../storage/Microsoft.BlobStorage/routes.tsp | 1491 ++- .../stable/2025-01-05/blob.json | 9898 ++++++++--------- 2 files changed, 5694 insertions(+), 5695 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 25013c6558e1..e2fa9073a5a9 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -161,12 +161,13 @@ namespace Storage.Blob{ >; #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("/{containerName}?restype=container") + @route("?restype=container") op create is StorageOperation< { ...ContainerNamePathParameter; @@ -191,7 +192,7 @@ namespace Storage.Blob{ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get - @route("/{containerName}?restype=container") + @route("?restype=container") op getProperties is StorageOperation< { ...ContainerNamePathParameter; @@ -232,7 +233,7 @@ namespace Storage.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("/{containerName}?restype=container") + @route("?restype=container") op delete is StorageOperation< { ...ContainerNamePathParameter; @@ -252,7 +253,7 @@ namespace Storage.Blob{ #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}?restype=container&comp=metadata") + @route("?restype=container&comp=metadata") op setMetadata is StorageOperation< { ...ContainerNamePathParameter; @@ -271,7 +272,7 @@ namespace Storage.Blob{ /** 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("/{containerName}?restype=container&comp=acl") + @route("?restype=container&comp=acl") op getAccessPolicy is StorageOperation< { ...ContainerNamePathParameter; @@ -292,7 +293,7 @@ namespace Storage.Blob{ #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}?restype=container&comp=acl") + @route("?restype=container&comp=acl") op setAccessPolicy is StorageOperation< { ...ContainerNamePathParameter; @@ -320,7 +321,7 @@ namespace Storage.Blob{ #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}?restype=container&comp=undelete") + @route("?restype=container&comp=undelete") op restore is StorageOperation< { ...ContainerNamePathParameter; @@ -346,7 +347,7 @@ namespace Storage.Blob{ #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}?restype=container&comp=rename") + @route("?restype=container&comp=rename") op rename is StorageOperation< { ...ContainerNamePathParameter; @@ -368,7 +369,7 @@ namespace Storage.Blob{ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @post - @route("/{containerName}?restype=container&comp=batch") + @route("?restype=container&comp=batch") op submitBatch( ...ContainerNamePathParameter, @@ -397,7 +398,7 @@ namespace Storage.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}?restype=container&comp=blobs") + @route("?restype=container&comp=blobs") op filterBlobs is StorageOperation< { ...ContainerNamePathParameter; @@ -415,7 +416,7 @@ namespace Storage.Blob{ #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}?comp=lease&restype=container&acquire") + @route("?comp=lease&restype=container&acquire") op acquireLease is StorageOperation< { ...ContainerNamePathParameter; @@ -439,7 +440,7 @@ namespace Storage.Blob{ #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}?comp=lease&restype=container&release") + @route("?comp=lease&restype=container&release") op releaseLease is StorageOperation< { ...ContainerNamePathParameter; @@ -460,7 +461,7 @@ namespace Storage.Blob{ #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}?comp=lease&restype=container&renew") + @route("?comp=lease&restype=container&renew") op renewLease is StorageOperation< { ...ContainerNamePathParameter; @@ -481,7 +482,7 @@ namespace Storage.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}?comp=lease&restype=container&break") + @route("?comp=lease&restype=container&break") op breakLease is StorageOperation< { ...ContainerNamePathParameter; @@ -505,7 +506,7 @@ namespace Storage.Blob{ #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}?comp=lease&restype=container&change") + @route("?comp=lease&restype=container&change") op changeLease is StorageOperation< { ...ContainerNamePathParameter; @@ -527,7 +528,7 @@ namespace Storage.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}?restype=container&comp=list&flat") + @route("?restype=container&comp=list&flat") op listBlobFlatSegment is StorageOperation< { ...ContainerNamePathParameter; @@ -544,7 +545,7 @@ namespace Storage.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}?restype=container&comp=list&hierarchy") + @route("?restype=container&comp=list&hierarchy") op listBlobHierarchySegment is StorageOperation< { ...ContainerNamePathParameter; @@ -565,7 +566,7 @@ namespace Storage.Blob{ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" @get - @route("/{containerName}?restype=account&comp=properties") + @route("?restype=account&comp=properties") op getAccountInfo is StorageOperation< { ...ContainerNamePathParameter; @@ -578,171 +579,64 @@ namespace Storage.Blob{ ...IsHierarchicalNamespaceEnabled; } >; - } - - #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "Existing API. Storage API version parameter pre-dates current guidance." - 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 - @route("/{containerName}/{blob}") - 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 - @route("/{containerName}/{blob}") - op getProperties is StorageOperation< - { - ...ContainerNamePathParameter; - ...BlobPathParameter; - ...SnapshotParameter; - ...VersionIdParameter; - ...TimeoutParameter; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...ConditionalRequestHeaders; - ...IfTagsParameter; - }, - { + #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; @@ -750,599 +644,704 @@ namespace Storage.Blob{ ...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; + ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; ...AcceptRangesResponseHeader; + ...DateResponseHeader; ...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; + ...BlobContentMd5ResponseHeader; ...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 - @route("/{containerName}/{blob}") - 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; - } - >; + ...StructuredBodyTypeResponseHeader; + ...StructuredContentLengthResponseHeader; + }) | (BodyParameter & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern" + @statusCode statusCode: 206; - /** 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("/{containerName}/{blob}?comp=undelete") - op undelete is StorageOperation< - { - ...ContainerNamePathParameter; - ...BlobPathParameter; - ...TimeoutParameter; - }, - DateResponseHeader - >; + /** The media type of the body of the response. */ + @header("Content-Type") + contentType: "application/octet-stream"; - /** 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("/{containerName}/{blob}?comp=expiry") - op setExpiry is StorageOperation< - { - ...ContainerNamePathParameter; - ...BlobPathParameter; - ...TimeoutParameter; - ...BlobExpiryOptionsParameter; - ...ExpiryTimeHeader; - }, - { - ...EtagResponseHeader; + ...RequestIdResponseHeader; + ...ClientRequestIdHeader; + ...MetadataHeaders; + ...ObjectReplicationHeaders; ...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("/{containerName}/{blob}?comp=properties&SetHTTPHeaders") - op setHttpHeaders is StorageOperation< - { - ...ContainerNamePathParameter; - ...BlobPathParameter; - ...TimeoutParameter; - ...BlobCacheControlParameter; - ...BlobContentTypeParameter; - ...BlobContentMd5Parameter; - ...BlobContentEncodingParameter; - ...BlobContentLanguageParameter; - ...LeaseIdOptionalParameter; - ...BlobContentDispositionParameter; - ...ConditionalRequestHeaders; - ...IfTagsParameter; - }, - { + ...CreationTimeResponseHeader; + ...ObjectReplicationPolicyIdResponseHeader; + ...ContentLengthResponseHeader; + ...ContentRangeResponseHeader; ...EtagResponseHeader; - ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentEncodingResponseParameter; + ...CacheControlResponseHeader; + ...ContentDispositionResponseHeader; + ...ContentLanguageResponseHeader; ...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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?comp=metadata") - op setMetadata is StorageOperation< - { - ...ContainerNamePathParameter; - ...BlobPathParameter; - ...TimeoutParameter; - ...MetadataHeaders; - ...LeaseIdOptionalParameter; - ...EncryptionKeyParameter; - ...EncryptionKeySha256Parameter; - ...EncryptionAlgorithmParameter; - ...EncryptionScopeParameter; - ...ConditionalRequestHeaders; - ...IfTagsParameter; - }, - { - ...EtagResponseHeader; - ...LastModifiedResponseHeader; + ...BlobTypeResponseHeader; + ...ContentCrc64ResponseHeader; + ...CopyCompletionTimeResponseHeader; + ...CopyStatusDescriptionResponseHeader; + ...CopyIdResponseHeader; + ...CopyProgressResponseHeader; + ...CopyStatusResponseHeader; + ...CopySourceResponseHeader; + ...LeaseDurationHeader; + ...LeaseStateResponseHeader; + ...LeaseStatusResponseHeader; ...VersionIdResponseHeader; + ...IsCurrentVersionResponseHeader; + ...AcceptRangesResponseHeader; ...DateResponseHeader; + ...BlobCommittedBlockCountResponseHeader; ...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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?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("/{containerName}/{blob}?comp=tags") - op setTags is StorageOperation< - { - ...ContainerNamePathParameter; - ...BlobPathParameter; - ...TimeoutParameter; - ...VersionIdParameter; - ...ContentMd5Parameter; - ...ContentCrc64Parameter; - ...IfTagsParameter; - ...LeaseIdOptionalParameter; - - /** The blob tags. */ - @body - tags: BlobTags; - }, - { - @statusCode statusCode: 204; - ...DateResponseHeader; - } - >; + ...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." 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 63d822f31a9a..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 @@ -3111,10 +3111,10 @@ } }, "x-ms-paths": { - "/{containerName}?restype=container&comp=metadata": { + "/{containerName}/{blob}?PageBlob": { "put": { - "operationId": "Container_SetMetadata", - "description": "operation sets one or more user-defined name-value pairs for the specified container.", + "operationId": "PageBlob_Create", + "description": "The Create operation creates a new page blob.", "parameters": [ { "name": "x-ms-version", @@ -3124,6 +3124,14 @@ "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", @@ -3131,6 +3139,16 @@ "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", @@ -3141,105 +3159,136 @@ "minimum": 0 }, { - "name": "x-ms-lease-id", + "name": "Content-Length", "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" + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "name": "x-ms-meta", + "name": "x-ms-access-tier", "in": "header", - "description": "The metadata headers.", + "description": "Optional. Indicates the tier to be set on the page blob.", "required": false, "type": "string", - "x-ms-client-name": "metadata" + "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": "If-Modified-Since", + "name": "x-ms-blob-content-type", "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.", + "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", - "format": "date-time-rfc7231", - "x-ms-client-name": "ifModifiedSince" + "x-ms-client-name": "blobContentType" }, { - "$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." - } - } + "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" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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", + "name": "x-ms-blob-content-language", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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": "version" + "x-ms-client-name": "blobContentLanguage" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "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": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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": "integer", - "format": "int32", - "minimum": 0 + "type": "string", + "x-ms-client-name": "blobCacheControl" }, { "name": "x-ms-lease-id", @@ -3250,178 +3299,182 @@ "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." - } - } + "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" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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", + "name": "x-ms-encryption-key", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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": "version" + "x-ms-client-name": "encryptionKey" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", + "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/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" + }, + { + "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": "string" + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobContentLength" }, { - "name": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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": "int32", - "minimum": 0 + "format": "int64", + "x-ms-client-name": "blobSequenceNumber" }, { - "name": "x-ms-lease-id", + "name": "x-ms-tags", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "description": "Optional. Used to set blob tags in various blob operations.", "required": false, "type": "string", - "x-ms-client-name": "leaseId" + "x-ms-client-name": "BlobTagsString" }, { - "name": "x-ms-blob-public-access", + "name": "x-ms-immutability-policy-until-date", "in": "header", - "description": "The public access setting for the container.", + "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" + }, + { + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", "required": false, "type": "string", "enum": [ - "blob", - "container" + "Mutable", + "Locked", + "Unlocked" ], "x-ms-enum": { - "name": "PublicAccessType", + "name": "BlobImmutabilityPolicyMode", "modelAsString": true, "values": [ { - "name": "Blob", - "value": "blob", - "description": "Blob access." + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." }, { - "name": "Container", - "value": "container", - "description": "Container access." + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." } ] }, - "x-ms-client-name": "access" + "x-ms-client-name": "immutabilityPolicyMode" }, { - "name": "If-Modified-Since", + "name": "x-ms-legal-hold", "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.", + "description": "Specified if a legal hold should be set on the blob.", "required": false, - "type": "string", - "format": "date-time-rfc7231", - "x-ms-client-name": "ifModifiedSince" + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "name": "If-Unmodified-Since", + "name": "x-ms-blob-type", "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, + "description": "The type of the blob.", + "required": true, "type": "string", - "format": "date-time-rfc7231", - "x-ms-client-name": "ifUnmodifiedSince" + "enum": [ + "PageBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "containerAcl", - "in": "body", - "description": "The access control list for the container.", - "required": true, - "schema": { - "$ref": "#/definitions/SignedIdentifiers" - } } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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", @@ -3441,10 +3494,26 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, + "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-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-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." } } }, @@ -3457,10 +3526,13 @@ } } }, - "/{containerName}?restype=container&comp=undelete": { + "/{containerName}/{blob}?comp=page&update": { "put": { - "operationId": "Container_Restore", - "description": "Restores a previously-deleted container.", + "operationId": "PageBlob_UploadPages", + "description": "The Upload Pages operation writes a range of pages to a page blob", + "consumes": [ + "application/octet-stream" + ], "parameters": [ { "name": "x-ms-version", @@ -3478,23 +3550,42 @@ "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, + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, "type": "string", - "x-ms-client-name": "deletedContainerName" + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "name": "x-ms-deleted-container-version", + "name": "Content-Length", "in": "header", - "description": "Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore.", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "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": "deletedContainerVersion" + "x-ms-client-name": "transactionalContentMD5" }, { - "name": "timeout", + "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" + }, + { + "name": "timeout", "in": "query", "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, @@ -3503,106 +3594,201 @@ "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." - } - } + "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" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?restype=container&comp=rename": { - "put": { - "operationId": "Container_Rename", - "description": "Renames an existing container.", - "parameters": [ { - "name": "x-ms-version", + "name": "x-ms-lease-id", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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": "version" + "x-ms-client-name": "leaseId" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "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-source-container-name", + "name": "x-ms-encryption-key-sha256", "in": "header", - "description": "Required. Specifies the name of the container to rename.", - "required": true, + "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": "sourceContainerName" + "x-ms-client-name": "encryptionKeySha256" }, { - "name": "x-ms-source-lease-id", + "name": "x-ms-encryption-algorithm", "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.", + "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", - "x-ms-client-name": "sourceLeaseId" + "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": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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-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": "int32", - "minimum": 0 + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" + }, + { + "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" + }, + { + "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/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" + }, + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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." + }, + "Last-Modified": { + "type": "string", + "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": { "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-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-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." } } }, @@ -3615,14 +3801,10 @@ } } }, - "/{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" - ], + "/{containerName}/{blob}?comp=page&clear": { + "put": { + "operationId": "PageBlob_ClearPages", + "description": "The Clear Pages operation clears a range of pages from a page blob", "parameters": [ { "name": "x-ms-version", @@ -3639,6 +3821,25 @@ "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": "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", @@ -3649,159 +3850,113 @@ "minimum": 0 }, { - "name": "where", - "in": "query", - "description": "Filters the results to return only to return only blobs whose tags match the specified expression.", + "name": "x-ms-range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", "required": false, - "type": "string" + "type": "string", + "x-ms-client-name": "range" }, { - "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.", + "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" + "type": "string", + "x-ms-client-name": "leaseId" }, { - "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.", + "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": "integer", - "format": "int32", - "minimum": 1 + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "name": "include", - "in": "query", - "description": "Include this parameter to specify one or more datasets to include in the response.", + "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": "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" + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/FilterBlobSegment" + "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." + } + ] }, - "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." - } - } + "x-ms-client-name": "encryptionAlgorithm" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{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", + "name": "x-ms-encryption-scope", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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": "version" - }, - { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "x-ms-client-name": "encryptionScope" }, { - "name": "x-ms-lease-duration", + "name": "x-ms-if-sequence-number-le", "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.", + "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": "int32", - "x-ms-client-name": "duration" + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" }, { - "name": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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": "int32", - "minimum": 0 + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThan" }, { - "name": "x-ms-proposed-lease-id", + "name": "x-ms-if-sequence-number-eq", "in": "header", - "description": "Optional. The proposed lease ID for the container.", + "description": "Specify this header value to operate only on a blob if it has the specified sequence number.", "required": false, - "type": "string", - "x-ms-client-name": "proposedLeaseId" + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberEqualTo" }, { - "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.ConditionalRequestHeaders.ifMatch" }, { - "name": "If-Unmodified-Since", + "$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": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", "required": false, "type": "string", - "format": "date-time-rfc7231", - "x-ms-client-name": "ifUnmodifiedSince" + "x-ms-client-name": "ifTags" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -3811,6 +3966,10 @@ "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", @@ -3825,14 +3984,19 @@ "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": { "type": "string", "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-lease-id": { + "x-ms-content-crc64": { "type": "string", - "description": "Uniquely identifies a blobs' lease" + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, "x-ms-request-id": { "type": "string", @@ -3850,10 +4014,10 @@ } } }, - "/{containerName}?comp=lease&restype=container&release": { + "/{containerName}/{blob}?comp=page&update&fromUrl": { "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.", + "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": [ { "name": "x-ms-version", @@ -3871,146 +4035,229 @@ "type": "string" }, { - "name": "x-ms-lease-id", + "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": "x-ms-copy-source", "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.", + "description": "Specify a URL to the copy source.", "required": true, "type": "string", - "x-ms-client-name": "leaseId" + "x-ms-client-name": "sourceUrl" }, { - "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-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" }, { - "name": "If-Modified-Since", + "name": "x-ms-source-content-md5", "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.", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", "required": false, "type": "string", - "format": "date-time-rfc7231", - "x-ms-client-name": "ifModifiedSince" + "x-ms-client-name": "sourceContentMd5" }, { - "name": "If-Unmodified-Since", + "name": "x-ms-source-content-crc64", "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.", + "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source.", "required": false, "type": "string", - "format": "date-time-rfc7231", - "x-ms-client-name": "ifUnmodifiedSince" + "format": "byte", + "x-ms-client-name": "sourceContentCrc64" }, { - "$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." - } - } + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}?comp=lease&restype=container&renew": { - "put": { - "operationId": "Container_RenewLease", - "description": "The Renew Lease operation renews an existing lease.", - "parameters": [ { - "name": "x-ms-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": "x-ms-range", "in": "header", - "description": "Specifies the version of the operation to use for this request.", + "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": "version" + "x-ms-client-name": "range" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "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." + } + ] + }, + "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": "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, + "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": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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": "int32", - "minimum": 0 + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" }, { - "name": "If-Modified-Since", + "name": "x-ms-if-sequence-number-lt", "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.", + "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" + }, + { + "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/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" + }, + { + "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": "ifModifiedSince" + "x-ms-client-name": "sourceIfModifiedSince" }, { - "name": "If-Unmodified-Since", + "name": "x-ms-source-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.", + "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": "ifUnmodifiedSince" + "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-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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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", @@ -4025,19 +4272,36 @@ "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": { "type": "string", "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-lease-id": { + "x-ms-content-crc64": { "type": "string", - "description": "Uniquely identifies a blobs' lease" + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "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-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." } } }, @@ -4050,10 +4314,14 @@ } } }, - "/{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.", + "/{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": [ { "name": "x-ms-version", @@ -4070,6 +4338,23 @@ "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", @@ -4080,39 +4365,67 @@ "minimum": 0 }, { - "name": "If-Modified-Since", + "name": "x-ms-range", "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.", + "description": "Return only the bytes of the blob in the specified range.", "required": false, "type": "string", - "format": "date-time-rfc7231", - "x-ms-client-name": "ifModifiedSince" + "x-ms-client-name": "range" }, { - "name": "If-Unmodified-Since", + "name": "x-ms-lease-id", "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.", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", "required": false, "type": "string", - "format": "date-time-rfc7231", - "x-ms-client-name": "ifUnmodifiedSince" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-lease-break-period", + "$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": "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.", + "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": "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", - "x-ms-client-name": "breakPeriod" + "minimum": 1 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, "headers": { "Date": { "type": "string", @@ -4128,20 +4441,16 @@ "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-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", @@ -4158,10 +4467,14 @@ } } }, - "/{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.", + "/{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", @@ -4179,20 +4492,21 @@ "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.", + "name": "blob", + "in": "path", + "description": "The name of the blob.", "required": true, "type": "string", - "x-ms-client-name": "leaseId" + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "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": "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", @@ -4204,22 +4518,71 @@ "minimum": 0 }, { - "name": "If-Modified-Since", + "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" + }, + { + "name": "x-ms-previous-snapshot-url", "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.", + "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", - "format": "date-time-rfc7231", - "x-ms-client-name": "ifModifiedSince" + "x-ms-client-name": "prevSnapshotUrl" }, { - "name": "If-Unmodified-Since", + "name": "x-ms-range", "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.", + "description": "Return only the bytes of the blob in the specified range.", "required": false, "type": "string", - "format": "date-time-rfc7231", - "x-ms-client-name": "ifUnmodifiedSince" + "x-ms-client-name": "range" + }, + { + "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.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" + }, + { + "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 }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -4228,6 +4591,9 @@ "responses": { "200": { "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, "headers": { "Date": { "type": "string", @@ -4243,15 +4609,16 @@ "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-lease-id": { - "type": "string", - "description": "Uniquely identifies a blobs' lease" - }, "x-ms-request-id": { "type": "string", "format": "uuid", @@ -4268,14 +4635,10 @@ } } }, - "/{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" - ], + "/{containerName}/{blob}?comp=properties&Resize": { + "put": { + "operationId": "PageBlob_Resize", + "description": "The Resize operation increases the size of the page blob to the specified size.", "parameters": [ { "name": "x-ms-version", @@ -4293,115 +4656,106 @@ "type": "string" }, { - "name": "prefix", + "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": "Filters the results to return only containers whose name begins with the specified prefix.", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, - "type": "string" + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "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.", + "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" + "type": "string", + "x-ms-client-name": "leaseId" }, { - "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.", + "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": "integer", - "format": "int32", - "minimum": 1 + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "name": "include", - "in": "query", - "description": "Include this parameter to specify one or more datasets to include in the response.", + "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": "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." - } - ] - } + "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." + } + ] }, - "collectionFormat": "csv" + "x-ms-client-name": "encryptionAlgorithm" }, { - "name": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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/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" + }, + { + "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": "int32", - "minimum": 0 + "format": "int64", + "x-ms-client-name": "blobContentLength" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -4410,15 +4764,26 @@ "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" }, + "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-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": { "type": "string", "format": "uuid", @@ -4440,14 +4805,10 @@ } } }, - "/{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" - ], + "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { + "put": { + "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": [ { "name": "x-ms-version", @@ -4465,139 +4826,123 @@ "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.", + "name": "blob", + "in": "path", + "description": "The name of the blob.", "required": true, - "type": "string" + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "name": "prefix", + "name": "timeout", "in": "query", - "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", "required": false, - "type": "string" + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "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.", + "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" + "type": "string", + "x-ms-client-name": "leaseId" }, { - "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/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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" + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.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/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "responses": { + "$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" + }, + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + } + ], + "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" }, + "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-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": { "type": "string", "format": "uuid", @@ -4619,10 +4964,10 @@ } } }, - "/{containerName}?restype=account&comp=properties": { - "get": { - "operationId": "Container_GetAccountInfo", - "description": "Returns the sku name and account kind", + "/{containerName}/{blob}?comp=incrementalcopy": { + "put": { + "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": [ { "name": "x-ms-version", @@ -4639,6 +4984,16 @@ "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", @@ -4648,116 +5003,105 @@ "format": "int32", "minimum": 0 }, + { + "$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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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" }, - "x-ms-account-kind": { + "ETag": { "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." - } - ] - } + "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-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": { + "x-ms-copy-id": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-sku-name": { + "x-ms-copy-status": { "type": "string", - "description": "Identifies the sku name of the account", + "description": "State of the copy operation identified by x-ms-copy-id.", "enum": [ - "Standard_LRS", - "Standard_GRS", - "Standard_RAGRS", - "Standard_ZRS", - "Premium_LRS" + "pending", + "success", + "failed", + "aborted" ], "x-ms-enum": { - "name": "SkuName", + "name": "CopyStatus", "modelAsString": true, "values": [ { - "name": "StandardLRS", - "value": "Standard_LRS", - "description": "The standard LRS SKU." - }, - { - "name": "StandardGRS", - "value": "Standard_GRS", - "description": "The standard GRS SKU." + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." }, { - "name": "StandardRAGRS", - "value": "Standard_RAGRS", - "description": "The standard RAGRS SKU." + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." }, { - "name": "StandardZRS", - "value": "Standard_ZRS", - "description": "The standard ZRS SKU." + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." }, { - "name": "PremiumLRS", - "value": "Premium_LRS", - "description": "The premium LRS SKU." + "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." } } }, @@ -4770,10 +5114,10 @@ } } }, - "/{containerName}/{blob}?comp=expiry": { + "/{containerName}/{blob}?AppendBlob": { "put": { - "operationId": "Blob_SetExpiry", - "description": "Set the expiration time of a blob", + "operationId": "AppendBlob_Create", + "description": "The Create operation creates a new append blob.", "parameters": [ { "name": "x-ms-version", @@ -4783,6 +5127,14 @@ "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", @@ -4810,62 +5162,222 @@ "minimum": 0 }, { - "name": "x-ms-expiry-option", + "name": "Content-Length", "in": "header", - "description": "Required. Indicates mode of the expiry time", + "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" + }, + { + "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": [ - "NeverExpire", - "RelativeToCreation", - "RelativeToNow", - "Absolute" + "AES256" ], "x-ms-enum": { - "name": "BlobExpiryOptions", + "name": "EncryptionAlgorithmType", "modelAsString": true, "values": [ { - "name": "NeverExpire", - "value": "NeverExpire", - "description": "Never expire." - }, + "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/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" + }, + { + "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" + }, + { + "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" + }, + { + "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": "RelativeToCreation", - "value": "RelativeToCreation", - "description": "Relative to creation time." + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." }, { - "name": "RelativeToNow", - "value": "RelativeToNow", - "description": "Relative to now." + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." }, { - "name": "Absolute", - "value": "Absolute", - "description": "Absolute time." + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." } ] }, - "x-ms-client-name": "expiryOptions" + "x-ms-client-name": "immutabilityPolicyMode" }, { - "name": "x-ms-expiry-time", + "name": "x-ms-legal-hold", "in": "header", - "description": "The time this blob will expire.", + "description": "Specified if a legal hold should be set on the blob.", "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" + }, + { + "name": "x-ms-blob-type", + "in": "header", + "description": "The type of the blob.", + "required": true, "type": "string", - "format": "date-time-rfc7231", - "x-ms-client-name": "ExpiresOn" + "enum": [ + "AppendBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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", @@ -4885,10 +5397,26 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, + "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-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-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." } } }, @@ -4901,10 +5429,13 @@ } } }, - "/{containerName}/{blob}?comp=properties&SetHTTPHeaders": { + "/{containerName}/{blob}?comp=appendblock": { "put": { - "operationId": "Blob_SetHttpHeaders", - "description": "The Set HTTP Headers operation sets system properties on the 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" + ], "parameters": [ { "name": "x-ms-version", @@ -4941,61 +5472,101 @@ "minimum": 0 }, { - "name": "x-ms-blob-cache-control", + "name": "Content-Length", "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" + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "name": "x-ms-blob-content-type", + "name": "Content-MD5", "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.", + "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": "blobContentType" + "x-ms-client-name": "transactionalContentMD5" }, { - "name": "x-ms-blob-content-md5", + "name": "x-ms-content-crc64", "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.", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", "required": false, "type": "string", - "format": "byte", - "x-ms-client-name": "blobContentMd5" + "x-ms-client-name": "transactionalContentCrc64" }, { - "name": "x-ms-blob-content-encoding", + "name": "x-ms-lease-id", "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.", + "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": "blobContentEncoding" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-blob-content-language", + "name": "x-ms-blob-condition-maxsize", "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.", + "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" + }, + { + "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" + }, + { + "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": "blobContentLanguage" + "x-ms-client-name": "encryptionKey" }, { - "name": "x-ms-lease-id", + "name": "x-ms-encryption-key-sha256", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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": "leaseId" + "x-ms-client-name": "encryptionKeySha256" }, { - "name": "x-ms-blob-content-disposition", + "name": "x-ms-encryption-algorithm", "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.", + "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", - "x-ms-client-name": "blobContentDisposition" + "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/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -5017,14 +5588,45 @@ "type": "string", "x-ms-client-name": "ifTags" }, + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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", @@ -5039,20 +5641,44 @@ "format": "date-time-rfc7231", "description": "The date/time that the container was last modified." }, - "x-ms-blob-sequence-number": { + "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": "int64", - "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + "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": { "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-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-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." } } }, @@ -5065,10 +5691,10 @@ } } }, - "/{containerName}/{blob}?comp=immutabilityPolicies": { + "/{containerName}/{blob}?comp=appendblock&fromUrl": { "put": { - "operationId": "Blob_SetImmutabilityPolicy", - "description": "Set the immutability policy of a blob", + "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": [ { "name": "x-ms-version", @@ -5095,6 +5721,39 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, + { + "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" + }, + { + "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" + }, { "name": "timeout", "in": "query", @@ -5105,217 +5764,216 @@ "minimum": 0 }, { - "name": "If-Unmodified-Since", + "name": "Content-Length", "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.", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "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", - "format": "date-time-rfc7231", - "x-ms-client-name": "ifUnmodifiedSince" + "x-ms-client-name": "transactionalContentMD5" }, { - "name": "x-ms-immutability-policy-until-date", + "name": "x-ms-encryption-key", "in": "header", - "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "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", - "format": "date-time-rfc7231", - "x-ms-client-name": "immutabilityPolicyExpiry" + "x-ms-client-name": "encryptionKey" }, { - "name": "x-ms-immutability-policy-mode", + "name": "x-ms-encryption-key-sha256", "in": "header", - "description": "Specifies the immutability policy mode to set on the blob.", + "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": [ - "Mutable", - "Locked", - "Unlocked" + "AES256" ], "x-ms-enum": { - "name": "BlobImmutabilityPolicyMode", + "name": "EncryptionAlgorithmType", "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." + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." } ] }, - "x-ms-client-name": "immutabilityPolicyMode" + "x-ms-client-name": "encryptionAlgorithm" }, { - "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.", + "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" + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "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.", + "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": "versionId" + "x-ms-client-name": "leaseId" }, { - "$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." - } - } + "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" }, - "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": [ { - "name": "x-ms-version", + "name": "x-ms-blob-condition-appendpos", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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/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": "version" + "x-ms-client-name": "ifTags" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "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": "blob", - "in": "path", - "description": "The name of the blob.", - "required": true, + "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", - "minLength": 1, - "maxLength": 1024, - "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "name": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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": "integer", - "format": "int32", - "minimum": 0 + "type": "string", + "x-ms-client-name": "sourceIfMatch" }, { - "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.", + "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" + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" }, { - "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.", + "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": "versionId" + "x-ms-client-name": "copySourceAuthorization" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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." + }, + "Last-Modified": { + "type": "string", + "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": { "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-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-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." } } }, @@ -5328,10 +5986,10 @@ } } }, - "/{containerName}/{blob}?comp=legalhold": { + "/{containerName}/{blob}?comp=seal": { "put": { - "operationId": "Blob_SetLegalHold", - "description": "The Set Legal Hold operation sets a legal hold on the blob.", + "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": [ { "name": "x-ms-version", @@ -5368,27 +6026,33 @@ "minimum": 0 }, { - "name": "x-ms-legal-hold", + "name": "x-ms-lease-id", "in": "header", - "description": "Required. Specifies the legal hold status to set on the blob.", - "required": true, - "type": "boolean", - "x-ms-client-name": "legalHold" + "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": "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/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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.", + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + }, + { + "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": "string", - "x-ms-client-name": "versionId" + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -5403,15 +6067,24 @@ "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-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" + }, "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", @@ -5428,10 +6101,13 @@ } } }, - "/{containerName}/{blob}?comp=metadata": { + "/{containerName}/{blob}?BlockBlob": { "put": { - "operationId": "Blob_SetMetadata", - "description": "The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs.", + "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" + ], "parameters": [ { "name": "x-ms-version", @@ -5441,6 +6117,14 @@ "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", @@ -5468,12 +6152,62 @@ "minimum": 0 }, { - "name": "x-ms-meta", + "name": "Content-MD5", "in": "header", - "description": "The metadata headers.", + "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": "metadata" + "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", @@ -5483,6 +6217,14 @@ "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", @@ -5529,6 +6271,118 @@ "type": "string", "x-ms-client-name": "encryptionScope" }, + { + "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/Azure.Core.ConditionalRequestHeaders.ifMatch" }, @@ -5550,148 +6404,125 @@ "x-ms-client-name": "ifTags" }, { - "$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-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-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-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." - } - } + "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" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=lease&acquire": { - "put": { - "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": [ { - "name": "x-ms-version", + "name": "x-ms-immutability-policy-until-date", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, "type": "string", - "x-ms-client-name": "version" + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "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, + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, "type": "string", - "minLength": 1, - "maxLength": 1024, - "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + "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" }, { - "name": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", "required": false, - "type": "integer", - "format": "int32", - "minimum": 0 + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "name": "x-ms-lease-duration", + "name": "x-ms-content-crc64", "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.", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", "required": false, - "type": "integer", - "format": "int32", - "x-ms-client-name": "duration" + "type": "string", + "x-ms-client-name": "transactionalContentCrc64" }, { - "name": "x-ms-proposed-lease-id", + "name": "x-ms-structured-body", "in": "header", - "description": "Optional. The proposed lease ID for the container.", + "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": "proposedLeaseId" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "x-ms-client-name": "structuredBodyType" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "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" }, { - "name": "x-ms-if-tags", + "name": "x-ms-blob-type", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", - "required": false, + "description": "The type of the blob.", + "required": true, "type": "string", - "x-ms-client-name": "ifTags" + "enum": [ + "BlockBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } } ], "responses": { "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", @@ -5711,14 +6542,30 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-lease-id": { + "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-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-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-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." } } }, @@ -5731,10 +6578,10 @@ } } }, - "/{containerName}/{blob}?comp=lease&release": { + "/{containerName}/{blob}?BlockBlob&fromUrl": { "put": { - "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.", + "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": [ { "name": "x-ms-version", @@ -5744,6 +6591,14 @@ "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", @@ -5771,122 +6626,236 @@ "minimum": 0 }, { - "name": "x-ms-lease-id", + "name": "Content-MD5", "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, + "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": "leaseId" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "x-ms-client-name": "transactionalContentMD5" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.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/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "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-if-tags", + "name": "x-ms-blob-content-language", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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": "ifTags" + "x-ms-client-name": "blobContentLanguage" }, { - "$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." - } - } + "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" }, - "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": [ { - "name": "x-ms-version", + "name": "x-ms-blob-cache-control", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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": "version" + "x-ms-client-name": "blobCacheControl" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "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": "blob", - "in": "path", - "description": "The name of the blob.", - "required": true, + "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", - "minLength": 1, - "maxLength": 1024, - "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + "x-ms-client-name": "blobContentDisposition" }, { - "name": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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": "integer", - "format": "int32", - "minimum": 0 + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "name": "x-ms-lease-id", + "name": "x-ms-encryption-key-sha256", "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, + "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": "leaseId" + "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" + }, + { + "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/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -5909,135 +6878,121 @@ "x-ms-client-name": "ifTags" }, { - "$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" - } - } - } - } - }, - "/{containerName}/{blob}?comp=lease&change": { - "put": { - "operationId": "Blob_ChangeLease", - "description": "The Change Lease operation is used to change the ID of an existing lease.", - "parameters": [ - { - "name": "x-ms-version", + "name": "x-ms-source-if-modified-since", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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": "version" + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", - "required": true, - "type": "string" + "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": "blob", - "in": "path", - "description": "The name of the blob.", - "required": true, + "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", - "minLength": 1, - "maxLength": 1024, - "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + "x-ms-client-name": "sourceIfMatch" }, { - "name": "timeout", - "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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": "integer", - "format": "int32", - "minimum": 0 + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" }, { - "name": "x-ms-lease-id", + "name": "x-ms-source-if-tags", "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, + "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": "leaseId" + "x-ms-client-name": "sourceIfTags" }, { - "name": "x-ms-proposed-lease-id", + "name": "x-ms-source-content-md5", "in": "header", - "description": "Optional. The proposed lease ID for the container.", + "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": "proposedLeaseId" + "x-ms-client-name": "sourceContentMd5" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "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/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "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/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "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/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "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" }, { - "name": "x-ms-if-tags", + "name": "x-ms-copy-source-tags", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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": "ifTags" + "x-ms-client-name": "copySourceTags" + }, + { + "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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "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", @@ -6057,14 +7012,26 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-lease-id": { + "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-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-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-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." } } }, @@ -6077,10 +7044,13 @@ } } }, - "/{containerName}/{blob}?comp=lease&break": { + "/{containerName}/{blob}?comp=block": { "put": { - "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.", + "operationId": "BlockBlob_StageBlock", + "description": "The Stage Block operation creates a new block to be committed as part of a blob", + "consumes": [ + "application/octet-stream" + ], "parameters": [ { "name": "x-ms-version", @@ -6108,120 +7078,37 @@ "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "name": "timeout", + "name": "blockid", "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 + "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": "x-ms-lease-break-period", + "name": "Content-Length", "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, + "description": "The length of the request.", + "required": true, "type": "integer", - "format": "int32", - "x-ms-client-name": "breakPeriod" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" - }, - { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "name": "x-ms-if-tags", + "name": "Content-MD5", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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": "ifTags" - }, - { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], - "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-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." - } - } + "x-ms-client-name": "transactionalContentMD5" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?comp=snapshot": { - "put": { - "operationId": "Blob_CreateSnapshot", - "description": "The Create Snapshot operation creates a read-only snapshot of a blob", - "parameters": [ { - "name": "x-ms-version", + "name": "x-ms-content-crc64", "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, + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, "type": "string", - "minLength": 1, - "maxLength": 1024, - "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + "x-ms-client-name": "transactionalContentCrc64" }, { "name": "timeout", @@ -6233,12 +7120,12 @@ "minimum": 0 }, { - "name": "x-ms-meta", + "name": "x-ms-lease-id", "in": "header", - "description": "The metadata headers.", + "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": "metadata" + "x-ms-client-name": "leaseId" }, { "name": "x-ms-encryption-key", @@ -6287,59 +7174,65 @@ "x-ms-client-name": "encryptionScope" }, { - "$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", + "name": "x-ms-structured-body", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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": "ifTags" + "x-ms-client-name": "structuredBodyType" }, { - "name": "x-ms-lease-id", + "name": "x-ms-structured-content-length", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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": "string", - "x-ms-client-name": "leaseId" + "type": "integer", + "format": "int64", + "x-ms-client-name": "structuredContentLength" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - } - ], + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } + } + ], "responses": { "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": { + "x-ms-client-request-id": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "Last-Modified": { + "x-ms-content-crc64": { "type": "string", - "format": "date-time-rfc7231", - "description": "The date/time that the container was last modified." + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-client-request-id": { + "x-ms-encryption-key-sha256": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for 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-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-request-id": { "type": "string", @@ -6350,13 +7243,9 @@ "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-snapshot": { - "type": "string", - "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." - }, - "x-ms-version-id": { + "x-ms-structured-body": { "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": "Indicates the response body contains a structured message and specifies the message schema version and properties." } } }, @@ -6369,10 +7258,10 @@ } } }, - "/{containerName}/{blob}?comp=copy": { + "/{containerName}/{blob}?comp=block&fromURL": { "put": { - "operationId": "Blob_StartCopyFromUrl", - "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", + "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": [ { "name": "x-ms-version", @@ -6399,6 +7288,56 @@ "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" + }, + { + "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" + }, + { + "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" + }, { "name": "timeout", "in": "query", @@ -6409,152 +7348,58 @@ "minimum": 0 }, { - "name": "x-ms-meta", + "name": "x-ms-encryption-key", "in": "header", - "description": "The metadata headers.", + "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": "metadata" + "x-ms-client-name": "encryptionKey" }, { - "name": "x-ms-access-tier", + "name": "x-ms-encryption-key-sha256", "in": "header", - "description": "The tier to be set on the blob.", + "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", - "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" + "x-ms-client-name": "encryptionKeySha256" }, { - "name": "x-ms-rehydrate-priority", + "name": "x-ms-encryption-algorithm", "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.", + "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": [ - "High", - "Standard" + "AES256" ], "x-ms-enum": { - "name": "RehydratePriority", + "name": "EncryptionAlgorithmType", "modelAsString": true, "values": [ { - "name": "High", - "value": "High", - "description": "The rehydrate priority is high." - }, - { - "name": "Standard", - "value": "Standard", - "description": "The rehydrate priority is standard." + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." } ] }, - "x-ms-client-name": "rehydratePriority" + "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-source-if-modified-since", @@ -6591,191 +7436,55 @@ "x-ms-client-name": "sourceIfNoneMatch" }, { - "name": "x-ms-source-if-tags", + "name": "x-ms-copy-source-authorization", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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": "sourceIfTags" - }, - { - "$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" - }, - { - "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" - }, - { - "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-tags", - "in": "header", - "description": "Optional. Used to set blob tags in various blob operations.", - "required": false, - "type": "string", - "x-ms-client-name": "BlobTagsString" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" + "x-ms-client-name": "copySourceAuthorization" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "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": { + "Content-MD5": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "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-rfc7231", - "description": "The date/time that the container was last modified." + "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-copy-id": { + "x-ms-content-crc64": { "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": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-copy-status": { + "x-ms-encryption-key-sha256": { "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." - } - ] - } + "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-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." + "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." } } }, @@ -6788,10 +7497,13 @@ } } }, - "/{containerName}/{blob}?comp=copy&sync": { + "/{containerName}/{blob}?comp=blocklist": { "put": { - "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_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" + ], "parameters": [ { "name": "x-ms-version", @@ -6827,6 +7539,63 @@ "format": "int32", "minimum": 0 }, + { + "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-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": "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-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" + }, { "name": "x-ms-meta", "in": "header", @@ -6836,26 +7605,88 @@ "x-ms-client-name": "metadata" }, { - "name": "x-ms-access-tier", + "name": "x-ms-lease-id", "in": "header", - "description": "The tier to be set on the blob.", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", "required": false, "type": "string", - "enum": [ - "P4", - "P6", - "P10", - "P15", - "P20", - "P30", - "P40", - "P50", - "P60", - "P70", - "P80", - "Hot", - "Cool", - "Archive", + "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" + }, + { + "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" ], @@ -6947,40 +7778,6 @@ }, "x-ms-client-name": "tier" }, - { - "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" - }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, @@ -7001,30 +7798,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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" - }, - { - "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-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" - }, { "name": "x-ms-tags", "in": "header", @@ -7085,36 +7858,21 @@ "x-ms-client-name": "legalHold" }, { - "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" - }, - { - "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-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/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "name": "blocks", + "in": "body", + "description": "Blob Blocks.", + "required": true, + "schema": { + "$ref": "#/definitions/BlockLookupList" + } } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { "Content-MD5": { "type": "string", @@ -7143,45 +7901,9 @@ "type": "string", "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "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-status": { + "x-ms-encryption-key-sha256": { "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." - } - ] - } + "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", @@ -7192,6 +7914,10 @@ "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-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." @@ -7207,10 +7933,14 @@ } } }, - "/{containerName}/{blob}?comp=copy©id": { - "put": { - "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.", + "/{containerName}/{blob}?comp=blocklist&_overload=getBlockList": { + "get": { + "operationId": "BlockBlob_GetBlockList", + "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": [ { "name": "x-ms-version", @@ -7238,43 +7968,101 @@ "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "name": "timeout", + "name": "snapshot", "in": "query", - "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "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": "integer", - "format": "int32", - "minimum": 0 + "type": "string" }, { - "name": "copyid", + "name": "blocklisttype", "in": "query", - "description": "The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation.", + "description": "Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together.", "required": true, "type": "string", - "x-ms-client-name": "copyId" - }, - { - "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": { - "204": { - "description": "There is no content to send for this request, but the headers may be useful. ", - "headers": { - "Date": { + "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" + }, + { + "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-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.", + "schema": { + "$ref": "#/definitions/BlockList" + }, + "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", @@ -7296,10 +8084,10 @@ } } }, - "/{containerName}/{blob}?comp=tier": { + "/{containerName}/{blob}/?comp=copy": { "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.", + "operationId": "Blob_StartCopyFromUrl", + "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", "parameters": [ { "name": "x-ms-version", @@ -7326,21 +8114,6 @@ "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", @@ -7350,11 +8123,19 @@ "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-access-tier", "in": "header", - "description": "Indicates the tier to be set on the blob.", - "required": true, + "description": "The tier to be set on the blob.", + "required": false, "type": "string", "enum": [ "P4", @@ -7491,214 +8272,225 @@ "x-ms-client-name": "rehydratePriority" }, { - "name": "x-ms-lease-id", + "name": "x-ms-source-if-modified-since", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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": "leaseId" + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "name": "x-ms-if-tags", + "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": "ifTags" + "x-ms-client-name": "sourceIfTags" }, { - "$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." - } - } + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" }, - "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." - } - } + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - } - }, - "/{containerName}/{blob}?restype=account&comp=properties&blob": { - "get": { - "operationId": "Blob_GetAccountInfo", - "description": "Returns the sku name and account kind", - "parameters": [ { - "name": "x-ms-version", + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + }, + { + "name": "x-ms-if-tags", "in": "header", - "description": "Specifies the version of the operation to use for this request.", - "required": true, + "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": "version" + "x-ms-client-name": "ifTags" }, { - "name": "containerName", - "in": "path", - "description": "The name of the container.", + "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" + "type": "string", + "x-ms-client-name": "copySource" }, { - "name": "blob", - "in": "path", - "description": "The name of the blob.", - "required": true, + "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", - "minLength": 1, - "maxLength": 1024, - "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + "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.", + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", "required": false, - "type": "integer", - "format": "int32", - "minimum": 0 + "type": "string", + "x-ms-client-name": "BlobTagsString" }, { - "$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." - } - ] + "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" + }, + { + "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" + }, + { + "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" + }, + { + "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/Azure.Core.ClientRequestIdHeader" + } + ], + "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-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": { + "x-ms-copy-id": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, server-generated string identifier for the request." + "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-sku-name": { + "x-ms-copy-status": { "type": "string", - "description": "Identifies the sku name of the account", + "description": "State of the copy operation identified by x-ms-copy-id.", "enum": [ - "Standard_LRS", - "Standard_GRS", - "Standard_RAGRS", - "Standard_ZRS", - "Premium_LRS" + "pending", + "success", + "failed", + "aborted" ], "x-ms-enum": { - "name": "SkuName", + "name": "CopyStatus", "modelAsString": true, "values": [ { - "name": "StandardLRS", - "value": "Standard_LRS", - "description": "The standard LRS SKU." - }, - { - "name": "StandardGRS", - "value": "Standard_GRS", - "description": "The standard GRS SKU." + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." }, { - "name": "StandardRAGRS", - "value": "Standard_RAGRS", - "description": "The standard RAGRS SKU." + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." }, { - "name": "StandardZRS", - "value": "Standard_ZRS", - "description": "The standard ZRS SKU." + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." }, { - "name": "PremiumLRS", - "value": "Premium_LRS", - "description": "The premium LRS SKU." + "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." + }, + "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." } } }, @@ -7711,14 +8503,10 @@ } } }, - "/{containerName}/{blob}?comp=tags": { - "get": { - "operationId": "Blob_GetTags", - "description": "The Get Blob Tags operation enables users to get tags on a blob.", - "produces": [ - "application/xml", - "application/json" - ], + "/{containerName}/{blob}/?comp=copy©id": { + "put": { + "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": [ { "name": "x-ms-version", @@ -7755,19 +8543,12 @@ "minimum": 0 }, { - "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", + "name": "copyid", "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, + "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": "versionId" + "x-ms-client-name": "copyId" }, { "name": "x-ms-lease-id", @@ -7777,24 +8558,13 @@ "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.", - "schema": { - "$ref": "#/definitions/BlobTags" - }, + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", "headers": { "Date": { "type": "string", @@ -7822,13 +8592,10 @@ } } }, - "/{containerName}/{blob}?comp=tags&_overload=setTags": { + "/{containerName}/{blob}/?comp=copy&sync": { "put": { - "operationId": "Blob_SetTags", - "description": "The Set Tags operation enables users to set tags on a blob.", - "consumes": [ - "application/xml" - ], + "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": [ { "name": "x-ms-version", @@ -7865,148 +8632,17 @@ "minimum": 0 }, { - "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": "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-content-crc64", + "name": "x-ms-meta", "in": "header", - "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "description": "The metadata headers.", "required": false, "type": "string", - "x-ms-client-name": "transactionalContentCrc64" + "x-ms-client-name": "metadata" }, { - "name": "x-ms-if-tags", + "name": "x-ms-access-tier", "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-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" - }, - { - "name": "tags", - "in": "body", - "description": "The blob tags.", - "required": true, - "schema": { - "$ref": "#/definitions/BlobTags" - } - } - ], - "responses": { - "204": { - "description": "There is no content to send for this request, but the headers may be useful. ", - "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" - } - } - } - } - }, - "/{containerName}/{blob}?PageBlob": { - "put": { - "operationId": "PageBlob_Create", - "description": "The Create operation creates a new page blob.", - "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": "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.", + "description": "The tier to be set on the blob.", "required": false, "type": "string", "enum": [ @@ -8020,111 +8656,162 @@ "P50", "P60", "P70", - "P80" + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" ], "x-ms-enum": { - "name": "PremiumPageBlobAccessTier", + "name": "AccessTier", "modelAsString": true, "values": [ { "name": "P4", "value": "P4", - "description": "The premium page blob access tier is P4." + "description": "The hot P4 tier." }, { "name": "P6", "value": "P6", - "description": "The premium page blob access tier is P6." + "description": "The hot P6 tier." }, { "name": "P10", "value": "P10", - "description": "The premium page blob access tier is P10." + "description": "The hot P10 tier." }, { "name": "P15", "value": "P15", - "description": "The premium page blob access tier is P15." + "description": "The hot P15 tier." }, { "name": "P20", "value": "P20", - "description": "The premium page blob access tier is P20." + "description": "The hot P20 tier." }, { "name": "P30", "value": "P30", - "description": "The premium page blob access tier is P30." + "description": "The hot P30 tier." }, { "name": "P40", "value": "P40", - "description": "The premium page blob access tier is P40." + "description": "The hot P40 tier." }, { "name": "P50", "value": "P50", - "description": "The premium page blob access tier is P50." + "description": "The hot P50 tier." }, { "name": "P60", "value": "P60", - "description": "The premium page blob access tier is P60." + "description": "The hot P60 tier." }, { "name": "P70", "value": "P70", - "description": "The premium page blob access tier is P70." + "description": "The hot P70 tier." }, { "name": "P80", "value": "P80", - "description": "The premium page blob access tier is 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-blob-content-type", + "name": "x-ms-source-if-modified-since", "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.", + "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": "blobContentType" + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" }, { - "name": "x-ms-blob-content-encoding", + "name": "x-ms-source-if-unmodified-since", "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.", + "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", - "x-ms-client-name": "blobContentEncoding" + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" }, { - "name": "x-ms-blob-content-language", + "name": "x-ms-source-if-match", "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.", + "description": "Specify an ETag value to operate only on blobs with a matching value.", "required": false, "type": "string", - "x-ms-client-name": "blobContentLanguage" + "x-ms-client-name": "sourceIfMatch" }, { - "name": "x-ms-blob-content-md5", + "name": "x-ms-source-if-none-match", "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.", + "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": "byte", - "x-ms-client-name": "blobContentMd5" + "x-ms-client-name": "sourceIfNoneMatch" }, { - "name": "x-ms-blob-cache-control", + "$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": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "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": "blobCacheControl" + "x-ms-client-name": "ifTags" + }, + { + "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" }, { "name": "x-ms-lease-id", @@ -8135,127 +8822,43 @@ "x-ms-client-name": "leaseId" }, { - "name": "x-ms-blob-content-disposition", + "name": "x-ms-source-content-md5", "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.", + "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": "blobContentDisposition" + "x-ms-client-name": "sourceContentMd5" }, { - "name": "x-ms-encryption-key", + "name": "x-ms-tags", "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.", + "description": "Optional. Used to set blob tags in various blob operations.", "required": false, "type": "string", - "x-ms-client-name": "encryptionKey" + "x-ms-client-name": "BlobTagsString" }, { - "name": "x-ms-encryption-key-sha256", + "name": "x-ms-immutability-policy-until-date", "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.", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", "required": false, "type": "string", - "x-ms-client-name": "encryptionKeySha256" + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "name": "x-ms-encryption-algorithm", + "name": "x-ms-immutability-policy-mode", "in": "header", - "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "description": "Specifies the immutability policy mode to set on the blob.", "required": false, "type": "string", "enum": [ - "AES256" + "Mutable", + "Locked", + "Unlocked" ], "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/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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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", + "name": "BlobImmutabilityPolicyMode", "modelAsString": true, "values": [ { @@ -8286,26 +8889,36 @@ "x-ms-client-name": "legalHold" }, { - "name": "x-ms-blob-type", + "name": "x-ms-copy-source-authorization", "in": "header", - "description": "The type of the blob.", - "required": true, + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, "type": "string", - "enum": [ - "PageBlob" - ], - "x-ms-enum": { - "modelAsString": false - }, - "x-ms-client-name": "blobType" + "x-ms-client-name": "copySourceAuthorization" + }, + { + "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-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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { "Content-MD5": { "type": "string", @@ -8330,9 +8943,49 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-encryption-key-sha256": { + "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-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-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-encryption-scope": { "type": "string", @@ -8343,10 +8996,6 @@ "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-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." @@ -8362,13 +9011,10 @@ } } }, - "/{containerName}/{blob}?comp=page&update": { + "/{containerName}/{blob}/?comp=expiry": { "put": { - "operationId": "PageBlob_UploadPages", - "description": "The Upload Pages operation writes a range of pages to a page blob", - "consumes": [ - "application/octet-stream" - ], + "operationId": "Blob_SetExpiry", + "description": "Set the expiration time of a blob", "parameters": [ { "name": "x-ms-version", @@ -8395,31 +9041,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "name": "Content-Length", - "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" - }, - { - "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-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" - }, { "name": "timeout", "in": "query", @@ -8430,153 +9051,62 @@ "minimum": 0 }, { - "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" - }, - { - "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", + "name": "x-ms-expiry-option", "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, + "description": "Required. Indicates mode of the expiry time", + "required": true, "type": "string", - "x-ms-client-name": "encryptionKey" + "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" }, { - "name": "x-ms-encryption-key-sha256", + "name": "x-ms-expiry-time", "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.", + "description": "The time this blob will expire.", "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" - }, - { - "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" - }, - { - "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" - }, - { - "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/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" - }, - { - "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" - }, - { - "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" + "format": "date-time-rfc7231", + "x-ms-client-name": "ExpiresOn" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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", @@ -8591,40 +9121,15 @@ "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": { "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-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-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." } } }, @@ -8637,10 +9142,10 @@ } } }, - "/{containerName}/{blob}?comp=page&clear": { + "/{containerName}/{blob}/?comp=immutabilityPolicies": { "put": { - "operationId": "PageBlob_ClearPages", - "description": "The Clear Pages operation clears a range of pages from a page blob", + "operationId": "Blob_SetImmutabilityPolicy", + "description": "Set the immutability policy of a blob", "parameters": [ { "name": "x-ms-version", @@ -8667,15 +9172,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "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", @@ -8686,153 +9182,124 @@ "minimum": 0 }, { - "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" - }, - { - "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", + "name": "If-Unmodified-Since", "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.", + "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", - "x-ms-client-name": "encryptionKey" + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" }, { - "name": "x-ms-encryption-key-sha256", + "name": "x-ms-immutability-policy-until-date", "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.", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", "required": false, "type": "string", - "x-ms-client-name": "encryptionKeySha256" + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" }, { - "name": "x-ms-encryption-algorithm", + "name": "x-ms-immutability-policy-mode", "in": "header", - "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "description": "Specifies the immutability policy mode to set on the blob.", "required": false, "type": "string", "enum": [ - "AES256" + "Mutable", + "Locked", + "Unlocked" ], "x-ms-enum": { - "name": "EncryptionAlgorithmType", + "name": "BlobImmutabilityPolicyMode", "modelAsString": true, "values": [ { - "name": "AES256", - "value": "AES256", - "description": "The AES256 encryption algorithm." + "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": "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-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" + "x-ms-client-name": "immutabilityPolicyMode" }, { - "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.", + "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": "integer", - "format": "int64", - "x-ms-client-name": "ifSequenceNumberLessThan" + "type": "string" }, { - "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.", + "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": "integer", - "format": "int64", - "x-ms-client-name": "ifSequenceNumberEqualTo" - }, - { - "$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" + "type": "string", + "x-ms-client-name": "versionId" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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." - }, - "Last-Modified": { - "type": "string", - "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": { "type": "string", "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-content-crc64": { + "x-ms-immutability-policy-mode": { "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied 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." + } + ] + } + }, + "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", @@ -8850,10 +9317,10 @@ } } }, - "/{containerName}/{blob}?comp=page&update&fromUrl": { - "put": { - "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.", + "/{containerName}/{blob}/?comp=immutabilityPolicies&_overload=deleteImmutabilityPolicy": { + "delete": { + "operationId": "Blob_DeleteImmutabilityPolicy", + "description": "The Delete Immutability Policy operation deletes the immutability policy on the blob.", "parameters": [ { "name": "x-ms-version", @@ -8880,48 +9347,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "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. 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" - }, - { - "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" - }, - { - "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" - }, - { - "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", @@ -8932,93 +9357,109 @@ "minimum": 0 }, { - "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" + "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": "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.", + "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": "encryptionKey" + "x-ms-client-name": "versionId" }, { - "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/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" + } + } + } + } + }, + "/{containerName}/{blob}/?comp=lease&acquire": { + "put": { + "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": [ { - "name": "x-ms-encryption-algorithm", + "name": "x-ms-version", "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, + "description": "Specifies the version of the operation to use for this request.", + "required": true, "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" + "x-ms-client-name": "version" }, { - "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": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "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, + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, "type": "string", - "x-ms-client-name": "leaseId" + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "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.", + "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": "int64", - "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" + "format": "int32", + "minimum": 0 }, { - "name": "x-ms-if-sequence-number-lt", + "name": "x-ms-lease-duration", "in": "header", - "description": "Specify this header value to operate only on a blob if it has a sequence number less than the specified.", + "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": "int64", - "x-ms-client-name": "ifSequenceNumberLessThan" + "format": "int32", + "x-ms-client-name": "duration" }, { - "name": "x-ms-if-sequence-number-eq", + "name": "x-ms-proposed-lease-id", "in": "header", - "description": "Specify this header value to operate only on a blob if it has the specified sequence number.", + "description": "Optional. The proposed lease ID for the container.", "required": false, - "type": "integer", - "format": "int64", - "x-ms-client-name": "ifSequenceNumberEqualTo" + "type": "string", + "x-ms-client-name": "proposedLeaseId" }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -9040,48 +9481,6 @@ "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" - }, - { - "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-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/Azure.Core.ClientRequestIdHeader" } @@ -9090,10 +9489,6 @@ "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", @@ -9108,36 +9503,19 @@ "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": { "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-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": { + "x-ms-lease-id": { "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" + "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." - }, - "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." } } }, @@ -9150,14 +9528,10 @@ } } }, - "/{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" - ], + "/{containerName}/{blob}/?comp=lease&break": { + "put": { + "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": [ { "name": "x-ms-version", @@ -9184,13 +9558,6 @@ "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", @@ -9201,20 +9568,13 @@ "minimum": 0 }, { - "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" - }, - { - "name": "x-ms-lease-id", + "name": "x-ms-lease-break-period", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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": "string", - "x-ms-client-name": "leaseId" + "type": "integer", + "format": "int32", + "x-ms-client-name": "breakPeriod" }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -9236,32 +9596,13 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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 - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PageList" - }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "headers": { "Date": { "type": "string", @@ -9277,16 +9618,16 @@ "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-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." + }, "x-ms-request-id": { "type": "string", "format": "uuid", @@ -9303,14 +9644,10 @@ } } }, - "/{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" - ], + "/{containerName}/{blob}/?comp=lease&change": { + "put": { + "operationId": "Blob_ChangeLease", + "description": "The Change Lease operation is used to change the ID of an existing lease.", "parameters": [ { "name": "x-ms-version", @@ -9337,13 +9674,6 @@ "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", @@ -9354,35 +9684,20 @@ "minimum": 0 }, { - "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" - }, - { - "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" - }, - { - "name": "x-ms-range", + "name": "x-ms-lease-id", "in": "header", - "description": "Return only the bytes of the blob in the specified range.", - "required": false, + "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": "range" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-lease-id", + "name": "x-ms-proposed-lease-id", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "description": "Optional. The proposed lease ID for the container.", "required": false, "type": "string", - "x-ms-client-name": "leaseId" + "x-ms-client-name": "proposedLeaseId" }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -9404,22 +9719,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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 - }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -9427,9 +9726,6 @@ "responses": { "200": { "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/PageList" - }, "headers": { "Date": { "type": "string", @@ -9445,16 +9741,15 @@ "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-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, "x-ms-request-id": { "type": "string", "format": "uuid", @@ -9471,10 +9766,10 @@ } } }, - "/{containerName}/{blob}?comp=properties&Resize": { + "/{containerName}/{blob}/?comp=lease&release": { "put": { - "operationId": "PageBlob_Resize", - "description": "The Resize operation increases the size of the page blob to the specified size.", + "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": [ { "name": "x-ms-version", @@ -9513,85 +9808,30 @@ { "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, + "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-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/Azure.Core.ConditionalRequestHeaders.ifMatch" }, { - "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/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" }, { - "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.ifUnmodifiedSince" }, { - "name": "x-ms-encryption-scope", + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + }, + { + "name": "x-ms-if-tags", "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.", + "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": "encryptionScope" - }, - { - "$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" - }, - { - "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" + "x-ms-client-name": "ifTags" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -9615,11 +9855,6 @@ "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": { "type": "string", "format": "uuid", @@ -9641,10 +9876,10 @@ } } }, - "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { + "/{containerName}/{blob}/?comp=lease&renew": { "put": { - "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.", + "operationId": "Blob_RenewLease", + "description": "The Renew Lease operation renews an existing lease.", "parameters": [ { "name": "x-ms-version", @@ -9683,8 +9918,8 @@ { "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, + "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" }, @@ -9708,50 +9943,6 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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" - }, - { - "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/Azure.Core.ClientRequestIdHeader" } @@ -9774,16 +9965,15 @@ "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": { "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", @@ -9800,10 +9990,10 @@ } } }, - "/{containerName}/{blob}?comp=incrementalcopy": { + "/{containerName}/{blob}/?comp=legalhold": { "put": { - "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_SetLegalHold", + "description": "The Set Legal Hold operation sets a legal hold on the blob.", "parameters": [ { "name": "x-ms-version", @@ -9840,99 +10030,49 @@ "minimum": 0 }, { - "$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-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" }, { - "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.", + "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", - "x-ms-client-name": "ifTags" + "type": "string" }, { - "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, + "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": "copySource" + "x-ms-client-name": "versionId" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "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-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-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-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." }, "x-ms-request-id": { "type": "string", @@ -9950,10 +10090,10 @@ } } }, - "/{containerName}/{blob}?AppendBlob": { + "/{containerName}/{blob}/?comp=metadata": { "put": { - "operationId": "AppendBlob_Create", - "description": "The Create operation creates a new append blob.", + "operationId": "Blob_SetMetadata", + "description": "The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs.", "parameters": [ { "name": "x-ms-version", @@ -9963,14 +10103,6 @@ "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", @@ -9998,111 +10130,61 @@ "minimum": 0 }, { - "name": "Content-Length", + "name": "x-ms-meta", "in": "header", - "description": "The length of the request.", - "required": true, - "type": "integer", - "format": "int64", - "x-ms-client-name": "contentLength" + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" }, { - "name": "x-ms-blob-content-type", + "name": "x-ms-lease-id", "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.", + "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": "blobContentType" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-blob-content-encoding", + "name": "x-ms-encryption-key", "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.", + "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": "blobContentEncoding" + "x-ms-client-name": "encryptionKey" }, { - "name": "x-ms-blob-content-language", + "name": "x-ms-encryption-key-sha256", "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.", + "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": "blobContentLanguage" + "x-ms-client-name": "encryptionKeySha256" }, { - "name": "x-ms-blob-content-md5", + "name": "x-ms-encryption-algorithm", "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.", + "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", - "format": "byte", - "x-ms-client-name": "blobContentMd5" + "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-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", + "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, @@ -10129,91 +10211,14 @@ "type": "string", "x-ms-client-name": "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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", @@ -10265,13 +10270,10 @@ } } }, - "/{containerName}/{blob}?comp=appendblock": { + "/{containerName}/{blob}/?comp=properties&SetHTTPHeaders": { "put": { - "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_SetHttpHeaders", + "description": "The Set HTTP Headers operation sets system properties on the blob.", "parameters": [ { "name": "x-ms-version", @@ -10308,101 +10310,61 @@ "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": "Content-MD5", + "name": "x-ms-blob-cache-control", "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.", + "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": "transactionalContentMD5" + "x-ms-client-name": "blobCacheControl" }, { - "name": "x-ms-content-crc64", + "name": "x-ms-blob-content-type", "in": "header", - "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "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": "transactionalContentCrc64" + "x-ms-client-name": "blobContentType" }, { - "name": "x-ms-lease-id", + "name": "x-ms-blob-content-md5", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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": "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" - }, - { - "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" + "format": "byte", + "x-ms-client-name": "blobContentMd5" }, { - "name": "x-ms-encryption-key", + "name": "x-ms-blob-content-encoding", "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.", + "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": "encryptionKey" + "x-ms-client-name": "blobContentEncoding" }, { - "name": "x-ms-encryption-key-sha256", + "name": "x-ms-blob-content-language", "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.", + "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": "encryptionKeySha256" + "x-ms-client-name": "blobContentLanguage" }, { - "name": "x-ms-encryption-algorithm", + "name": "x-ms-lease-id", "in": "header", - "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", "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" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-encryption-scope", + "name": "x-ms-blob-content-disposition", "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.", + "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": "encryptionScope" + "x-ms-client-name": "blobContentDisposition" }, { "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" @@ -10424,45 +10386,14 @@ "type": "string", "x-ms-client-name": "ifTags" }, - { - "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" - }, - { - "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/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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", @@ -10477,44 +10408,20 @@ "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": { + "x-ms-blob-sequence-number": { "type": "integer", - "format": "int32", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + "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": { "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-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-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." } } }, @@ -10527,10 +10434,10 @@ } } }, - "/{containerName}/{blob}?comp=appendblock&fromUrl": { + "/{containerName}/{blob}/?comp=snapshot": { "put": { - "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.", + "operationId": "Blob_CreateSnapshot", + "description": "The Create Snapshot operation creates a read-only snapshot of a blob", "parameters": [ { "name": "x-ms-version", @@ -10557,39 +10464,6 @@ "maxLength": 1024, "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, - { - "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" - }, - { - "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" - }, { "name": "timeout", "in": "query", @@ -10600,21 +10474,12 @@ "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": "Content-MD5", + "name": "x-ms-meta", "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.", + "description": "The metadata headers.", "required": false, "type": "string", - "x-ms-client-name": "transactionalContentMD5" + "x-ms-client-name": "metadata" }, { "name": "x-ms-encryption-key", @@ -10662,32 +10527,6 @@ "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" - }, - { - "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/Azure.Core.ConditionalRequestHeaders.ifMatch" }, @@ -10709,46 +10548,12 @@ "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" - }, - { - "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-copy-source-authorization", + "name": "x-ms-lease-id", "in": "header", - "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "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": "copySourceAuthorization" + "x-ms-client-name": "leaseId" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -10758,10 +10563,6 @@ "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", @@ -10776,32 +10577,11 @@ "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": { "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-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-request-id": { "type": "string", "format": "uuid", @@ -10810,6 +10590,14 @@ "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-snapshot": { + "type": "string", + "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." + }, + "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." } } }, @@ -10822,10 +10610,14 @@ } } }, - "/{containerName}/{blob}?comp=seal": { - "put": { - "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.", + "/{containerName}/{blob}/?comp=tags": { + "get": { + "operationId": "Blob_GetTags", + "description": "The Get Blob Tags operation enables users to get tags on a blob.", + "produces": [ + "application/xml", + "application/json" + ], "parameters": [ { "name": "x-ms-version", @@ -10861,6 +10653,21 @@ "format": "int32", "minimum": 0 }, + { + "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": "x-ms-lease-id", "in": "header", @@ -10870,25 +10677,12 @@ "x-ms-client-name": "leaseId" }, { - "$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-blob-condition-appendpos", + "name": "x-ms-if-tags", "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).", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", "required": false, - "type": "integer", - "format": "int64", - "x-ms-client-name": "appendPosition" + "type": "string", + "x-ms-client-name": "ifTags" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -10897,31 +10691,21 @@ "responses": { "200": { "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/BlobTags" + }, "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": { + "x-ms-client-request-id": { "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "Last-Modified": { - "type": "string", - "format": "date-time-rfc7231", - "description": "The date/time that the container was last modified." - }, - "x-ms-blob-sealed": { - "type": "boolean", - "description": "If this blob has been sealed" - }, - "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": { + "x-ms-request-id": { "type": "string", "format": "uuid", "description": "An opaque, globally-unique, server-generated string identifier for the request." @@ -10937,12 +10721,12 @@ } } }, - "/{containerName}/{blob}?BlockBlob": { + "/{containerName}/{blob}/?comp=tags&_overload=setTags": { "put": { - "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.", + "operationId": "Blob_SetTags", + "description": "The Set Tags operation enables users to set tags on a blob.", "consumes": [ - "application/octet-stream" + "application/xml" ], "parameters": [ { @@ -10953,14 +10737,6 @@ "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", @@ -10987,6 +10763,14 @@ "format": "int32", "minimum": 0 }, + { + "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": "Content-MD5", "in": "header", @@ -10996,122 +10780,131 @@ "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", + "name": "x-ms-content-crc64", "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.", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", "required": false, "type": "string", - "x-ms-client-name": "blobContentType" + "x-ms-client-name": "transactionalContentCrc64" }, { - "name": "x-ms-blob-content-encoding", + "name": "x-ms-if-tags", "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.", + "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": "blobContentEncoding" + "x-ms-client-name": "ifTags" }, { - "name": "x-ms-blob-content-language", + "name": "x-ms-lease-id", "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.", + "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": "blobContentLanguage" + "x-ms-client-name": "leaseId" }, { - "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/Azure.Core.ClientRequestIdHeader" }, { - "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": "tags", + "in": "body", + "description": "The blob tags.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobTags" + } + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", + "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" + } + } + } + } + }, + "/{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-lease-id", + "name": "x-ms-version", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", - "required": false, + "description": "Specifies the version of the operation to use for this request.", + "required": true, "type": "string", - "x-ms-client-name": "leaseId" + "x-ms-client-name": "version" }, { - "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": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "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, + "name": "blob", + "in": "path", + "description": "The name of the blob.", + "required": true, "type": "string", - "x-ms-client-name": "encryptionKey" + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" }, { - "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.", + "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", - "x-ms-client-name": "encryptionKeySha256" + "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.", + "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", - "enum": [ - "AES256" - ], - "x-ms-enum": { - "name": "EncryptionAlgorithmType", - "modelAsString": true, - "values": [ - { - "name": "AES256", - "value": "AES256", - "description": "The AES256 encryption algorithm." - } - ] - }, - "x-ms-client-name": "encryptionAlgorithm" + "x-ms-client-name": "versionId" }, { - "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.", + "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": "string", - "x-ms-client-name": "encryptionScope" + "type": "integer", + "format": "int32", + "minimum": 0 }, { "name": "x-ms-access-tier", "in": "header", - "description": "The tier to be set on the blob.", - "required": false, + "description": "Indicates the tier to be set on the blob.", + "required": true, "type": "string", "enum": [ "P4", @@ -11220,188 +11013,81 @@ "x-ms-client-name": "tier" }, { - "$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", + "name": "x-ms-rehydrate-priority", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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", - "x-ms-client-name": "ifTags" + "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-tags", + "name": "x-ms-lease-id", "in": "header", - "description": "Optional. Used to set blob tags in various blob operations.", + "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": "BlobTagsString" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-immutability-policy-until-date", + "name": "x-ms-if-tags", "in": "header", - "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", "required": false, "type": "string", - "format": "date-time-rfc7231", - "x-ms-client-name": "immutabilityPolicyExpiry" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" - }, - { - "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" + "x-ms-client-name": "ifTags" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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." - }, - "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-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-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": { + } + } + }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-client-request-id": { "type": "string", - "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "x-ms-version-id": { + "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." } } }, @@ -11414,10 +11100,10 @@ } } }, - "/{containerName}/{blob}?BlockBlob&fromUrl": { - "put": { - "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.", + "/{containerName}/{blob}/?restype=account&comp=properties&blob": { + "get": { + "operationId": "Blob_GetAccountInfo", + "description": "Returns the sku name and account kind", "parameters": [ { "name": "x-ms-version", @@ -11427,14 +11113,6 @@ "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", @@ -11462,373 +11140,617 @@ "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" - }, - { - "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.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" + } + } + } + } + }, + "/{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-encryption-scope", + "name": "x-ms-version", "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.", + "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": "encryptionScope" + "x-ms-client-name": "proposedLeaseId" }, { - "name": "x-ms-access-tier", + "name": "If-Modified-Since", "in": "header", - "description": "The tier to be set on the blob.", + "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", - "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" + "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": { + "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" + } + } + } + } + }, + "/{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" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + "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.ConditionalRequestHeaders.ifNoneMatch" + "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.ConditionalRequestHeaders.ifUnmodifiedSince" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "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" + } + } + } + } + }, + "/{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": [ { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.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" }, { - "name": "x-ms-if-tags", + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-lease-id", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", - "required": false, + "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": "ifTags" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-source-if-modified-since", + "name": "x-ms-proposed-lease-id", "in": "header", - "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "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": "sourceIfModifiedSince" + "x-ms-client-name": "ifModifiedSince" }, { - "name": "x-ms-source-if-unmodified-since", + "name": "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.", + "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": "sourceIfUnmodifiedSince" + "x-ms-client-name": "ifUnmodifiedSince" }, { - "name": "x-ms-source-if-match", + "$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" + } + } + } + } + }, + "/{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": "Specify an ETag value to operate only on blobs with a matching value.", - "required": false, + "description": "Specifies the version of the operation to use for this request.", + "required": true, "type": "string", - "x-ms-client-name": "sourceIfMatch" + "x-ms-client-name": "version" }, { - "name": "x-ms-source-if-none-match", + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-lease-id", "in": "header", - "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "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", - "x-ms-client-name": "sourceIfNoneMatch" + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" }, { - "name": "x-ms-source-if-tags", + "name": "If-Unmodified-Since", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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", - "x-ms-client-name": "sourceIfTags" + "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-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}/?comp=lease&restype=container&renew": { + "put": { + "operationId": "Container_RenewLease", + "description": "The Renew Lease operation renews an existing lease.", + "parameters": [ { - "name": "x-ms-source-content-md5", + "name": "x-ms-version", "in": "header", - "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", - "required": false, + "description": "Specifies the version of the operation to use for this request.", + "required": true, "type": "string", - "x-ms-client-name": "sourceContentMd5" + "x-ms-client-name": "version" }, { - "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" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "name": "x-ms-copy-source", + "name": "x-ms-lease-id", "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.", + "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": "copySource" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-copy-source-blob-properties", - "in": "header", - "description": "Optional, default is true. Indicates if properties from the source blob should be copied.", + "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": "boolean", - "x-ms-client-name": "copySourceBlobProperties" + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "name": "x-ms-copy-source-authorization", + "name": "If-Modified-Since", "in": "header", - "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "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", - "x-ms-client-name": "copySourceAuthorization" + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" }, { - "name": "x-ms-copy-source-tags", + "name": "If-Unmodified-Since", "in": "header", - "description": "Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags.", + "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", - "x-ms-client-name": "copySourceTags" - }, - { - "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" + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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", @@ -11848,26 +11770,165 @@ "format": "uuid", "description": "An opaque, globally-unique, client-generated string identifier for the request." }, - "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": { + "x-ms-lease-id": { "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" + "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" + } + } + } + } + }, + "/{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-request-server-encrypted": { + "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": "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": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." }, - "x-ms-version-id": { + "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." + }, + "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." + } + ] + } } } }, @@ -11880,12 +11941,13 @@ } } }, - "/{containerName}/{blob}?comp=block": { - "put": { - "operationId": "BlockBlob_StageBlock", - "description": "The Stage Block operation creates a new block to be committed as part of a blob", - "consumes": [ - "application/octet-stream" + "/{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": [ { @@ -11903,49 +11965,6 @@ "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" - }, - { - "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-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" - }, { "name": "timeout", "in": "query", @@ -11963,125 +11982,64 @@ "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" - }, - { - "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-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" - }, - { - "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/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "body", - "in": "body", - "description": "The body of the request.", - "required": true, - "schema": { - "type": "string", - "format": "binary" - } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + }, "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" }, - "x-ms-client-request-id": { + "ETag": { "type": "string", - "format": "uuid", - "description": "An opaque, globally-unique, client-generated string identifier for the request." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-content-crc64": { + "Last-Modified": { "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-encryption-key-sha256": { + "x-ms-blob-public-access": { "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 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-encryption-scope": { + "x-ms-client-request-id": { "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" + "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." - }, - "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." } } }, @@ -12094,10 +12052,13 @@ } } }, - "/{containerName}/{blob}?comp=block&fromURL": { + "/{containerName}/?restype=container&comp=acl&_overload=setAccessPolicy": { "put": { - "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.", + "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", @@ -12114,213 +12075,109 @@ "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" - }, - { - "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" - }, - { - "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" - }, { "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-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" + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "name": "x-ms-encryption-key-sha256", + "name": "x-ms-lease-id", "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.", + "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": "encryptionKeySha256" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-encryption-algorithm", + "name": "x-ms-blob-public-access", "in": "header", - "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "description": "The public access setting for the container.", "required": false, "type": "string", "enum": [ - "AES256" + "blob", + "container" ], "x-ms-enum": { - "name": "EncryptionAlgorithmType", + "name": "PublicAccessType", "modelAsString": true, "values": [ { - "name": "AES256", - "value": "AES256", - "description": "The AES256 encryption algorithm." + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." } ] }, - "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" + "x-ms-client-name": "access" }, { - "name": "x-ms-source-if-modified-since", + "name": "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.", + "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": "sourceIfModifiedSince" + "x-ms-client-name": "ifModifiedSince" }, { - "name": "x-ms-source-if-unmodified-since", + "name": "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.", + "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": "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" + "x-ms-client-name": "ifUnmodifiedSince" }, { - "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/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + "name": "containerAcl", + "in": "body", + "description": "The access control list for the container.", + "required": true, + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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" }, - "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": { + "ETag": { "type": "string", - "description": "This response header is returned so that the client can check for the integrity of the copied content." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-encryption-key-sha256": { + "Last-Modified": { "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." + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." }, - "x-ms-encryption-scope": { + "x-ms-client-request-id": { "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" + "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." - }, - "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." } } }, @@ -12333,12 +12190,13 @@ } } }, - "/{containerName}/{blob}?comp=blocklist": { - "put": { - "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" + "/{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": [ { @@ -12356,16 +12214,6 @@ "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", @@ -12376,344 +12224,509 @@ "minimum": 0 }, { - "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-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.", + "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", - "format": "byte", - "x-ms-client-name": "blobContentMd5" + "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.", + "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", - "x-ms-client-name": "transactionalContentMD5" + "type": "string" }, { - "name": "x-ms-content-crc64", - "in": "header", - "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "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": "string", - "x-ms-client-name": "transactionalContentCrc64" + "type": "integer", + "format": "int32", + "minimum": 1 }, { - "name": "x-ms-meta", - "in": "header", - "description": "The metadata headers.", + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", "required": false, - "type": "string", - "x-ms-client-name": "metadata" + "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" }, { - "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/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" + } + } + } + } + }, + "/{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-blob-content-disposition", + "name": "x-ms-version", "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, + "description": "Specifies the version of the operation to use for this request.", + "required": true, "type": "string", - "x-ms-client-name": "blobContentDisposition" + "x-ms-client-name": "version" }, { - "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": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "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.", + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", "required": false, - "type": "string", - "x-ms-client-name": "encryptionKeySha256" + "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.", + "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", - "enum": [ - "AES256" - ], - "x-ms-enum": { - "name": "EncryptionAlgorithmType", - "modelAsString": true, - "values": [ - { - "name": "AES256", - "value": "AES256", - "description": "The AES256 encryption algorithm." - } - ] - }, - "x-ms-client-name": "encryptionAlgorithm" + "type": "string" }, { - "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.", + "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": "string", - "x-ms-client-name": "encryptionScope" + "type": "integer", + "format": "int32", + "minimum": 1 }, { - "name": "x-ms-access-tier", - "in": "header", - "description": "The tier to be set on the blob.", + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", "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." - } - ] + "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." + } + ] + } }, - "x-ms-client-name": "tier" + "collectionFormat": "csv" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.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/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{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" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + "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": "x-ms-if-tags", - "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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" + } + ], + "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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + } + }, + "/{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": "ifTags" + "x-ms-client-name": "version" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "name": "x-ms-tags", - "in": "header", - "description": "Optional. Used to set blob tags in various blob operations.", + "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": "string", - "x-ms-client-name": "BlobTagsString" + "type": "integer", + "format": "int32", + "minimum": 0 }, { - "name": "x-ms-immutability-policy-until-date", + "name": "x-ms-lease-id", "in": "header", - "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", "required": false, "type": "string", - "format": "date-time-rfc7231", - "x-ms-client-name": "immutabilityPolicyExpiry" + "x-ms-client-name": "leaseId" }, { - "name": "x-ms-immutability-policy-mode", + "name": "x-ms-meta", "in": "header", - "description": "Specifies the immutability policy mode to set on the blob.", + "description": "The metadata headers.", "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" + "x-ms-client-name": "metadata" }, { - "name": "x-ms-legal-hold", + "name": "If-Modified-Since", "in": "header", - "description": "Specified if a legal hold should be set on the blob.", + "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": "boolean", - "x-ms-client-name": "legalHold" + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" - }, - { - "name": "blocks", - "in": "body", - "description": "Blob Blocks.", - "required": true, - "schema": { - "$ref": "#/definitions/BlockLookupList" - } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "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", @@ -12733,30 +12746,10 @@ "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-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-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-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." } } }, @@ -12769,14 +12762,10 @@ } } }, - "/{containerName}/{blob}?comp=blocklist&_overload=getBlockList": { - "get": { - "operationId": "BlockBlob_GetBlockList", - "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" - ], + "/{containerName}/?restype=container&comp=rename": { + "put": { + "operationId": "Container_Rename", + "description": "Renames an existing container.", "parameters": [ { "name": "x-ms-version", @@ -12794,55 +12783,20 @@ "type": "string" }, { - "name": "blob", - "in": "path", - "description": "The name of the blob.", + "name": "x-ms-source-container-name", + "in": "header", + "description": "Required. Specifies the name of the container to rename.", "required": true, "type": "string", - "minLength": 1, - "maxLength": 1024, - "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + "x-ms-client-name": "sourceContainerName" }, { - "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.", + "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" - }, - { - "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" + "x-ms-client-name": "sourceLeaseId" }, { "name": "timeout", @@ -12854,51 +12808,97 @@ "minimum": 0 }, { - "name": "x-ms-lease-id", + "$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" + } + } + } + } + }, + "/{containerName}/?restype=container&comp=undelete": { + "put": { + "operationId": "Container_Restore", + "description": "Restores a previously-deleted container.", + "parameters": [ + { + "name": "x-ms-version", "in": "header", - "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "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": "leaseId" + "x-ms-client-name": "deletedContainerName" }, { - "name": "x-ms-if-tags", + "name": "x-ms-deleted-container-version", "in": "header", - "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "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": "ifTags" + "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": { - "200": { - "description": "The request has succeeded.", - "schema": { - "$ref": "#/definitions/BlockList" - }, + "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-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", From 3e047845933a1755cc8c40dea9fd2d0c54d403a9 Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Fri, 21 Feb 2025 17:39:57 -0800 Subject: [PATCH 127/129] update suppression --- .../storage/data-plane/Microsoft.BlobStorage/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/readme.md b/specification/storage/data-plane/Microsoft.BlobStorage/readme.md index c8bc60fef981..53d548612850 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/readme.md +++ b/specification/storage/data-plane/Microsoft.BlobStorage/readme.md @@ -129,6 +129,6 @@ directive: ```yaml suppressions: - code: LroExtension - from: stable/2025-01-05/blob.json + from: blob.json reason: Legacy operations not defined as lro ``` From 8f64ced8adb830e25603307f05f7e0f61535e97c Mon Sep 17 00:00:00 2001 From: catalinaperalta Date: Mon, 24 Feb 2025 15:16:34 -0800 Subject: [PATCH 128/129] update refs to blob namespace --- .../storage/Microsoft.BlobStorage/client.tsp | 4 ++-- .../storage/Microsoft.BlobStorage/routes.tsp | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index 439f4479b22b..8c71c79ffb73 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -14,7 +14,7 @@ model BlobServiceClientParameters { } @@clientNamespace(Storage.Blob, "Azure.Storage.Blobs"); -@@clientNamespace(Storage.Blob.Blob, "Azure.Storage.Blobs"); +@@clientNamespace(Storage.Blob.Container.Blob, "Azure.Storage.Blobs"); @@clientNamespace(Storage.Blob.Container, "Azure.Storage.Blobs"); @@clientNamespace(Storage.Blob.AppendBlob, "Azure.Storage.Blobs"); @@clientNamespace(Storage.Blob.BlockBlob, "Azure.Storage.Blobs"); @@ -22,7 +22,7 @@ model BlobServiceClientParameters { @@clientName(Storage.Blob, "ServiceClient"); -@@clientInitialization(Storage.Blob.Blob, +@@clientInitialization(Storage.Blob.Container.Blob, { parameters: BlobServiceClientParameters, initializedBy: InitializedBy.parent | InitializedBy.individually, diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index e2fa9073a5a9..162433667901 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -11,8 +11,7 @@ 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{ - +namespace Storage.Blob { alias ApiVersionHeader = { /** Specifies the version of the operation to use for this request. */ @apiVersion @@ -63,7 +62,10 @@ namespace Storage.Blob{ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Existing API" @get @route("/?restype=service&comp=properties") - op getProperties is StorageOperation; + 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" @@ -176,7 +178,8 @@ namespace Storage.Blob{ ...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; + @header("x-ms-default-encryption-scope") + defaultEncryptionScope?: string; ...DenyEncryptionScopeOverride; }, @@ -2182,4 +2185,4 @@ namespace Storage.Blob{ "application/octet-stream" >; } -} \ No newline at end of file +} From 617c74dc1a17cd59955337d8e7eed3015e45a8af Mon Sep 17 00:00:00 2001 From: Joel Hendrix Date: Mon, 24 Feb 2025 15:35:14 -0800 Subject: [PATCH 129/129] nest append/block/page blobs under container --- .../storage/Microsoft.BlobStorage/client.tsp | 22 +- .../storage/Microsoft.BlobStorage/routes.tsp | 1610 ++++++++--------- 2 files changed, 816 insertions(+), 816 deletions(-) diff --git a/specification/storage/Microsoft.BlobStorage/client.tsp b/specification/storage/Microsoft.BlobStorage/client.tsp index 8c71c79ffb73..459e637297a1 100644 --- a/specification/storage/Microsoft.BlobStorage/client.tsp +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -14,39 +14,39 @@ model BlobServiceClientParameters { } @@clientNamespace(Storage.Blob, "Azure.Storage.Blobs"); -@@clientNamespace(Storage.Blob.Container.Blob, "Azure.Storage.Blobs"); @@clientNamespace(Storage.Blob.Container, "Azure.Storage.Blobs"); -@@clientNamespace(Storage.Blob.AppendBlob, "Azure.Storage.Blobs"); -@@clientNamespace(Storage.Blob.BlockBlob, "Azure.Storage.Blobs"); -@@clientNamespace(Storage.Blob.PageBlob, "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.Blob, +@@clientInitialization(Storage.Blob.Container, { - parameters: BlobServiceClientParameters, + parameters: ContainerNamePathParameter, initializedBy: InitializedBy.parent | InitializedBy.individually, } ); -@@clientInitialization(Storage.Blob.Container, +@@clientInitialization(Storage.Blob.Container.Blob, { - parameters: ContainerNamePathParameter, + parameters: BlobServiceClientParameters, initializedBy: InitializedBy.parent | InitializedBy.individually, } ); -@@clientInitialization(Storage.Blob.AppendBlob, +@@clientInitialization(Storage.Blob.Container.AppendBlob, { parameters: BlobServiceClientParameters, initializedBy: InitializedBy.parent | InitializedBy.individually, } ); -@@clientInitialization(Storage.Blob.BlockBlob, +@@clientInitialization(Storage.Blob.Container.BlockBlob, { parameters: BlobServiceClientParameters, initializedBy: InitializedBy.parent | InitializedBy.individually, } ); -@@clientInitialization(Storage.Blob.PageBlob, +@@clientInitialization(Storage.Blob.Container.PageBlob, { parameters: BlobServiceClientParameters, initializedBy: InitializedBy.parent | InitializedBy.individually, diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 162433667901..e9795e6ed99d 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -1345,844 +1345,844 @@ namespace Storage.Blob { } >; } - } - - #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; + #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; - /** The data to upload. */ - ...BodyParameter; + /** Optional. Indicates the tier to be set on the page blob. */ + @header("x-ms-access-tier") + tier?: PremiumPageBlobAccessTier; - ...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" - >; + ...BlobContentTypeParameter; + ...BlobContentEncodingParameter; + ...BlobContentLanguageParameter; + ...BlobContentMd5Parameter; + ...BlobCacheControlParameter; + ...LeaseIdOptionalParameter; + ...BlobContentDispositionParameter; + ...EncryptionKeyParameter; + ...EncryptionKeySha256Parameter; + ...EncryptionAlgorithmParameter; + ...EncryptionScopeParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...BlobContentLengthRequired; + ...BlobSequenceNumberParameter; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; - /** 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 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 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; + /** 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; - /** 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; + /** The data to upload. */ + ...BodyParameter; - ...SourceContentMd5Parameter; - ...SourceContentCrc64Parameter; - ...ContentLengthParameter; - ...TimeoutParameter; + ...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" + >; - /** 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; + /** 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" + >; - ...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 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; - /** 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; - } - >; + /** 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; - /** 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; + ...SourceContentMd5Parameter; + ...SourceContentCrc64Parameter; + ...ContentLengthParameter; + ...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; + /** 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; - /** 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; + ...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" + >; - ...RangeParameter; - ...LeaseIdOptionalParameter; - ...ConditionalRequestHeaders; - ...IfTagsParameter; - ...MarkerParameter; - ...MaxResultsParameter; - }, - PageList & { - ...LastModifiedResponseHeader; - ...EtagResponseHeader; - ...BlobContentLengthRequired; - ...DateResponseHeader; - } - >; + /** 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 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 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; - /** 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; - } - >; + /** 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; - /** 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; - } - >; - } + /** 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; - #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" - >; + ...RangeParameter; + ...LeaseIdOptionalParameter; + ...ConditionalRequestHeaders; + ...IfTagsParameter; + ...MarkerParameter; + ...MaxResultsParameter; + }, + PageList & { + ...LastModifiedResponseHeader; + ...EtagResponseHeader; + ...BlobContentLengthRequired; + ...DateResponseHeader; + } + >; - /** 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 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 data to upload. */ - ...BodyParameter; + /** 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; + } + >; - ...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 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; + } + >; + } - /** 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; - } - >; + #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 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; - } - >; - } + /** 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" + >; - #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 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 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 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 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 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; - /** 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; - } - >; + /** Blob Blocks. */ + @body blocks: BlockLookupList; - /** 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; + ...BlobTagsHeaderParameter; + ...ImmutabilityPolicyExpiryParameter; + ...ImmutabilityPolicyModeParameter; + ...LegalHoldOptionalParameter; + }, + { + @statusCode statusCode: 201; + ...EtagResponseHeader; + ...LastModifiedResponseHeader; + ...ContentMd5ResponseHeader; + ...ContentCrc64ResponseHeader; + ...VersionIdResponseHeader; + ...DateResponseHeader; + ...IsServerEncryptedResponseHeader; + ...EncryptionKeySha256ResponseHeader; + ...EncryptionScopeResponseHeader; + } + >; - /** Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together. */ - @query - @clientName("listType") - blocklisttype: BlockListType; + /** 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; - ...TimeoutParameter; - ...LeaseIdOptionalParameter; - ...IfTagsParameter; - }, - BlockList & { - ...LastModifiedResponseHeader; - ...EtagResponseHeader; - ...BlobContentLengthRequired; - ...DateResponseHeader; - } - >; + /** Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together. */ + @query + @clientName("listType") + blocklisttype: BlockListType; - /** 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; + ...TimeoutParameter; + ...LeaseIdOptionalParameter; + ...IfTagsParameter; + }, + BlockList & { + ...LastModifiedResponseHeader; + ...EtagResponseHeader; + ...BlobContentLengthRequired; + ...DateResponseHeader; + } + >; - /** The query request */ - @body - queryRequest: QueryRequest; + /** 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; - ...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" - >; + /** 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" + >; + } } }