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..f8db730b2227 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/client.tsp @@ -0,0 +1,18 @@ +import "@azure-tools/typespec-client-generator-core"; +import "./main.tsp"; + +using Azure.ClientGenerator.Core; +using 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/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp new file mode 100644 index 000000000000..5bca0092dae0 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -0,0 +1,41 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./routes.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; + +@useAuth( + ApiKeyAuth | OAuth2Auth<[ + { + type: OAuth2FlowType.implicit, + authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize", + scopes: ["https://storage.azure.com/.default"], + } + ]> +) +@service({ + title: "Azure Storage Blob service", +}) +@server( + "{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(Versions) +namespace Storage.Blob; + +#suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard typespec recommendation" +#suppress "@azure-tools/typespec-azure-core/no-enum" "Following standard typespec recommendation" +@doc("The Azure.Storage.Blob service versions.") +enum Versions { + @doc("The 2021-12-02-preview version of the Azure.Storage.Blob service.") + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + v2021_12_02: "2021-12-02", +} diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp new file mode 100644 index 000000000000..2618183c8777 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -0,0 +1,2395 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/xml"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.Core; +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; +using Azure.ClientGenerator.Core; + +namespace Storage.Blob; + +/** The error response. */ +@error +model StorageError { + /** The error message. */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Existing API" + Message: string; +} + +/// Models + +/** The Block lookup list. */ +@Xml.name("BlockList") +model BlockLookupList { + /** The committed blocks */ + @Xml.unwrapped + @Xml.name("Committed") + committed: string[]; + + /** The uncommitted blocks */ + @Xml.unwrapped + @Xml.name("Uncommitted") + uncommitted: string[]; + + /** The latest blocks */ + @Xml.unwrapped + @Xml.name("Latest") + latest: string[]; +} + +/** Represents an array of signed identifiers */ +alias SignedIdentifiers = Array; + +/** 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; +} + +/** The result of a Filter Blobs API call */ +model FilterBlobSegment { + /** The service endpoint. */ + @Xml.attribute + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; + + /** The filter for the blobs. */ + @Xml.name("Where") where: string; + + /** The blob segment. */ + @Xml.name("Blobs") blobs: FilterBlobItem[]; + + /** The next marker of the blobs. */ + @Xml.name("NextMarker") nextMarker?: string; +} + +/** The filter blob item. */ +@Xml.name("Blob") +model FilterBlobItem { + /** The name of the blob. */ + @Xml.name("Name") name: string; + + /** The properties of the blob. */ + @Xml.name("ContainerName") containerName: string; + + /** The metadata of the blob. */ + @Xml.name("Tags") tags?: BlobTags; + + /** The version ID of the blob. */ + @Xml.name("VersionId") versionId?: string; + + /** Whether it is the current version of the blob */ + @Xml.name("IsCurrentVersion") isCurrentVersion?: boolean; +} + +/** The filter blobs includes. */ +union FilterBlobsIncludes { + /** The filter includes no versions. */ + None: "none", + + /** The filter includes n versions. */ + Versions: "versions", + + /** Extensible */ + string, +} + +/** The account kind. */ +union AccountKind { + /** The storage account is a general-purpose account. */ + Storage: "Storage", + + /** The storage account is a blob storage account. */ + BlobStorage: "BlobStorage", + + /** The storage account is a storage V2 account. */ + StorageV2: "StorageV2", + + /** The storage account is a file storage account. */ + FileStorage: "FileStorage", + + /** The storage account is a block blob storage account. */ + BlockBlobStorage: "BlockBlobStorage", + + /** Extensible */ + string, +} + +/** The SKU types */ +union SkuName { + /** The standard LRS SKU. */ + StandardLRS: "Standard_LRS", + + /** The standard GRS SKU. */ + StandardGRS: "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, +} + +/** The list container segement response */ +@Xml.name("EnumerationResults") +model ListContainersSegmentResponse { + /** The service endpoint. */ + @Xml.attribute + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; + + /** The prefix of the containers. */ + @Xml.name("Prefix") prefix?: string; + + /** The marker of the containers. */ + @Xml.name("Marker") marker?: string; + + /** The max results of the containers. */ + @Xml.name("MaxResults") maxxResults?: int32; + + /** The container segment. */ + @Xml.name("ContainerItems") containerItems: ContainerItem[]; + + /** The next marker of the containers. */ + @Xml.name("NextMarker") nextMarker?: string; +} + +/** An Azure Storage container. */ +@Xml.name("Container") +model ContainerItem { + /** The name of the container. */ + @Xml.name("Name") name: string; + + /** Whether the container is deleted. */ + @Xml.name("Deleted") delete?: boolean; + + /** The version of the container. */ + @Xml.name("Version") version?: string; + + /** The properties of the container. */ + @Xml.name("Properties") properties: ContainerProperties; + + /** The metadata of the container. */ + @Xml.name("Metadata") metadata?: ContainerMetadata; +} + +/** 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; + + /** The ETag of the container. */ + @Xml.name("ETag") eTag: string; + + /** The lease status of the container. */ + @Xml.name("LeaseStatus") leaseStatus?: LeaseStatus; + + /** The lease state of the container. */ + @Xml.name("LeaseState") leaseState?: LeaseState; + + /** The lease duration of the container. */ + @Xml.name("LeaseDuration") leaseDuration?: LeaseDuration; + + /** The public access type of the container. */ + @Xml.name("PublicAccess") publicAccess?: PublicAccessType; + + /** Whether it has an immutability policy. */ + @Xml.name("HasImmutabilityPolicy") hasImmutabilityPolicy?: boolean; + + /** The default encryption scope of the container. */ + @Xml.name("DefaultEncryptionScope") defaultEncryptionScope?: string; + + /** Whether to prevent encryption scope override. */ + @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; + + /** The remaining retention days of the container. */ + @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; + + /** Whether immutable storage with versioning is enabled. */ + @Xml.name("ImmutableStorageWithVersioningEnabled") + 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 { + /** Whether the metadata is encrypted. */ + @Xml.attribute + @Xml.name("Encrypted") + encrypted: string; +} + +/** Stats for the storage service. */ +model StorageServiceStats { + /** The geo replication stats. */ + @Xml.name("GeoReplication") geoReplication: GeoReplication; +} + +/** The geo replication status. */ +model GeoReplication { + /** The georeplication status. */ + @Xml.name("Status") status: GeoReplicationStatus; + + /** The last sync time. */ + @Xml.name("LastSyncTime") lastSyncTime: string; +} + +/** The geo replication status. */ +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, +} + +/** Key information */ +model KeyInfo { + /** The date-time the key is active. */ + @Xml.name("Start") start: string; + + /** The date-time the key expires. */ + @Xml.name("Expiry") expiry: string; +} + +/** A user delegation key. */ +model UserDelegationKey { + /** The Azure Active Directory object ID in GUID format. */ + @Xml.name("SignedOid") signedOid: uuid; + + /** The Azure Active Directory tenant ID in GUID format. */ + @Xml.name("SignedTid") signedTid: uuid; + + /** The date-time the key is active. */ + @Xml.name("SignedStart") signedStart: string; + + /** The date-time the key expires. */ + @Xml.name("SignedExpiry") signedExpiry: string; + + /** Abbreviation of the Azure Storage service that accepts the key. */ + @Xml.name("SignedService") signedService: string; + + /** The service version that created the key. */ + @Xml.name("SignedVersion") signedVersion: string; + + /** The key as a base64 string. */ + @Xml.name("Value") value: string; +} + +/** The public access types. */ +union PublicAccessType { + /** Blob access. */ + Blob: "blob", + + /** Container access. */ + Container: "container", + + /** Extensible */ + string, +} + +/** The copy status. */ +union CopyStatus { + /** The copy operation is pending. */ + Pending: "pending", + + /** The copy operation succeeded. */ + Success: "success", + + /** The copy operation failed. */ + Failed: "failed", + + /** The copy operation is aborted. */ + Aborted: "aborted", + + /** Extensible */ + string, +} + +/** The lease duration. */ +union LeaseDuration { + /** The lease is of infinite duration. */ + Infinite: "infinite", + + /** The lease is of fixed duration. */ + Fixed: "fixed", + + /** Extensible */ + string, +} + +/** The lease state. */ +union LeaseState { + /** The lease is available. */ + Available: "available", + + /** The lease is currently leased. */ + Leased: "leased", + + /** The lease is expired. */ + Expired: "expired", + + /** The lease is breaking. */ + Breaking: "breaking", + + /** The lease is broken. */ + Broken: "broken", + + /** Extensible */ + string, +} + +/** The lease status. */ +union LeaseStatus { + /** The lease is unlocked. */ + Unlocked: "unlocked", + + /** The lease is locked. */ + Locked: "locked", + + /** Extensible */ + string, +} + +/** Represents an access policy. */ +model AccessPolicy { + /** The date-time the policy is active. */ + @Xml.name("Start") start: utcDateTime; + + /** The date-time the policy expires. */ + @Xml.name("Expiry") expiry: utcDateTime; + + /** The permissions for acl the policy. */ + @Xml.name("Permission") permission: string; +} + +/** The access tiers. */ +union AccessTier { + /** The hot P4 tier. */ + P4: "P4", + + /** The hot P6 tier. */ + P6: "P6", + + /** The hot P10 tier. */ + P10: "P10", + + /** The hot P15 tier. */ + P15: "P15", + + /** The hot P20 tier. */ + P20: "P20", + + /** The hot P30 tier. */ + P30: "P30", + + /** The hot P40 tier. */ + P40: "P40", + + /** The hot P50 tier. */ + P50: "P50", + + /** The hot P60 tier. */ + P60: "P60", + + /** The hot P70 tier. */ + P70: "P70", + + /** The hot P80 tier. */ + P80: "P80", + + /** The hot access tier. */ + Hot: "Hot", + + /** The cool access tier. */ + Cool: "Cool", + + /** The archive access tier. */ + Archive: "Archive", + + /** Extensible */ + string, +} + +/** The archive status. */ +union ArchiveStatus { + /** The archive status is rehydrating pending to hot. */ + RehydratePendingToHot: "rehydrate-pending-to-hot", + + /** The archive status is rehydrating pending to cool. */ + RehydratePendingToCool: "rehydrate-pending-to-cool", + + /** The archive status is rehydrating pending to archive. */ + RehydratePendingToArchive: "rehydrate-pending-to-archive", + + /** The archive status is rehydrating pending to expired. */ + RehydratePendingToExpired: "rehydrate-pending-to-expired", + + /** Extensible */ + string, +} + +/** An Azure Storage Blob */ +@Xml.name("Blob") +model BlobItemInternal { + /** The name of the blob. */ + @Xml.name("Name") name: BlobName; + + /** Whether the blob is deleted. */ + @Xml.name("Deleted") deleted: boolean; + + /** The snapshot of the blob. */ + @Xml.name("Snapshot") snapshot: string; + + /** The version id of the blob. */ + @Xml.name("VersionId") versionId?: string; + + /** Whether the blob is the current version. */ + @Xml.name("IsCurrentVersion") isCurrentVersion?: boolean; + + /** The properties of the blob. */ + @Xml.name("Properties") properties: BlobPropertiesInternal; + + /** The metadata of the blob. */ + @Xml.name("Metadata") metadata?: BlobMetadata; + + /** The tags of the blob. */ + @Xml.name("BlobTags") blobTags?: 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 properties of a blob. */ +@Xml.name("Properties") +model BlobPropertiesInternal { + /** The date-time the blob was created in RFC1123 format. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @Xml.name("Creation-Time") + creationTime?: utcDateTime; + + /** The date-time the blob was last modified in RFC1123 format. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @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. */ + @Xml.name("LeaseStatus") leaseStatus?: LeaseStatus; + + /** The lease state of the blob. */ + @Xml.name("LeaseState") leaseState?: LeaseState; + + /** The lease duration of the blob. */ + @Xml.name("LeaseDuration") leaseDuration?: LeaseDuration; + + /** The copy ID of the blob. */ + @Xml.name("CopyId") copyId?: string; + + /** The copy status of the blob. */ + @Xml.name("CopyStatus") copyStatus?: CopyStatus; + + /** The copy source of the blob. */ + @Xml.name("CopySource") copySource?: string; + + /** The copy progress of the blob. */ + @Xml.name("CopyProgress") copyProgress?: string; + + /** The copy completion time of the blob. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @Xml.name("CopyCompletionTime") + copyCompletionTime?: utcDateTime; + + /** The copy status description of the blob. */ + @Xml.name("CopyStatusDescription") copyStatusDescription?: string; + + /** Whether the blog is encrypted on the server. */ + @Xml.name("ServerEncrypted") serverEncrypted?: boolean; + + /** Whether the blog is incremental copy. */ + @Xml.name("IncrementalCopy") incrementalCopy?: boolean; + + /** The name of the desination snapshot. */ + @Xml.name("DestinationSnapshot") destinationSnapshot?: string; + + /** The time the blob was deleted. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @Xml.name("DeletedTime") + deletedTime?: utcDateTime; + + /** The remaining retention days of the blob. */ + @Xml.name("RemainingRetentionDays") remainingRetentionDays?: int32; + + /** The access tier of the blob. */ + @Xml.name("AccessTier") accessTier?: AccessTier; + + /** Whether the access tier is inferred. */ + @Xml.name("AccessTierInferred") accessTierInferred?: boolean; + + /** The archive status of the blob. */ + @Xml.name("ArchiveStatus") archiveStatus?: ArchiveStatus; + + /** The encryption scope of the blob. */ + @Xml.name("EncryptionScope") encryptionScope?: string; + + /** The access tier change time of the blob. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @Xml.name("AccessTierChangeTime") + accessTierChangeTime?: utcDateTime; + + /** The number of tags for the blob. */ + @Xml.name("TagCount") tagCount?: int32; + + /** The expire time of the blob. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @Xml.name("Expiry-Time") + expiryTime?: utcDateTime; + + /** Whether the blob is sealed. */ + @Xml.name("Sealed") + sealed?: boolean; + + /** The rehydrate priority of the blob. */ + @Xml.name("RehydratePriority") rehydratePriority?: RehydratePriority; + + /** The last access time of the blob. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("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" + @encode("date-time-rfc1123") + @Xml.name("ImmutabilityPolicyUntilDate") + immutabilityPolicyUntilDate?: utcDateTime; + + /** The immutability policy mode of the blob. */ + @Xml.name("ImmutabilityPolicyMode") + immutabilityPolicyMode?: BlobImmutabilityPolicyMode; + + /** Whether the blob is under legal hold. */ + @Xml.name("LegalHold") legalHold?: boolean; +} + +/** The immutability policy mode. */ +union BlobImmutabilityPolicyMode { + /** The immutability policy is mutable. */ + Mutable: "Mutable", + + /** The immutability policy is locked. */ + Locked: "Locked", + + /** The immutability policy is unlocked. */ + Unlocked: "Unlocked", + + /** Extensible */ + string, +} + +/** The blob type. */ +union BlobType { + /** The blob is a block blob. */ + BlockBlob: "BlockBlob", + + /** The blob is a page blob. */ + PageBlob: "PageBlob", + + /** The blob is an append blob. */ + AppendBlob: "AppendBlob", + + /** Extensible */ + string, +} + +/** The rehydrate priority. */ +@Xml.name("RehydratePriority") +union RehydratePriority { + /** The rehydrate priority is high. */ + High: "High", + + /** The rehydrate priority is standard. */ + Standard: "Standard", + + /** Extensible */ + string, +} + +/** 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 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 object replication metadata. */ +model ObjectReplicationMetadata is Record; + +/// Service Properties + +/** The service properties. */ +model StorageServiceProperties { + /** The logging properties. */ + @Xml.name("Logging") logging?: Logging; + + /** The hour metrics properties. */ + @Xml.name("HourMetrics") hourMetrics?: Metrics; + + /** The minute metrics properties. */ + @Xml.name("MinuteMetrics") minuteMetrics?: Metrics; + + /** The CORS properties. */ + @Xml.name("Cors") cors?: CorsRule[]; + + /** The default service version. */ + @Xml.name("DefaultServiceVersion") defaultServiceVersion?: string; + + /** The delete retention policy. */ + @Xml.name("DeleteRetentionPolicy") deleteRetentionPolicy?: RetentionPolicy; + + /** The static website properties. */ + @Xml.name("StaticWebsite") staticWebsite?: StaticWebsite; +} + +/** The static website properties. */ +model StaticWebsite { + /** The index document. */ + @Xml.name("IndexDocument") indexDocument?: string; + + /** The error document. */ + @Xml.name("ErrorDocument") errorDocument?: 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 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 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. */ +model Logging { + /** The version of the logging properties. */ + @Xml.name("Version") version: string; + + /** Whether delete operation is logged. */ + @Xml.name("Delete") delete: boolean; + + /** Whether read operation is logged. */ + @Xml.name("Read") read: boolean; + + /** Whether write operation is logged. */ + @Xml.name("Write") write: boolean; + + /** The retention policy of the logs. */ + @Xml.name("RetentionPolicy") retentionPolicy: RetentionPolicy; +} + +/** The retention policy. */ +model RetentionPolicy { + /** Whether to enable the retention policy. */ + @Xml.name("Enabled") enabled: boolean; + + /** The number of days to retain the logs. */ + @Xml.name("Days") days: int32; + + /** Whether to allow permanent delete. */ + @Xml.name("AllowPermanentDelete") allowPermanentDelete: boolean; +} + +// List Blobs + +/** An enumeration of blobs. */ +@Xml.name("EnumerationResults") +model ListBlobsFlatSegmentResponse { + /** The service endpoint. */ + @Xml.attribute + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; + + /** The container name. */ + @Xml.attribute + @Xml.name("ContainerName") + containerName: string; + + /** The prefix of the blobs. */ + @Xml.name("Prefix") rrefix?: string; + + /** The marker of the blobs. */ + @Xml.name("Marker") marker?: string; + + /** The max results of the blobs. */ + @Xml.name("MaxResults") maxResults?: int32; + + /** The blob segment. */ + @Xml.name("Segment") segment: BlobFlatListSegment; + + /** The next marker of the blobs. */ + @Xml.name("NextMarker") nextMarker?: string; +} + +/** The blob flat list segment. */ +@Xml.name("Blobs") +model BlobFlatListSegment { + /** The blob items. */ + @Xml.name("BlobItems") blobItems: BlobItemInternal[]; +} + +/** Represents a page list. */ +model PageList { + /** The page ranges. */ + @Xml.name("PageRange") pageRange: PageRange[]; + + /** The clear ranges. */ + @Xml.name("ClearRange") clearRange: ClearRange[]; + + /** The next marker. */ + @Xml.name("NextMarker") nextMarker?: string; +} + +/** The page range. */ +@Xml.name("PageRange") +model PageRange { + /** The start of the byte range. */ + @Xml.name("Start") start: int64; + + /** The end of the byte range. */ + @Xml.name("End") end: int64; +} + +/** The clear range. */ +model ClearRange { + /** The start of the byte range. */ + @Xml.name("Start") start: int64; + + /** The end of the byte range. */ + @Xml.name("End") end: int64; +} + +/** The blob tags body parameter. */ +alias BlobTagsBodyParameter = { + /** The blob tags. */ + @body + tags: BlobTags; +}; + +/** Represents blob tags. */ +@Xml.name("Tags") +model BlobTags { + /** Represents the blob tags. */ + @Xml.name("TagSet") blobTagSet: BlobTag[]; +} + +/** The query request, note only SQL supported */ +union QueryRequestTypeSqlOnly { + /** The SQL request query type. */ + SQL: "SQL", + + /** Extensible */ + 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 query expression in SQL. The maximum size of the query expression is 256KiB. */ + @Xml.name("Expression") expression: string; + + /** The input serialization settings. */ + @Xml.name("InputSerialization") inputSerialization?: QuerySerialization; + + /** The output serialization settings. */ + @Xml.name("OutputSerialization") outputSerialization?: QuerySerialization; +} + +/** The query serialization settings. */ +model QuerySerialization { + /** The query format. */ + @Xml.name("Format") format: QueryFormat; +} + +/** The query format settings. */ +model QueryFormat { + /** The query type. */ + @Xml.name("Type") type: QueryType; + + /** The delimited text configuration. */ + @Xml.name("DelimitedTextConfiguration") + delimitedTextConfiguration?: DelimitedTextConfiguration; + + /** The JSON text configuration. */ + @Xml.name("JsonTextConfiguration") + jsonTextConfiguration?: JsonTextConfiguration; + + /** The Apache Arrow configuration. */ + @Xml.name("ArrowConfiguration") arrowConfiguration?: ArrowConfiguration; + + /** The Parquet configuration. */ + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" + @Xml.name("ParquetConfiguration") parquetConfiguration?: ParquetConfiguration; +} + +/** 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; + + /** Represents whether the data has headers. */ + @Xml.name("HasHeaders") headersPresent?: boolean; +} + +/** 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[]; +} + +/** Represents an Apache Arrow field. */ +@Xml.name("Field") +model ArrowField { + /** The arrow field type. */ + @Xml.name("Type") type: string; + + /** The arrow field name. */ + @Xml.name("Name") name?: string; + + /** The arrow field precision. */ + @Xml.name("Precision") precision?: int32; + + /** The arrow field scale. */ + @Xml.name("Scale") scale?: int32; +} + +/** Represents the Parquet configuration. */ +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "Existing API" +@Xml.name("ParquetConfiguration") +model ParquetConfiguration is Record; + +/** The query format type. */ +@Xml.name("Type") +union QueryType { + /** The query format type is delimited. */ + Delimited: "delimited", + + /** The query format type is JSON. */ + JSON: "json", + + /** The query format type is Apache Arrow. */ + Arrow: "arrow", + + /** The query format type is Parquet. */ + Parquet: "parquet", + + /** Extensible */ + string, +} + +/// Parameters + +/** The blob 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: 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. */ + @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; +}; + +/** 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; +}; + +/** The sequence number action parameter. */ +alias SequenceNumberActionParameter = { + /** Required if the x-ms-blob-sequence-number header is set for the request. This property applies to page blobs only. This property indicates how the service should modify the blob's sequence number */ + @header("x-ms-sequence-number-action") + sequenceNumberAction: SequenceNumberActionType; +}; + +/** The sequence number actions. */ +union SequenceNumberActionType { + /** Increment the sequence number. */ + Increment: "increment", + + /** Set the maximum for the sequence number. */ + Max: "max", + + /** Update the sequence number. */ + Update: "update", + + /** Extensible */ + string, +} + +/** The sequence number parameter. */ +alias SequenceNumberParameter = { + /** Set for page blobs only. The sequence number is a user-controlled value that you can use to track requests. The value of the sequence number must be between 0 and 2^63 - 1. */ + @header("x-ms-blob-sequence-number") + blobSequenceNumber: int64; +}; + +/** The blob content length required parameter. */ +alias BlobContentLengthRequired = { + /** This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary. */ + @header("x-ms-blob-content-length") + blobContentLength: int64; +}; + +/** The 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 = { + /** 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. */ + @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; +}; + +/** The public access response header. */ +alias PublicAccessResponseHeader = { + /** The public access setting for the container. */ + @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. */ + @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") + @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; +}; + +/** 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; +}; + +/** 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. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @clientName("ImmutabilityPolicyExpiresOn") + @encode("date-time-rfc1123") + @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") + @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; +}; + +/** The tag count response header. */ +alias TagCountResponseHeader = { + /** The number of tags associated with the blob */ + @header("x-ms-tag-count") + tagCount: int64; +}; + +/** The blob committed block count response header. */ +alias BlobCommittedBlockCountResponseHeader = { + /** The number of committed blocks present in the blob. This header is returned only for append blobs. */ + @header("x-ms-blob-committed-block-count") + blobCommittedBlockCount: int32; +}; + +/** The accept ranges response header. */ +alias AcceptRangesResponseHeader = { + /** Indicates that the service supports requests for partial blob content. */ + @header("Accept-Ranges") acceptRanges: string; +}; + +/** The is current version response header. */ +alias IsCurrentVersionResponseHeader = { + /** The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header. */ + @header("x-ms-is-current-version") + isCurrentVersion: boolean; +}; + +/** The lease status response header. */ +alias LeaseStatusResponseHeader = { + /** The lease status of the blob. */ + @header("x-ms-lease-status") + leaseStatus: LeaseStatus; +}; + +/** The lease state response header. */ +alias LeaseStateResponseHeader = { + /** Lease state of the blob. */ + @header("x-ms-lease-state") + leaseState: LeaseState; +}; + +/** The 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; +}; + +/** The copy source response header. */ +alias CopySourceResponseHeader = { + /** URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List. */ + @header("x-ms-copy-source") + copySource: string; +}; + +/** The copy progress response header. */ +alias CopyProgressResponseHeader = { + /** Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List */ + @header("x-ms-copy-progress") + copyProgress: string; +}; + +/** The copy status description response header. */ +alias CopyStatusDescriptionResponseHeader = { + /** Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List */ + @header("x-ms-copy-status-description") + copyStatusDescription: string; +}; + +/** The copy completion time response header. */ +alias CopyCompletionTimeResponseHeader = { + /** Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @header("x-ms-copy-completion-time") + copyCompletionTime: utcDateTime; +}; + +/** The blob type response header. */ +alias BlobTypeResponseHeader = { + /** The type of the blob. */ + @header("x-ms-blob-type") + blobType: BlobType; +}; + +/** The object replication policy response header. */ +alias ObjectReplicationPolicyIdResponseHeader = { + /** Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication. */ + @header("x-ms-or-policy-id") + objectReplicationPolicyId: string; +}; + +/** The 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; +}; + +/** 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. */ + @header("x-ms-if-sequence-number-eq") + ifSequenceNumberEqualTo?: int64; +}; + +/** THe if sequence number less than parameter. */ +alias IfSequenceNumberLessThanParameter = { + /** Specify this header value to operate only on a blob if it has a sequence number less than the specified. */ + @header("x-ms-if-sequence-number-lt") + ifSequenceNumberLessThan?: int64; +}; + +/** The if sequence number less than or equal to parameter. */ +alias IfSequenceNumberLessThanOrEqualToParameter = { + /** Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified. */ + @header("x-ms-if-sequence-number-le") + ifSequenceNumberLessThanOrEqualTo?: int64; +}; + +/** The 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. */ + @query + @clientName("listType") + blocklisttype: BlockListType; +}; + +/** The block list types. */ +union BlockListType { + /** The list of committed blocks. */ + Committed: "committed", + + /** The list of uncommitted blocks. */ + Uncomitted: "uncommitted", + + /** Both lists together. */ + All: "all", + + /** Extensible */ + 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. */ + @header("x-ms-source-content-crc64") + sourceContentCrc64?: string; +}; + +/** The source range parameter. */ +alias SourceRangeParameter = { + /** Bytes of source data in the specified range. */ + @header("x-ms-source-range") + sourceRange: string; +}; + +/** The source URL parameter. */ +alias SourceUrlParameter = { + /** Specify a URL to the copy source. */ + @header("x-ms-source-url") + sourceUrl: string; +}; + +/** The Block ID parameter. */ +alias BlockIdParameter = { + /** A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal to 64 bytes in size. For a given blob, the length of the value specified for the blockid parameter must be the same size for each block. */ + @query + @clientName("blockId") + blockid: string; +}; + +/** The 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; +}; + +/** The SKU name response header. */ +alias SkuNameResponseHeader = { + /** Identifies the sku name of the account */ + @header("x-ms-sku-name") + 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. */ + @header("x-ms-content-crc64") + contentCrc64: string; +}; + +/** The copy status response header. */ +alias CopyStatusResponseHeader = { + /** State of the copy operation identified by x-ms-copy-id. */ + @header("x-ms-copy-status") + copyStatus: CopyStatus; +}; + +/** The copy ID response header. */ +alias CopyIdResponseHeader = { + /** String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy. */ + @header("x-ms-copy-id") + copyId: string; +}; + +/** The 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. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @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. */ + @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. */ + @header("x-ms-snapshot") + snapshot: string; +}; + +/** The lease time response header. */ +alias LeaseTimeResponseHeader = { + /** Approximate time remaining in the lease period, in seconds. */ + @header("x-ms-lease-time") + leaseTime: int32; +}; + +/** The lease break period parameter. */ +alias LeaseBreakPeriodParameter = { + /** For a break operation, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. This break period is only used if it is shorter than the time remaining on the lease. If longer, the time remaining on the lease is used. A new lease will not be available before the break period has expired, but the lease may be held for longer than the break period. If this header does not appear with a break operation, a fixed-duration lease breaks after the remaining lease period elapses, and an infinite lease breaks immediately. */ + @clientName("breakPeriod") + @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. */ + @header("x-ms-lease-id") + leaseId: string; +}; + +/** The lease ID response header. */ +alias LeaseIdResponseHeader = { + /** Uniquely identifies a blobs' lease */ + @header("x-ms-lease-id") + leaseId: string; +}; + +/** The 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; +}; + +/** The is server encrypted response header. */ +alias IsServerEncryptedResponseHeader = { + /** The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise. */ + @clientName("isServerEncrypted") + @header("x-ms-request-server-encrypted") + requestServerEncrypted?: boolean; +}; + +/** The legal hold response header. */ +alias LegalHoldResponseHeader = { + /** Specifies the legal hold status to set on the blob. */ + @header("x-ms-legal-hold") + legalHold: boolean; +}; + +/** The legal hold required parameter. */ +alias LegalHoldRequiredParameter = { + /** Required. Specifies the legal hold status to set on the blob. */ + @header("x-ms-legal-hold") + legalHold: boolean; +}; + +/** The immutability policy mode response header. */ +alias ImmutabilityPolicyModeResponseHeader = { + /** Indicates the immutability policy mode of the blob. */ + @header("x-ms-immutability-policy-mode") + immutabilityPolicyMode: BlobImmutabilityPolicyMode; +}; + +/** The 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") + @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. */ + @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; +}; + +/** The blob expiration options parameter. */ +alias BlobExpiryOptionsParameter = { + /** Required. Indicates mode of the expiry time */ + @header("x-ms-expiry-option") + expiryOptions: BlobExpiryOptions; +}; + +/** The blob expiration options. */ +union BlobExpiryOptions { + /** Never expire. */ + NeverExpire: "NeverExpire", + + /** Relative to creation time. */ + RelativeToCreation: "RelativeToCreation", + + /** Relative to now. */ + RelativeToNow: "RelativeToNow", + + /** Absolute time. */ + Absolute: "Absolute", + + /** Extensible */ + string, +} + +/** The Content-Language response header. */ +alias ContentLanguageResponseHeader = { + /** This header returns the value that was specified for the Content-Language request header. */ + @header("Content-Language") contentLanguage: string; +}; + +/** The Content-Disposition response header. */ +alias ContentDispositionResponseHeader = { + /** This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified. */ + @header("Content-Disposition") contentDisposition: string; +}; + +/** The Cache-Control response header. */ +alias CacheControlResponseHeader = { + /** This header is returned if it was previously specified for the blob. */ + @header("Cache-Control") cacheControl: string; +}; + +/** The Content-Encoding response header. */ +alias ContentEncodingResponseParameter = { + /** This header returns the value that was specified for the Content-Encoding request header */ + @header("Content-Encoding") contentEncoding: string; +}; + +/** The Content-Range response header. */ +alias ContentRangeResponseHeader = { + /** Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header. */ + @header("Content-Range") contentRange: string; +}; + +/** The Content-MD5 response header. */ +alias ContentMd5ResponseHeader = { + /** If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity. */ + @header("Content-MD5") contentMd5: string; +}; + +/** The Content-Length response header. */ +alias ContentLengthResponseHeader = { + /** The number of bytes present in the response body. */ + @header("Content-Length") contentLength: int64; +}; + +/** The version ID response header. */ +alias VersionIdResponseHeader = { + /** A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob. */ + @header("x-ms-version-id") + versionId: string; +}; + +/** The creation time response header. */ +alias CreationTimeResponseHeader = { + /** Returns the date and time the blob was created. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @header("x-ms-creation-time") + creationTime: utcDateTime; +}; + +/** The last modified response header */ +alias LastModifiedResponseHeader = { + /** The date/time that the container was last modified. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @header("Last-Modified") + lastModified: utcDateTime; +}; + +/** The Date response header */ +alias DateResponseHeader = { + /** UTC date/time value generated by the service that indicates the time at which the response was initiated */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @header("Date") + date: utcDateTime; +}; + +/** The ETag response header */ +alias EtagResponseHeader = { + /** The ETag contains a value that you can use to perform operations conditionally. */ + @header("ETag") eTag: string; +}; + +/** The copy source tags header parameter. */ +alias CopySourceTagsParameter = { + /** Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags. */ + @header("x-ms-copy-source-tags") + copySourceTags?: string; +}; + +/** The blob copy source tags types. */ +union BlobCopySourceTags { + /** The replace blob source tags option. */ + Replace: "REPLACE", + + /** The copy blob source tags option. */ + Copy: "COPY", + + /** Extensible */ + string, +} + +/** The copy source authorization header parameter */ +alias CopySourceAuthorizationParameter = { + /** Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source. */ + @header("x-ms-copy-source-authorization") + copySourceAuthorization?: string; +}; + +/** The copy source blob properties parameter. */ +alias CopySourceBlobPropertiesParameter = { + /** Optional, default is true. Indicates if properties from the source blob should be copied. */ + @header("x-ms-copy-source-blob-properties") + copySourceBlobProperties?: boolean; +}; + +/** The copy source header parameter. */ +alias CopySourceParameter = { + /** Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature. */ + @header("x-ms-copy-source") + copySource: string; +}; + +/** The source content MD5 header parameter. */ +alias SourceContentMd5Parameter = { + /** Specify the md5 calculated for the range of bytes that must be read from the copy source. */ + @header("x-ms-source-content-md5") + sourceContentMd5?: string; +}; + +/** The source if tags parameter. */ +alias SourceIfTagsParameter = { + /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ + @header("x-ms-source-if-tags") + sourceIfTags?: string; +}; + +/** The source if match parameter. */ +alias SourceIfMatchParameter = { + /** Specify an ETag value to operate only on blobs with a matching value. */ + @header("x-ms-source-if-match") + sourceIfMatch?: string; +}; + +/** The source if none match parameter. */ +alias SourceIfNoneMatchParameter = { + /** Specify this header value to operate only on a blob if it has been modified since the specified date/time. */ + @header("x-ms-source-if-none-match") + sourceIfNoneMatch?: string; +}; + +/** The source if modified since parameter. */ +alias SourceIfModifiedSinceParameter = { + /** Specify this header value to operate only on a blob if it has been modified since the specified date/time. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @header("x-ms-source-if-modified-since") + @encode("date-time-rfc1123") + sourceIfModifiedSince?: utcDateTime; +}; + +/** The content CRC64 parameter. */ +alias ContentCrc64Parameter = { + /** Specify the transactional crc64 for the body, to be validated by the service. */ + @clientName("transactionalContentCrc64") + @header("x-ms-content-crc64") + contentCrc64?: string; +}; + +/** The access tier optional parameter. */ +alias AccessTierOptionalParameter = { + /** Optional. The tier to be set on the blob. */ + @clientName("tier") + @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; +}; + +/** The legal hold optional parameter. */ +alias LegalHoldOptionalParameter = { + /** Specified if a legal hold should be set on the blob. */ + @header("x-ms-legal-hold") + legalHold?: boolean; +}; + +/** The immutability policy mode parameter. */ +alias ImmutabilityPolicyModeParameter = { + /** Specifies the immutability policy mode to set on the blob. */ + @header("x-ms-immutability-policy-mode") + immutabilityPolicyMode?: BlobImmutabilityPolicyMode; +}; + +/** The immutability policy expiration parameter. */ +alias ImmutabilityPolicyExpiryParameter = { + /** Specifies the date time when the blobs immutability policy is set to expire. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("date-time-rfc1123") + @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; +}; + +/** The blob sequence number parameter. */ +alias BlobSequenceNumberParameter = { + /** Optional. The sequence number is a user-controlled property that you can use to track requests. The value of the sequence number must be between 0 and 2^63 - 1. The default value is 0. */ + @header("x-ms-blob-sequence-number") + blobSequenceNumber?: int64; +}; + +/** The 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. */ + @header("x-ms-encryption-scope") + encryptionScope?: string; +}; + +/** The blob content disposition parameter. */ +alias BlobContentDispositionParameter = { + /** Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request. */ + @header("x-ms-blob-content-disposition") + blobContentDisposition?: string; +}; + +/** The blob cache control parameter. */ +alias BlobCacheControlParameter = { + /** Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request. */ + @header("x-ms-blob-cache-control") + blobCacheControl?: string; +}; + +/** The blob content MD5 parameter. */ +alias BlobContentMd5Parameter = { + /** Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded. */ + @header("x-ms-blob-content-md5") + blobContentMd5?: 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. */ + @header("x-ms-blob-content-language") + blobContentLanguage?: string; +}; + +/** The blob content type parameter. */ +alias BlobContentEncodingParameter = { + /** Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request. */ + @header("x-ms-blob-content-encoding") + blobContentEncoding?: string; +}; + +/** The blob content type parameter. */ +alias BlobContentTypeParameter = { + /** Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request. */ + @header("x-ms-blob-content-type") + blobContentType?: string; +}; + +/** The 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. */ + P4: "P4", + + /** The premium page blob access tier is P6. */ + P6: "P6", + + /** The premium page blob access tier is P10. */ + P10: "P10", + + /** The premium page blob access tier is P15. */ + P15: "P15", + + /** The premium page blob access tier is P20. */ + P20: "P20", + + /** The premium page blob access tier is P30. */ + P30: "P30", + + /** The premium page blob access tier is P40. */ + P40: "P40", + + /** The premium page blob access tier is P50. */ + P50: "P50", + + /** The premium page blob access tier is P60. */ + P60: "P60", + + /** The premium page blob access tier is P70. */ + P70: "P70", + + /** The premium page blob access tier is P80. */ + P80: "P80", + + /** Extensible */ + string, +} + +/** The blob name parameter. */ +alias 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. */ +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. */ + Permanent: "Permanent", + + /** Extensible */ + 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 include. */ + Include: "include", + + /** Extensible */ + string, +} + +/** The encryption algorithm parameter. */ +alias EncryptionAlgorithmParameter = { + /** Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256. */ + @header("x-ms-encryption-algorithm") + encryptionAlgorithm?: string; +}; + +/** The encryption key SHA256 hash parameter. */ +alias EncryptionKeySha256Parameter = { + /** Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key. */ + @header("x-ms-encryption-key-sha256") + encryptionKeySha256?: string; +}; + +/** The encryption key parameter. */ +alias EncryptionKeyParameter = { + /** Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key. */ + @header("x-ms-encryption-key") + encryptionKey?: string; +}; + +/** The If-Tags parameters. */ +alias IfTagsParameter = { + /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ + @header("x-ms-if-tags") + ifTags?: string; +}; + +/** The If-Match parameter. */ +alias IfMatchParameter = { + /** A condition that must be met in order for the request to be processed. */ + @header("If-Match") + ifMatch?: string; +}; + +/** The If-None-Match parameter. */ +alias IfNoneMatchParameter = { + /** A condition that must be met in order for the request to be processed. */ + @header("If-None-Match") + ifNoneMatch?: string; +}; + +/** The 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. */ + @header("x-ms-range") + range?: string; +}; + +/** The version ID parameter. */ +alias VersionIdParameter = { + /** The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer. */ + @header + @clientName("versionId") + versionid: string; +}; + +/** The snapshot parameter. */ +alias SnapshotParameter = { + @doc("The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.") + @query + snapshot?: string; +}; + +/** Represents a blob name. */ +model BlobName { + /** Whether the blob name is encoded. */ + @Xml.attribute + @Xml.name("Encoded") + encoded: boolean; + + /** The blob name. */ + @Xml.unwrapped content: string; +} + +/** Represents a blob prefix. */ +model BlobPrefix { + /** The blob name. */ + @Xml.name("Name") name: BlobName; +} + +/** Represents an array of blobs. */ +@Xml.name("Blobs") +model BlobHierarchyListSegment { + /** The blob items */ + @Xml.name("BlobItems") blobItems: BlobItemInternal[]; + + /** The blob prefixes. */ + @Xml.name("BlobPrefixes") blobPrefixes: BlobPrefix[]; +} + +/** An enumeration of blobs */ +@Xml.name("EnumerationResults") +model ListBlobsHierarchySegmentResponse { + /** The service endpoint. */ + @Xml.attribute + @Xml.name("ServiceEndpoint") + serviceEndpoint: string; + + /** The container name. */ + @Xml.attribute + @Xml.name("ContainerName") + containerName: string; + + /** The delimiter of the blobs. */ + @Xml.name("Delimiter") delimiter?: string; + + /** The prefix of the blobs. */ + @Xml.name("Prefix") prefix?: string; + + /** The marker of the blobs. */ + @Xml.name("Marker") marker?: string; + + /** The max results of the blobs. */ + @Xml.name("MaxResults") maxResults?: int32; + + /** The blob segment. */ + @Xml.name("Segment") segment: BlobHierarchyListSegment; + + /** The next marker of the blobs. */ + @Xml.name("NextMarker") 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[]; +}; + +/** 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, +} + +/** 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; +}; + +/** 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; +}; + +/** 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. */ + @path + containerName: string; +}; + +/** 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") + @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") + @header("If-Modified-Since") + ifModifiedSince?: utcDateTime; +}; + +/** 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 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; +#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. */ + @query + include?: FilterBlobsIncludes[]; +}; + +/** The filter blobs where parameter. */ +alias FilterBlobsWhereParameter = { + /** Filters the results to return only to return only blobs whose tags match the specified expression. */ + @query + where?: string; +}; + +/** The Content-Length header. */ +alias ContentLengthParameter = { + /** The length of the request. */ + @header("Content-Length") contentLength: int64; +}; + +/** The max results parameter. */ +alias MaxResultsParameter = { + /** Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items. */ + @query maxresults?: int32; +}; + +/** The marker parameter. */ +alias MarkerParameter = { + /** A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client. */ + @query marker?: string; +}; + +/** The prefix parameter. */ +alias PrefixParameter = { + /** Filters the results to return only containers whose name begins with the specified prefix. */ + @query prefix?: string; +}; + +/** The timeout parameter. */ +alias TimeoutParameter = { + @doc("The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.") + @query + timeout?: int32; +}; + +/** The required lease ID header. */ +alias ProposedLeaseIdRequiredParameter = { + /** Required. The proposed lease ID for the container. */ + @header("x-ms-proposed-lease-id") proposedLeaseId: string; +}; + +/** The optional lease ID header. */ +alias ProposedLeaseIdOptionalParameter = { + /** Optional. The proposed lease ID for the container. */ + @header("x-ms-proposed-lease-id") proposedLeaseId?: string; +}; + +/** The body parameter. */ +alias BodyParameter = { + /** The body of the request. */ + @body + body: bytes; +}; diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp new file mode 100644 index 000000000000..30bd7a2ff4d5 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -0,0 +1,2084 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +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; + +/** 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, + TError = StorageError +>( + ...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 { + /** 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-response-body" "Existing API" + @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; + }, + { + @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< + { + ...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" + @get + @route("/?restype=service&comp=stats") + 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" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("/?comp=list") + 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" + @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; + } + >; + + /** 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< + {}, + { + @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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @post + @route("/?comp=batch") + 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" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("/?comp=blobs") + 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." +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< + { + ...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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @get + @route("/{containerName}?restype=container") + 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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @delete + @route("/{containerName}?restype=container") + 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" + #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< + { + ...ContainerNameParameter; + + // TODO: ...MetadataParameter; + ...TimeoutParameter; + + ...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" + @get + @route("/{containerName}?restype=container&comp=acl") + 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" + #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< + { + ...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" + #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") + 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" + #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< + { + ...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" + #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; + + ...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" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("/{containerName}?restype=container&comp=blobs") + 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" + #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< + { + ...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" + #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< + { + ...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" + #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< + { + ...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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("/{containerName}?comp=lease&restype=container&break") + 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" + #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< + { + ...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" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("/{containerName}?restype=container&comp=list&flat") + 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" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Existing API" + @get + @route("/{containerName}?restype=container&comp=list&hierarchy") + 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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @get + @route("/{containerName}?restype=account&comp=properties") + 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." +@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 + 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-response-body" "Existing API" + @head + 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-response-body" "Existing API" + @delete + 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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @route("?comp=undelete") + @post + 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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @post + @route("?comp=expiry") + 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" + #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") + 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" + #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") + 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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @delete + @route("?comp=immutabilityPolicies") + 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" + #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") + 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" + #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") + 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" + #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") + 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" + #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") + 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" + #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") + 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" + #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") + 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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?comp=lease&break") + 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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?comp=snapshot") + 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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?comp=copy") + 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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("?comp=copy&sync") + 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" + @put + @route("?comp=copy©id") + 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" + #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") + 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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @get + @route("?restype=account&comp=properties") + 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" + @post + @route("/{containerName}/{blob}?comp=query") + 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" + @get + @route("/{containerName}/{blob}?comp=tags") + 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" + @put + @route("/{containerName}/{blob}?comp=tags") + 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." +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< + { + // 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" + #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&update") + 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" + #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< + { + ...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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("/{containerName}/{blob}?comp=page&update&fromUrl") + 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" + @get + @route("/{containerName}/{blob}?comp=pagelist") + 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" + @get + @route("/{containerName}/{blob}?comp=pagelist&diff") + 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" + #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< + { + ...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" + #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< + { + ...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" + #suppress "@azure-tools/typespec-azure-core/no-response-body" "Existing API" + @put + @route("/{containerName}/{blob}?comp=incrementalcopy") + 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." +@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 + 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" + #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< + { + /** 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" + #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< + { + ...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" + #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< + { + ...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." +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" + @put + @route("/{containerName}/{blob}?BlockBlob") + 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" + #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< + { + // 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" + #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 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" + #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 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" + #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") + 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" + @get + @route("?comp=blocklist") + getBlockList is StorageOperation< + { + ...ContainerNameParameter; + ...BlobNameParameter; + ...SnapshotParameter; + ...BlockListTypeParameter; + ...LeaseIdOptionalParameter; + ...IfTagsParameter; + }, + { + @statusCode statusCode: 200; + @body body: BlockLookupList; + ...LastModifiedResponseHeader; + ...EtagResponseHeader; + ...BlobContentLengthResponseHeader; + ...DateResponseHeader; + } + >; +} diff --git a/specification/storage/Microsoft.BlobStorage/tspconfig.yaml b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml new file mode 100644 index 000000000000..e81f5393c2c8 --- /dev/null +++ b/specification/storage/Microsoft.BlobStorage/tspconfig.yaml @@ -0,0 +1,37 @@ +parameters: + "service-dir": + default: "sdk/storage" + "dependencies": + "additionalDirectories": [] + default: "" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "data-plane" + emitter-output-dir: "{project-root}/.." + examples-directory: "{project-root}/examples" + output-file: "{azure-resource-provider-folder}/Microsoft.BlobStorage/{version-status}/{version}/blob.json" + "@azure-tools/typespec-python": + package-dir: "azure-storage-blob" + package-name: "{package-dir}" + package-mode: dataplane + generate-sample: true + "@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" + generate-metadata: true + generate-test: true + package-details: + 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" 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..8030b1af770d --- /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": {} +} \ No newline at end of file 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..7764fb82e0b5 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,1601 @@ { "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-lease-id", + "in": "header", + "description": "If specified, 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": "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": { + "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": [ - { - "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-lease-id", + "in": "header", + "description": "If specified, 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/FilterBlobsWhere" + "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/Marker" + "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/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/FilterBlobsInclude" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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", + "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-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/DenyEncryptionScopeOverride" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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": "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.", - "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false - } + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" }, - "x-ms-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status 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-blob-type": { "type": "string", + "description": "The type of the blob.", "enum": [ - "locked", - "unlocked" + "BlockBlob", + "PageBlob", + "AppendBlob" ], "x-ms-enum": { - "name": "LeaseStatusType", - "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-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-completion-time": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-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-client-name": "Version", + "x-ms-copy-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." }, - "Date": { + "x-ms-copy-progress": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" }, - "x-ms-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-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": [ - "container", - "blob" + "pending", + "success", + "failed", + "aborted" ], "x-ms-enum": { - "name": "PublicAccessType", - "modelAsString": true + "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-has-immutability-policy": { - "x-ms-client-name": "HasImmutabilityPolicy", - "description": "Indicates whether the container has an immutability policy set on it.", - "type": "boolean" - }, - "x-ms-has-legal-hold": { - "x-ms-client-name": "HasLegalHold", - "description": "Indicates whether the container has a legal hold.", - "type": "boolean" - }, - "x-ms-default-encryption-scope": { - "x-ms-client-name": "DefaultEncryptionScope", - "description": "The default encryption scope for the container.", - "type": "string" - }, - "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-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-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" - } - } - }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "restype", - "description": "restype", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "container" - ] - } - ] - }, - "/{containerName}?restype=container&comp=metadata": { - "put": { - "tags": [ - "container" - ], - "operationId": "Container_SetMetadata", - "description": "operation sets one or more user-defined name-value pairs for the specified container.", - "parameters": [ - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestId" - } - ], - "responses": { - "200": { - "description": "Success", - "headers": { - "ETag": { + "description": "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-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-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-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-last-access-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": "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": { - "x-ms-client-name": "Version", + "x-ms-lease-duration": { "type": "string", - "description": "Indicates the 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": "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." + } + ] + } }, - "Date": { - "type": "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", + "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 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 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." + } + ] + } }, - "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-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." }, - "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." }, + "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", + "206": { + "description": "Successful", + "schema": { + "type": "string", + "format": "byte" + }, "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" + "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-client-request-id": { + "type": "string", + "description": "If 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-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-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" } @@ -1198,1562 +1603,1814 @@ } }, "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" + }, { - "$ref": "#/parameters/Body" + "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/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": "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/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.", + "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-version", + "in": "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": { - "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-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": { - "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-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": { - "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-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": [ - "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": "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/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/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-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 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" - }, - { - "$ref": "#/parameters/LeaseBreakPeriod" - }, - { - "$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" }, { - "$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" - } - } + "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" }, - "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" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, 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/LeaseIdRequired" + "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/ProposedLeaseIdRequired" + "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/IfModifiedSince" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-version", + "in": "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": "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" + }, + { + "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" - } - } - }, - "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": "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." + }, + "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" - } - }, - "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": { + }, + "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": { - "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-completion-time": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-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-client-name": "Version", + "x-ms-copy-id": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." }, - "Date": { + "x-ms-copy-progress": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" }, - "x-ms-sku-name": { - "x-ms-client-name": "SkuName", + "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": [ - "Standard_LRS", - "Standard_GRS", - "Standard_RAGRS", - "Standard_ZRS", - "Premium_LRS" + "pending", + "success", + "failed", + "aborted" ], "x-ms-enum": { - "name": "SkuName", - "modelAsString": false - }, - "description": "Identifies the sku name of the account" + "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-account-kind": { - "x-ms-client-name": "AccountKind", + "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": [ - "Storage", - "BlobStorage", - "StorageV2", - "FileStorage", - "BlockBlobStorage" + "infinite", + "fixed" ], "x-ms-enum": { - "name": "AccountKind", - "modelAsString": false - }, - "description": "Identifies the account kind" + "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": "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/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": "string", + "format": "byte" + }, "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", + "Accept-Ranges": { "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was created." + "description": "Indicates that the service supports requests for partial blob content." }, - "x-ms-meta": { + "Cache-Control": { "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" + "description": "This header is returned if it was previously specified for the blob." }, - "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." + "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 +3418,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,8615 +3542,10662 @@ "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", + "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." - }, - "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": "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" + }, + { + "name": "x-ms-version", + "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-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", - "enum": [ - "Mutable", - "Unlocked", - "Locked" - ], - "x-ms-enum": { - "name": "BlobImmutabilityPolicyMode", - "modelAsString": false - }, - "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." } - }, + } + }, + "default": { + "description": "An unexpected error response.", "schema": { - "type": "object", - "format": "file" + "$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" }, - "206": { - "description": "Returns the content of a specified range of the blob.", + { + "name": "timeout", + "in": "query", + "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-version", + "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.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SignedIdentifier" + } + }, "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", + "Date": { "type": "string", "format": "date-time-rfc1123", - "description": "Returns the date and time the blob was created." + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-meta": { + "ETag": { "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-or-policy-id": { - "x-ms-client-name": "ObjectReplicationPolicyId", + "Last-Modified": { "type": "string", - "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "x-ms-or": { + "x-ms-blob-public-access": { "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." + "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." + } + ] + } }, - "Content-Type": { + "x-ms-client-request-id": { "type": "string", - "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" + "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": { "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." }, - "ETag": { + "x-ms-version": { "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": { + "description": "Indicates the 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.", + "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": "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": "x-ms-version", + "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": "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": "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": { + "x-ms-client-request-id": { "type": "string", - "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + "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": { "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": "This header uniquely identifies the request that was made and can be used for troubleshooting 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-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", + "description": "Indicates the 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": "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": "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 - } + "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." - }, - "x-ms-is-current-version": { - "x-ms-client-name": "IsCurrentVersion", - "type": "boolean", - "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." - }, - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-blob-committed-block-count": { - "x-ms-client-name": "BlobCommittedBlockCount", - "type": "integer", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." - }, - "x-ms-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." - }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", - "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." - }, - "x-ms-blob-content-md5": { - "x-ms-client-name": "BlobContentMD5", - "type": "string", - "format": "byte", - "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" - }, - "x-ms-tag-count": { - "x-ms-client-name": "TagCount", - "type": "integer", - "format": "int64", - "description": "The number of tags associated with the blob" - }, - "x-ms-blob-sealed": { - "x-ms-client-name": "IsSealed", - "type": "boolean", - "description": "If this blob has been sealed" - }, - "x-ms-last-access-time": { - "x-ms-client-name": "LastAccessed", - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" - }, - "x-ms-immutability-policy-until-date": { - "x-ms-client-name": "ImmutabilityPolicyExpiresOn", - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." - }, - "x-ms-immutability-policy-mode": { - "x-ms-client-name": "ImmutabilityPolicyMode", - "type": "string", - "description": "Indicates immutability policy mode." - }, - "x-ms-legal-hold": { - "x-ms-client-name": "LegalHold", - "type": "boolean", - "description": "Indicates if a legal hold is present on the blob." } - }, - "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=rename": { + "put": { + "operationId": "Container_Rename", + "description": "Renames an existing container.", "parameters": [ { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/VersionId" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/EncryptionKey" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "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/EncryptionAlgorithm" + "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/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.", + "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/IfNoneMatch" + "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/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/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": "Returns the properties of the blob.", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + }, "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." + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-meta": { + "x-ms-client-request-id": { "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" + "description": "If 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-policy-id": { - "x-ms-client-name": "ObjectReplicationPolicyId", + "x-ms-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." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-or": { + "x-ms-version": { "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)." - }, - "x-ms-blob-type": { - "x-ms-client-name": "BlobType", - "description": "The blob's type.", - "type": "string", - "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - }, - "x-ms-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", + "description": "Indicates the 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": "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" + }, + { + "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": "x-ms-version", + "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": "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" + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-copy-source": { - "x-ms-client-name": "CopySource", + "ETag": { "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 ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", + "Last-Modified": { "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." + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "x-ms-copy-destination-snapshot": { - "x-ms-client-name": "DestinationSnapshot", + "x-ms-client-request-id": { "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": "If 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-duration": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", + "x-ms-lease-id": { "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false - } + "description": "Uniquely identifies a blobs' lease" }, - "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", + "x-ms-request-id": { "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false - } + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", + "x-ms-version": { "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": { + "description": "Indicates the 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": "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-version", + "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", - "description": "The content type specified for the blob. The default content type is 'application/octet-stream'" + "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." - }, - "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." + "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." - }, - "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-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": "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": "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-version", + "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" }, - "Accept-Ranges": { + "ETag": { "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)." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", + "Last-Modified": { "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." + "format": "date-time-rfc1123", + "description": "The date/time that the container was last modified." }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", + "x-ms-client-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": "If a client request id header is sent in the request, this header will be present in the response with the same value." }, - "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", + "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 blob was last read or written to" + "description": "Uniquely identifies a blobs' lease" }, - "x-ms-immutability-policy-until-date": { - "x-ms-client-name": "ImmutabilityPolicyExpiresOn", + "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 blob immutability policy will expire." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-immutability-policy-mode": { - "x-ms-client-name": "ImmutabilityPolicyMode", + "x-ms-version": { "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." + "description": "Indicates the 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" } } } - }, - "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}?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/Snapshot" - }, - { - "$ref": "#/parameters/VersionId" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/DeleteSnapshots" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$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" }, { - "$ref": "#/parameters/IfNoneMatch" + "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/IfTags" + "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": "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" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/BlobDeleteType" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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 delete request was accepted and the blob will be deleted.", + "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." }, + "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." }, "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}?comp=lease&restype=container&change": { "put": { - "tags": [ - "blob" - ], - "operationId": "PageBlob_Create", - "description": "The Create operation creates a new page blob.", - "consumes": [ - "application/octet-stream" - ], + "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/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" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/IfTags" - }, - { - "$ref": "#/parameters/BlobContentLengthRequired" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobSequenceNumber" + "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/ApiVersionParameter" + "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/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" }, { - "$ref": "#/parameters/BlobTagsHeader" + "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/ImmutabilityPolicyExpiry" + "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/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/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.", + "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-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." }, "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": { - "put": { - "tags": [ - "blob" - ], - "operationId": "AppendBlob_Create", - "description": "The Create Append Blob operation creates a new append blob.", - "consumes": [ - "application/octet-stream" - ], + "/{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/ContentLength" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" - }, - { - "$ref": "#/parameters/BlobContentMD5" + "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/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" }, { - "$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" - }, - { - "$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/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" + } + ], + "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": [ { - "$ref": "#/parameters/ClientRequestId" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobTagsHeader" + "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/ImmutabilityPolicyExpiry" + "name": "timeout", + "in": "query", + "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/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/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.", + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" + }, "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." - }, + } + } + }, + "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" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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-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-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-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": "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": "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": [ - "AppendBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?BlockBlob": { + "/{containerName}/{blob}?PageBlob": { "put": { - "tags": [ - "blob" - ], - "operationId": "BlockBlob_Upload", - "description": "The Upload Block Blob operation updates the content of an existing block blob. Updating an existing block blob overwrites any existing metadata on the blob. Partial updates are not supported with Put Blob; the content of the existing blob is overwritten with the content of the new blob. To perform a partial update of the content of a block blob, use the Put Block List operation.", - "consumes": [ - "application/octet-stream" - ], + "operationId": "PageBlob_Create", + "description": "The Create operation creates a new page blob.", "parameters": [ { - "$ref": "#/parameters/Body" - }, - { - "$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" }, { - "$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" + "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" }, { - "$ref": "#/parameters/BlobContentLanguage" + "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/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/BlobCacheControl" + "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/Metadata" + "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/LeaseIdOptional" + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" }, { - "$ref": "#/parameters/BlobContentDisposition" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/EncryptionKey" + "name": "x-ms-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/EncryptionKeySha256" + "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/EncryptionAlgorithm" + "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/EncryptionScope" + "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/AccessTierOptional" + "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": "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/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": "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-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/ClientRequestId" + "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/BlobTagsHeader" + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" }, { - "$ref": "#/parameters/ImmutabilityPolicyExpiry" + "name": "x-ms-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/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/LegalHoldOptional" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/ContentCrc64" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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 updated.", + "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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "Last-Modified": { "type": "string", - "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": "The date/time that the container was last modified." }, - "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-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" } } } - }, - "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}/{blob}?comp=page&update": { "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": "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" }, { - "$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" + "name": "blob", + "in": "path", + "description": "The name of the 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": "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/AccessTierOptional" + "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/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-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/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-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/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/SourceIfModifiedSince" + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/SourceIfUnmodifiedSince" + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" }, { - "$ref": "#/parameters/SourceIfMatch" + "name": "x-ms-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/SourceIfNoneMatch" + "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/SourceIfTags" + "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" + "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/SourceContentMD5" + "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/BlobTagsHeader" + "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" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/CopySourceBlobProperties" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/CopySourceAuthorization" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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/CopySourceTags" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "responses": { "201": { - "description": "The blob was updated.", + "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." }, - "Content-MD5": { - "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." }, "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", "type": "string", "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "x-ms-content-crc64": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "description": "This response header is returned so that the client can check for the integrity of the copied content." }, - "x-ms-version": { - "x-ms-client-name": "Version", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, - "x-ms-version-id": { - "x-ms-client-name": "VersionId", + "x-ms-encryption-scope": { "type": "string", - "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" }, - "Date": { + "x-ms-request-id": { "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + "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": "x-ms-blob-type", - "x-ms-client-name": "blobType", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Specifies the type of blob to create: block blob, page blob, or append blob.", - "type": "string", - "enum": [ - "BlockBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?comp=undelete": { + "/{containerName}/{blob}?comp=page&clear": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_Undelete", - "description": "Undelete a blob that was previously soft deleted", + "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" }, { - "$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" - } - ], - "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": "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" }, - "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": "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/BlobExpiryOptions" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/BlobExpiryTime" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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 blob expiry was set 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 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" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "expiry" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=properties&SetHTTPHeaders": { + "/{containerName}/{blob}?comp=page&update&fromUrl": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetHTTPHeaders", - "description": "The Set HTTP Headers operation sets system properties on 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": "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" }, { - "$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" + }, + { + "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/BlobContentType" + "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/BlobContentMD5" + "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/BlobContentEncoding" + "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/BlobContentLanguage" + "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/IfModifiedSince" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-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/IfMatch" + "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" }, { - "$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/BlobContentDisposition" + "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-version", + "in": "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.", + "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": "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": "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." }, + "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": [ - "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}/{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/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/IfUnmodifiedSince" + "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/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" - } - ], - "responses": { - "200": { - "description": "The immutability policy was successfully set.", - "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." - } - } + "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" }, - "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" + "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/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" - } - } + "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" }, - "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/StorageError" - } - } - } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "immutabilityPolicies" - ] - } - ] - }, - "/{containerName}/{blob}?comp=legalhold": { - "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetLegalHold", - "description": "The Set Legal Hold operation sets a legal hold on the blob.", - "parameters": [ { - "$ref": "#/parameters/Timeout" + "name": "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" }, { - "$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": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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 legal hold was successfully set on the blob.", + "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": { - "x-ms-client-name": "ClientRequestId", "type": "string", "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." }, "x-ms-request-id": { - "x-ms-client-name": "RequestId", "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, "x-ms-version": { - "x-ms-client-name": "Version", "type": "string", "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-legal-hold": { - "x-ms-client-name": "LegalHold", - "type": "boolean", - "description": "Indicates if the blob has a legal hold." } } }, "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": { - "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", + "/{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" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the 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" }, { - "$ref": "#/parameters/Metadata" + "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/LeaseIdOptional" + "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/EncryptionKey" + "name": "x-ms-range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "range" }, { - "$ref": "#/parameters/EncryptionKeySha256" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/EncryptionAlgorithm" + "name": "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/EncryptionScope" + "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/IfModifiedSince" + "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/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/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": "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" }, { - "$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 metadata was set successfully.", + "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-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&Resize": { "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_Resize", + "description": "The Resize operation increases the size of the page blob to the specified size.", "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-lease-id", + "in": "header", + "description": "If specified, 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/LeaseDuration" + "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/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-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/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": { - "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." }, "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": [ - "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=properties&UpdateSequenceNumber": { "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_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": "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" }, { - "$ref": "#/parameters/LeaseIdRequired" + "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/IfModifiedSince" + "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/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/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" + "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": { "200": { - "description": "The Release operation completed 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 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=incrementalcopy": { "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_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": "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" }, { - "$ref": "#/parameters/LeaseIdRequired" + "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/IfModifiedSince" + "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/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/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-lease-id", + "in": "header", + "description": "If specified, 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-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/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 Renew operation completed 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 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": "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": { - "type": "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}?AppendBlob": { "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": "AppendBlob_Create", + "description": "The Create operation creates a new append blob.", "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/ProposedLeaseIdRequired" + "name": "timeout", + "in": "query", + "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": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" }, { - "$ref": "#/parameters/IfMatch" + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" }, { - "$ref": "#/parameters/IfNoneMatch" + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" }, { - "$ref": "#/parameters/IfTags" + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentMD5" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" }, { - "$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": "x-ms-lease-id", + "in": "header", + "description": "If specified, 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" - } - }, - "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": "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/LeaseBreakPeriod" + "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/IfModifiedSince" + "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/IfUnmodifiedSince" + "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/IfMatch" + "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/IfNoneMatch" + "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/IfTags" + "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/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/Timeout" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$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/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/LeaseIdOptional" + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-version", + "in": "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": { "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", + "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", - "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." }, + "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." }, "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}?BlockBlob": { "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": "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" + "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": "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" }, { - "$ref": "#/parameters/Metadata" + "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/AccessTierOptional" + "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/RehydratePriority" + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "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/SourceIfUnmodifiedSince" + "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/SourceIfMatch" + "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/SourceIfNoneMatch" + "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/SourceIfTags" + "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-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/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" + "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-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/BlobTagsHeader" + "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/SealBlob" + "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/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" }, { - "$ref": "#/parameters/LegalHoldOptional" + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "responses": { - "202": { - "description": "The copy blob has been accepted with the specified copy status.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { + "Content-MD5": { + "type": "string", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-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-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." }, "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}?BlockBlob&fromUrl": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_CopyFromURL", - "description": "The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return a response until the copy is complete.", + "operationId": "BlockBlob_PutBlobFromUrl", + "description": "The Put Blob from URL operation creates a new Block Blob where the contents of the blob are read from a given URL. This API is supported beginning with the 2020-04-08 version. Partial updates are not supported with Put Blob from URL; the content of an existing blob is overwritten with the content of the new blob. To perform partial updates to a block blob’s contents using a source URL, use the Put Block from URL API in conjunction with Put Block List.", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Metadata" - }, - { - "$ref": "#/parameters/AccessTierOptional" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "name": "blob", + "in": "path", + "description": "The name of the 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/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": "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/SourceIfNoneMatch" + "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": "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/IfUnmodifiedSince" + "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/IfMatch" + "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/IfNoneMatch" + "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/IfTags" + "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/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" }, { - "$ref": "#/parameters/LeaseIdOptional" + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" }, { - "$ref": "#/parameters/ClientRequestId" + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" }, { - "$ref": "#/parameters/SourceContentMD5" + "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/BlobTagsHeader" + "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/ImmutabilityPolicyExpiry" + "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-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/ImmutabilityPolicyMode" + "name": "x-ms-copy-source-blob-properties", + "in": "header", + "description": "Optional, default is true. Indicates if properties from the source blob should be copied.", + "required": false, + "type": "boolean", + "x-ms-client-name": "copySourceBlobProperties" }, { - "$ref": "#/parameters/LegalHoldOptional" + "name": "x-ms-copy-source-authorization", + "in": "header", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceAuthorization" }, { - "$ref": "#/parameters/CopySourceAuthorization" + "name": "x-ms-copy-source-tags", + "in": "header", + "description": "Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceTags" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "x-ms-version", + "in": "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.", + "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. 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", - "type": "string", - "description": "Indicates the 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", + "x-ms-encryption-key-sha256": { "type": "string", - "description": "String identifier for this copy operation." + "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": [ - "success" - ], - "x-ms-enum": { - "name": "SyncCopyStatusType", - "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" }, - "Content-MD5": { + "x-ms-request-id": { "type": "string", - "format": "byte", - "description": "This response header is returned so that the client can check for the integrity of the copied content. This header is only returned if the source content MD5 was specified." + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "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-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-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-requires-sync", - "description": "This header indicates that this is a synchronous Copy Blob From URL instead of a Asynchronous Copy Blob.", - "in": "header", - "required": true, - "type": "string", - "enum": [ - "true" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=copy©id": { + "/{containerName}/{blob}?comp=block": { "put": { - "tags": [ - "blob" - ], - "operationId": "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": "BlockBlob_StageBlock", + "description": "The Stage Block operation creates a new block to be committed as part of a 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": "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", + "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-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/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/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/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": { - "204": { - "description": "The delete request was accepted and the blob will be deleted.", + "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": { - "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": [ - "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}?AppendBlob/{containerName}/{blob}?comp=appendblock": { "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": "AppendBlob_AppendBlock", + "description": "The Append Block operation commits a new block of data to the end of an append blob.", "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" + }, + { + "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": "x-ms-lease-id", + "in": "header", + "description": "If specified, 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/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" }, { - "$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/AccessTierRequired" + "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/RehydratePriority" + "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/LeaseIdOptional" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "byte" + } } ], "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", + "Content-MD5": { "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", + "Date": { "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + "format": "date-time-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-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", + "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-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-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", "type": "string", "description": "If a client 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-sku-name": { - "x-ms-client-name": "SkuName", + "x-ms-request-id": { "type": "string", - "enum": [ - "Standard_LRS", - "Standard_GRS", - "Standard_RAGRS", - "Standard_ZRS", - "Premium_LRS" - ], - "x-ms-enum": { - "name": "SkuName", - "modelAsString": false - }, - "description": "Identifies the sku name of the account" + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-account-kind": { - "x-ms-client-name": "AccountKind", + "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", - "enum": [ - "Storage", - "BlobStorage", - "StorageV2", - "FileStorage", - "BlockBlobStorage" - ], - "x-ms-enum": { - "name": "AccountKind", - "modelAsString": false - }, - "description": "Identifies the account kind" + "description": "Indicates the 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": "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/{containerName}/{blob}?comp=appendblock&fromUrl": { "put": { - "tags": [ - "blockblob" - ], - "operationId": "BlockBlob_StageBlock", - "description": "The Stage Block operation creates a new block to be committed as part of a blob", - "consumes": [ - "application/octet-stream" - ], + "operationId": "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/BlockId" + "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": "maxSize" }, { - "$ref": "#/parameters/ContentLength" + "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" }, { - "$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", + "x-ms-client-name": "encryptionAlgorithm" }, { - "$ref": "#/parameters/Body" + "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" + "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/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-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-version", + "in": "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": { "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" + }, + "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": { - "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-content-crc64": { + "x-ms-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": "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 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", + "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": [ - "block" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=block&fromURL": { + "/{containerName}/{blob}?AppendBlob/{containerName}/{blob}?comp=seal": { "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": "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/BlockId" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/SourceUrl" - }, - { - "$ref": "#/parameters/SourceRange" - }, - { - "$ref": "#/parameters/SourceContentMD5" - }, - { - "$ref": "#/parameters/SourceContentCRC64" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$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" }, { - "$ref": "#/parameters/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" }, { - "$ref": "#/parameters/LeaseIdOptional" + "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/SourceIfModifiedSince" + "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/SourceIfUnmodifiedSince" + "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/SourceIfMatch" + "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/SourceIfNoneMatch" + "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/CopySourceAuthorization" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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 block was created.", + "200": { + "description": "The request has succeeded.", "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-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-client-request-id": { - "x-ms-client-name": "ClientRequestId", + "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": { - "x-ms-client-name": "RequestId", "type": "string", "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, "x-ms-version": { - "x-ms-client-name": "Version", "type": "string", "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-request-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." - }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the block was encrypted with a customer-provided key." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", - "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "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": { "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_StartCopyFromUrl", + "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", "parameters": [ { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/BlobCacheControl" - }, - { - "$ref": "#/parameters/BlobContentType" - }, - { - "$ref": "#/parameters/BlobContentEncoding" - }, - { - "$ref": "#/parameters/BlobContentLanguage" + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/BlobContentMD5" + "name": "blob", + "in": "path", + "description": "The name of the 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" }, { - "$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/Metadata" + "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/LeaseIdOptional" + "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/BlobContentDisposition" + "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/EncryptionKey" + "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/EncryptionKeySha256" + "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/EncryptionAlgorithm" + "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/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/AccessTierOptional" + "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/IfModifiedSince" + "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/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/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-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-lease-id", + "in": "header", + "description": "If specified, 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": "blocks", - "description": "Blob Blocks.", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/BlockLookupList" - } + "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-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/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-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$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 block list was recorded.", + "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." }, - "Content-MD5": { + "x-ms-client-request-id": { "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": "If 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-copy-id": { "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": "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-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." }, "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" } } } - }, - "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}/?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/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": "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/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-version", + "in": "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 page range was written.", + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", "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." - }, - "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." + "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/BlockList" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "blocklist" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=page&update": { + "/{containerName}/{blob}/?comp=copy&sync": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_UploadPages", - "description": "The Upload Pages operation writes a range of pages to a page blob", - "consumes": [ - "application/octet-stream" - ], + "operationId": "Blob_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/Body" + "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-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/ContentLength" + "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/ContentMD5" + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" }, { - "$ref": "#/parameters/ContentCrc64" + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" }, { - "$ref": "#/parameters/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-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/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" }, { - "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" + "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/IfSequenceNumberLessThan" + "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/IfSequenceNumberEqualTo" + "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/IfModifiedSince" + "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/IfUnmodifiedSince" + "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/IfMatch" + "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/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-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" + "name": "x-ms-version", + "in": "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": { - "201": { - "description": "The page range was written.", + "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." - }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for the page blob." + "format": "date-time-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-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-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-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 pages. This header is only returned when the pages were 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": [ - "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": { - "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_ClearPages", - "description": "The Clear Pages operation clears a set of pages from a page blob", - "consumes": [ - "application/octet-stream" - ], + "/{containerName}/{blob}/?comp=expiry": { + "post": { + "operationId": "Blob_SetExpiry", + "description": "\"Set the expiration time of a blob\"", "parameters": [ { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Range" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThan" - }, - { - "$ref": "#/parameters/IfSequenceNumberEqualTo" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$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": "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/IfTags" + "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" }, { - "$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": { - "201": { - "description": "The page range was cleared.", + "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." + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "Content-MD5": { + "ETag": { "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "x-ms-content-crc64": { + "Last-Modified": { "type": "string", - "format": "byte", - "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." - }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for the page blob." + "format": "date-time-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" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "page" - ] - }, - { - "name": "x-ms-page-write", - "x-ms-client-name": "pageWrite", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Required. You may specify one of the following options:\n - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update.\n - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and the Range header to a value that indicates the range to clear, up to maximum blob size.", - "type": "string", - "enum": [ - "clear" - ], - "x-ms-enum": { - "name": "PageWriteType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?comp=page&update&fromUrl": { + "/{containerName}/{blob}/?comp=immutabilityPolicies": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_UploadPagesFromURL", - "description": "The Upload Pages operation writes a range of pages to a page blob where the contents are read from a URL", - "consumes": [ - "application/octet-stream" - ], + "operationId": "Blob_SetImmutabilityPolicy", + "description": "\"Set the immutability policy of a blob\"", "parameters": [ { - "$ref": "#/parameters/SourceUrl" - }, - { - "$ref": "#/parameters/SourceRangeRequiredPutPageFromUrl" - }, - { - "$ref": "#/parameters/SourceContentMD5" - }, - { - "$ref": "#/parameters/SourceContentCRC64" - }, - { - "$ref": "#/parameters/ContentLength" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/RangeRequiredPutPageFromUrl" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" - }, - { - "$ref": "#/parameters/IfSequenceNumberLessThan" - }, - { - "$ref": "#/parameters/IfSequenceNumberEqualTo" - }, - { - "$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" }, { - "$ref": "#/parameters/SourceIfModifiedSince" + "name": "blob", + "in": "path", + "description": "The name of the 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/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": "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/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-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/CopySourceAuthorization" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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 page range was written.", + "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." + "description": "If 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-immutability-policy-mode": { "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": "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-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for the page blob." + "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." - }, - "Date": { - "type": "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": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "page" - ] - }, - { - "name": "x-ms-page-write", - "x-ms-client-name": "pageWrite", - "in": "header", - "required": true, - "x-ms-parameter-location": "method", - "description": "Required. You may specify one of the following options:\n - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update.\n - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and the Range header to a value that indicates the range to clear, up to maximum blob size.", - "type": "string", - "enum": [ - "update" - ], - "x-ms-enum": { - "name": "PageWriteType", - "modelAsString": false - } - } - ] + } }, - "/{containerName}/{blob}?comp=pagelist": { - "get": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_GetPageRanges", - "description": "The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob", + "/{containerName}/{blob}/?comp=immutabilityPolicies&_overload=deleteImmutabilityPolicy": { + "delete": { + "operationId": "Blob_DeleteImmutabilityPolicy", + "description": "The Delete Immutability Policy operation deletes the immutability policy on the blob.", "parameters": [ { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/Range" - }, - { - "$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/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" - }, - { - "$ref": "#/parameters/Marker" - }, - { - "$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." - }, - "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." - }, - "x-ms-blob-content-length": { - "x-ms-client-name": "BlobContentLength", - "type": "integer", - "format": "int64", - "description": "The size of the blob in bytes." + "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/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=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/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-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" }, { - "$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.", + "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" }, "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-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." - }, - "Date": { - "type": "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=lease&break": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_Resize", - "description": "Resize the 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" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$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" }, { - "$ref": "#/parameters/IfModifiedSince" + "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/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/BlobContentLengthRequired" + "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 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-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." }, "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=properties&UpdateSequenceNumber": { + "/{containerName}/{blob}/?comp=lease&change": { "put": { - "tags": [ - "pageblob" - ], - "operationId": "PageBlob_UpdateSequenceNumber", - "description": "Update the 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": [ { - "$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}$" }, { - "$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": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "x-ms-proposed-lease-id", + "in": "header", + "description": "Optional. The proposed lease ID for the container.", + "required": false, + "type": "string", + "x-ms-client-name": "proposedLeaseId" }, { - "$ref": "#/parameters/IfMatch" + "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/SequenceNumberAction" + "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/BlobSequenceNumber" + "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 sequence numbers were updated 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." }, + "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." - }, - "Date": { - "type": "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=lease&release": { "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_ReleaseLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "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" }, { - "$ref": "#/parameters/IfModifiedSince" + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/IfUnmodifiedSince" + "name": "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" + "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": { - "202": { - "description": "The blob was copied.", + "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." }, "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 - } } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "incrementalcopy" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=appendblock": { + "/{containerName}/{blob}/?comp=lease&renew": { "put": { - "tags": [ - "appendblob" - ], - "consumes": [ - "application/octet-stream" - ], - "operationId": "AppendBlob_AppendBlock", - "description": "The Append Block operation commits a new block of data to the end of an existing append blob. The Append Block operation is permitted only if the blob was created with x-ms-blob-type set to AppendBlob. Append Block is supported only on version 2015-02-21 version or later.", + "operationId": "Blob_RenewLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations.", "parameters": [ { - "$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/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/ContentMD5" + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" }, { - "$ref": "#/parameters/ContentCrc64" + "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/BlobConditionMaxSize" + "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/BlobConditionAppendPos" + "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/EncryptionKey" + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" }, { - "$ref": "#/parameters/EncryptionKeySha256" - }, - { - "$ref": "#/parameters/EncryptionAlgorithm" - }, - { - "$ref": "#/parameters/EncryptionScope" - }, - { - "$ref": "#/parameters/IfModifiedSince" - }, - { - "$ref": "#/parameters/IfUnmodifiedSince" - }, - { - "$ref": "#/parameters/IfMatch" - }, - { - "$ref": "#/parameters/IfNoneMatch" - }, - { - "$ref": "#/parameters/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": { - "201": { - "description": "The block was created.", + "200": { + "description": "The request has succeeded.", "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { + "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-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." - }, - "Date": { - "type": "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." } } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "appendblock" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=appendblock&fromUrl": { + "/{containerName}/{blob}/?comp=legalhold": { "put": { - "tags": [ - "appendblob" - ], - "operationId": "AppendBlob_AppendBlockFromUrl", - "description": "The Append Block operation commits a new block of data to the end of an existing append blob where the contents are read from a source url. The Append Block operation is permitted only if the blob was created with x-ms-blob-type set to AppendBlob. Append Block is supported only on version 2015-02-21 version or later.", + "operationId": "Blob_SetLegalHold", + "description": "The Set Legal Hold operation sets a legal hold on the blob.", "parameters": [ { - "$ref": "#/parameters/SourceUrl" - }, - { - "$ref": "#/parameters/SourceRange" - }, - { - "$ref": "#/parameters/SourceContentMD5" - }, - { - "$ref": "#/parameters/SourceContentCRC64" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/ContentLength" + "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/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-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/EncryptionAlgorithm" + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/EncryptionScope" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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-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": [ { - "$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" }, { - "$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", + "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" + "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/SourceIfUnmodifiedSince" + "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/SourceIfMatch" + "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/SourceIfNoneMatch" + "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/CopySourceAuthorization" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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 block was created.", + "200": { + "description": "The request has succeeded.", "headers": { - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Last-Modified": { + "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-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." + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-version": { - "x-ms-client-name": "Version", + "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." + "description": "The ETag contains a value that you can use to perform operations conditionally." }, - "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": "The date/time that the container was last modified." }, - "x-ms-blob-append-offset": { - "x-ms-client-name": "BlobAppendOffset", + "x-ms-client-request-id": { "type": "string", - "description": "This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes." - }, - "x-ms-blob-committed-block-count": { - "x-ms-client-name": "BlobCommittedBlockCount", - "type": "integer", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + "description": "If 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-client-name": "EncryptionKeySha256", "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the block was encrypted with a customer-provided key." + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." }, "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-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-version": { + "type": "string", + "description": "Indicates the 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=seal": { + "/{containerName}/{blob}/?comp=snapshot": { "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_CreateSnapshot", + "description": "The Create Snapshot operation creates a read-only snapshot of 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-lease-id", + "in": "header", + "description": "If specified, 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/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": "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/IfModifiedSince" + "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/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/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-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" }, { - "$ref": "#/parameters/BlobConditionAppendPos" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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 blob was sealed.", + "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 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", - "type": "string", - "description": "Indicates the 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-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." }, - "x-ms-blob-sealed": { - "x-ms-client-name": "IsSealed", - "type": "boolean", - "description": "If this blob has been sealed" + "x-ms-version": { + "type": "string", + "description": "Indicates the 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=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/QueryRequest" - }, - { - "$ref": "#/parameters/Snapshot" - }, - { - "$ref": "#/parameters/Timeout" - }, - { - "$ref": "#/parameters/LeaseIdOptional" - }, - { - "$ref": "#/parameters/EncryptionKey" - }, - { - "$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/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-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" }, { - "$ref": "#/parameters/IfMatch" + "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/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" + "name": "x-ms-version", + "in": "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": "Returns the content of the entire blob.", + "description": "The request has succeeded.", "headers": { - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "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": { + "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." }, - "Content-Encoding": { + "x-ms-request-id": { "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "Cache-Control": { + "x-ms-version": { "type": "string", - "description": "This header is returned if it was previously specified for the blob." - }, - "Content-Disposition": { + "description": "Indicates the 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": "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": "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": { "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": "This header uniquely identifies the request that was made and can be used for troubleshooting 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}/{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" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "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." + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" }, - "x-ms-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", + "x-ms-account-kind": { "type": "string", + "description": "Identifies the account kind", "enum": [ - "pending", - "success", - "aborted", - "failed" + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" ], "x-ms-enum": { - "name": "CopyStatusType", - "modelAsString": false + "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-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-client-request-id": { "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "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-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", + "x-ms-request-id": { "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false - } + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." }, - "x-ms-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", + "x-ms-sku-name": { "type": "string", + "description": "Identifies the sku name of the account", "enum": [ - "locked", - "unlocked" + "Standard_LRS", + "tandard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS" ], "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false + "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" + } + } + } + } + }, + "/?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" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "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." - }, - "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" - } - }, - "206": { - "description": "Returns the content of a specified range of the blob.", - "headers": { - "Last-Modified": { - "type": "string", - "format": "date-time-rfc1123", - "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." - }, - "x-ms-meta": { - "type": "string", - "x-ms-client-name": "Metadata", - "x-ms-header-collection-prefix": "x-ms-meta-" - }, - "Content-Length": { - "type": "integer", - "format": "int64", - "description": "The number of bytes present in the response body." - }, - "Content-Type": { - "type": "string", - "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" - }, - "Content-Range": { - "type": "string", - "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." - }, - "ETag": { - "type": "string", - "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." - }, - "Content-MD5": { - "type": "string", - "format": "byte", - "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." - }, - "Content-Encoding": { - "type": "string", - "description": "This header returns the value that was specified for the Content-Encoding request header" - }, - "Cache-Control": { - "type": "string", - "description": "This header is returned if it was previously specified for the blob." - }, - "Content-Disposition": { - "type": "string", - "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." - }, - "Content-Language": { - "type": "string", - "description": "This header returns the value that was specified for the Content-Language request header." - }, - "x-ms-blob-sequence-number": { - "x-ms-client-name": "BlobSequenceNumber", - "type": "integer", - "format": "int64", - "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" - }, - "x-ms-blob-type": { - "x-ms-client-name": "BlobType", - "description": "The blob's type.", - "type": "string", - "enum": [ - "BlockBlob", - "PageBlob", - "AppendBlob" - ], - "x-ms-enum": { - "name": "BlobType", - "modelAsString": false - } - }, - "x-ms-content-crc64": { - "x-ms-client-name": "ContentCrc64", - "type": "string", - "format": "byte", - "description": "If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to true, then the request returns a crc64 for the range, as long as the range size is less than or equal to 4 MB. If both x-ms-range-get-content-crc64 and x-ms-range-get-content-md5 is specified in the same request, it will fail with 400(Bad Request)" - }, - "x-ms-copy-completion-time": { - "x-ms-client-name": "CopyCompletionTime", - "type": "string", - "format": "date-time-rfc1123", - "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." - }, - "x-ms-copy-status-description": { - "x-ms-client-name": "CopyStatusDescription", - "type": "string", - "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" - }, - "x-ms-copy-id": { - "x-ms-client-name": "CopyId", - "type": "string", - "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." - }, - "x-ms-copy-progress": { - "x-ms-client-name": "CopyProgress", - "type": "string", - "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" - }, - "x-ms-copy-source": { - "x-ms-client-name": "CopySource", - "type": "string", - "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." - }, - "x-ms-copy-status": { - "x-ms-client-name": "CopyStatus", - "description": "State of the copy operation identified by x-ms-copy-id.", - "type": "string", - "enum": [ - "pending", - "success", - "aborted", - "failed" - ], - "x-ms-enum": { - "name": "CopyStatusType", - "modelAsString": false - } - }, - "x-ms-lease-duration": { - "x-ms-client-name": "LeaseDuration", - "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", - "type": "string", - "enum": [ - "infinite", - "fixed" - ], - "x-ms-enum": { - "name": "LeaseDurationType", - "modelAsString": false - } - }, - "x-ms-lease-state": { - "x-ms-client-name": "LeaseState", - "description": "Lease state of the blob.", - "type": "string", - "enum": [ - "available", - "leased", - "expired", - "breaking", - "broken" - ], - "x-ms-enum": { - "name": "LeaseStateType", - "modelAsString": false - } - }, - "x-ms-lease-status": { - "x-ms-client-name": "LeaseStatus", - "description": "The current lease status of the blob.", - "type": "string", - "enum": [ - "locked", - "unlocked" - ], - "x-ms-enum": { - "name": "LeaseStatusType", - "modelAsString": false - } - }, - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Accept-Ranges": { - "type": "string", - "description": "Indicates that the service supports requests for partial blob content." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - }, - "x-ms-blob-committed-block-count": { - "x-ms-client-name": "BlobCommittedBlockCount", - "type": "integer", - "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." - }, - "x-ms-server-encrypted": { - "x-ms-client-name": "IsServerEncrypted", - "type": "boolean", - "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." - }, - "x-ms-encryption-key-sha256": { - "x-ms-client-name": "EncryptionKeySha256", - "type": "string", - "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." - }, - "x-ms-encryption-scope": { - "x-ms-client-name": "EncryptionScope", - "type": "string", - "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." - }, - "x-ms-blob-content-md5": { - "x-ms-client-name": "BlobContentMD5", - "type": "string", - "format": "byte", - "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" } - }, - "schema": { - "type": "object", - "format": "file" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, - "parameters": [ - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/Blob" - }, - { - "name": "comp", - "description": "comp", - "in": "query", - "required": true, - "type": "string", - "enum": [ - "query" - ] - } - ] + } }, - "/{containerName}/{blob}?comp=tags": { + "/?comp=blobs": { "get": { - "tags": [ - "blob" - ], - "operationId": "Blob_GetTags", - "description": "The Get Tags operation enables users to get the tags associated with a blob.", + "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/Timeout" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "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/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" }, { - "$ref": "#/parameters/Snapshot" + "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/VersionId" + "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/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/LeaseIdOptional" + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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": "Retrieved blob tags", + "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": { - "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" } }, "default": { - "description": "Failure", - "headers": { - "x-ms-error-code": { - "x-ms-client-name": "ErrorCode", - "type": "string" - } - }, + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/StorageError" } } } - }, + } + }, + "/?comp=block&fromURL/{containerName}/{blob}": { "put": { - "tags": [ - "blob" - ], - "operationId": "Blob_SetTags", - "description": "The Set Tags operation enables users to set tags on a 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": [ { - "$ref": "#/parameters/ApiVersionParameter" + "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/VersionId" + "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/ContentMD5" + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" }, { - "$ref": "#/parameters/ContentCrc64" + "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/ClientRequestId" + "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/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/LeaseIdOptional" + "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/BlobTagsBody" - } - ], - "responses": { - "204": { - "description": "The tags were applied to the blob", - "headers": { - "x-ms-client-request-id": { - "x-ms-client-name": "ClientRequestId", - "type": "string", - "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." - }, - "x-ms-request-id": { - "x-ms-client-name": "RequestId", - "type": "string", - "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." - }, - "x-ms-version": { - "x-ms-client-name": "Version", - "type": "string", - "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." - }, - "Date": { - "type": "string", - "format": "date-time-rfc1123", - "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" - } - } + "name": "timeout", + "in": "query", + "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" - } - }, - "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" - } - } - }, - "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": { - "type": "string", - "xml": { - "attribute": true - } - }, - "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 - } - }, - "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" - } - } - } - }, - "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" + { + "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": "boolean", - "description": "Indicates if the blob name is encoded." - }, - "content": { - "xml": { - "x-ms-text": true + { + "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" }, - "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": "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" }, - "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": "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" }, - "type": "array", - "items": { - "$ref": "#/definitions/Block" - } - }, - "UncommittedBlocks": { - "xml": { - "wrapped": 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", + "x-ms-client-name": "leaseId" }, - "type": "array", - "items": { - "$ref": "#/definitions/Block" - } - } - } - }, - "BlockLookupList": { - "type": "object", - "properties": { - "Committed": { - "type": "array", - "items": { + { + "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", - "xml": { - "name": "Committed" - } - } - }, - "Uncommitted": { - "type": "array", - "items": { + "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": "Uncommitted" - } - } - }, - "Latest": { - "type": "array", - "items": { + "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", - "xml": { - "name": "Latest" - } - } - } - }, - "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" + "x-ms-client-name": "sourceIfMatch" }, - "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": "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" }, - "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 + { + "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", + "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" } - }, - "Where": { - "type": "string" - }, - "Blobs": { - "xml": { - "name": "Blobs", - "wrapped": 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" + }, + "x-ms-client-request-id": { + "type": "string", + "description": "If 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." + } + } }, - "type": "array", - "items": { - "$ref": "#/definitions/FilterBlobItem" + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + } } - }, - "NextMarker": { - "type": "string" - } - } - }, - "GeoReplication": { - "description": "Geo-Replication information for the Secondary Storage Service", - "type": "object", - "required": [ - "Status", - "LastSyncTime" - ], - "properties": { - "Status": { - "description": "The status of the secondary location", - "type": "string", - "enum": [ - "live", - "bootstrap", - "unavailable" - ], - "x-ms-enum": { - "name": "GeoReplicationStatusType", - "modelAsString": true - } - }, - "LastSyncTime": { - "description": "A GMT date/time value, to the second. All primary writes preceding this value are guaranteed to be available for read operations at the secondary. Primary writes after this point in time may or may not be available for reads.", - "type": "string", - "format": "date-time-rfc1123" - } - } - }, - "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=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" + }, + { + "name": "blob", + "in": "path", + "description": "The name of the 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": "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-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-version", + "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", + "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": "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" + }, + { + "name": "x-ms-version", + "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.", + "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" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "Provides a client-generated, opaque value with a 1 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.", + "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 +14205,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" } } -} +} \ No newline at end of file