Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions specification/storage/Microsoft.BlobStorage/models.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -1419,12 +1419,18 @@ alias LeaseIdResponseHeader = {
leaseId?: string;
};

/** The is server encrypted response header. */
alias IsServerEncryptedResponseHeader = {
/** The request server encrypted response header. */
alias RequestServerEncryptedResponseHeader = {
/** The 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;
isServerEncrypted?: boolean;
};

/** The server encrypted response header. */
alias ServerEncryptedResponseHeader = {
/** The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise. */
@header("x-ms-server-encrypted")
isServerEncrypted?: boolean;
};

/** The legal hold response header. */
Expand Down
92 changes: 72 additions & 20 deletions specification/storage/Microsoft.BlobStorage/routes.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ namespace Storage.Blob {
#suppress "@typespec/http/content-type-ignored" "Template for existing API"
@header("Content-Type")
contentType: ResponseMediaType;

...RequestIdResponseHeader;
...ClientRequestIdHeader;
}) | TError;

/** Azure Storage Blob basic operation template */
Expand Down Expand Up @@ -221,6 +224,9 @@ namespace Storage.Blob {
},
{
@statusCode statusCode: 201;
...EtagResponseHeader;
...LastModifiedResponseHeader;
...DateResponseHeader;
}
>;

Expand All @@ -239,6 +245,7 @@ namespace Storage.Blob {
...MetadataHeaders;
...EtagResponseHeader;
...LastModifiedResponseHeader;
...DateResponseHeader;
...LeaseDurationHeader;
...LeaseStateResponseHeader;
...LeaseStatusResponseHeader;
Expand Down Expand Up @@ -279,6 +286,7 @@ namespace Storage.Blob {
},
{
@statusCode statusCode: 202;
...DateResponseHeader;
}
>;

Expand All @@ -296,7 +304,11 @@ namespace Storage.Blob {
...MetadataHeaders;
...IfModifiedSinceParameter;
},
{}
{
...EtagResponseHeader;
...LastModifiedResponseHeader;
...DateResponseHeader;
}
>;

/** gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly. */
Expand Down Expand Up @@ -661,17 +673,22 @@ namespace Storage.Blob {
@header("x-ms-range-get-content-crc64")
rangeGetContentCrc64?: boolean,

/** Specifies the response content should be returned as a structured message and specifies the message schema version and properties. */
@header("x-ms-structured-body")
structuredBodyType?: string,

...EncryptionKeyParameter,
...EncryptionKeySha256Parameter,
...EncryptionAlgorithmParameter,
...IfTagsParameter,
...ConditionalRequestHeaders,
...StructuredBodyParameter,
): (BodyParameter & {
/** The media type of the body of the response. */
@header("Content-Type")
contentType: "application/octet-stream";

...RequestIdResponseHeader;
...ClientRequestIdHeader;
...MetadataHeaders;
...ObjectReplicationHeaders;
...LastModifiedResponseHeader;
Expand All @@ -698,8 +715,10 @@ namespace Storage.Blob {
...LeaseStatusResponseHeader;
...VersionIdResponseHeader;
...IsCurrentVersionResponseHeader;
...AcceptRangesResponseHeader;
...DateResponseHeader;
...BlobCommittedBlockCountResponseHeader;
...IsServerEncryptedResponseHeader;
...ServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
...BlobContentMd5ResponseHeader;
Expand All @@ -709,6 +728,8 @@ namespace Storage.Blob {
...ImmutabilityPolicyExpiresOnResponseHeader;
...ImmutabilityPolicyModeResponseHeader;
...LegalHoldResponseHeader;
...StructuredBodyTypeResponseHeader;
...StructuredContentLengthResponseHeader;
}) | (BodyParameter & {
#suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "Following standard pattern"
@statusCode statusCode: 206;
Expand All @@ -717,6 +738,8 @@ namespace Storage.Blob {
@header("Content-Type")
contentType: "application/octet-stream";

...RequestIdResponseHeader;
...ClientRequestIdHeader;
...MetadataHeaders;
...ObjectReplicationHeaders;
...LastModifiedResponseHeader;
Expand Down Expand Up @@ -745,8 +768,9 @@ namespace Storage.Blob {
...VersionIdResponseHeader;
...IsCurrentVersionResponseHeader;
...AcceptRangesResponseHeader;
...DateResponseHeader;
...BlobCommittedBlockCountResponseHeader;
...IsServerEncryptedResponseHeader;
...ServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
...BlobContentMd5ResponseHeader;
Expand All @@ -756,6 +780,8 @@ namespace Storage.Blob {
...ImmutabilityPolicyExpiresOnResponseHeader;
...ImmutabilityPolicyModeResponseHeader;
...LegalHoldResponseHeader;
...StructuredBodyTypeResponseHeader;
...StructuredContentLengthResponseHeader;
}) | StorageError;

/** The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system properties for the blob. It does not return the content of the blob. */
Expand Down Expand Up @@ -810,8 +836,10 @@ namespace Storage.Blob {
...ContentLanguageResponseHeader;
...CacheControlResponseHeader;
...BlobSequenceNumberResponseHeader;
...DateResponseHeader;
...AcceptRangesResponseHeader;
...BlobCommittedBlockCountResponseHeader;
...IsServerEncryptedResponseHeader;
...ServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
...AccessTierOptional;
Expand Down Expand Up @@ -871,6 +899,7 @@ namespace Storage.Blob {
},
{
@statusCode statusCode: 202;
...DateResponseHeader;
}
>;

Expand Down Expand Up @@ -931,7 +960,12 @@ namespace Storage.Blob {
...ConditionalRequestHeaders;
...IfTagsParameter;
},
{}
{
...EtagResponseHeader;
...LastModifiedResponseHeader;
...BlobSequenceNumberResponseHeader;
...DateResponseHeader;
}
>;

/** Set the immutability policy of a blob */
Expand Down Expand Up @@ -1015,7 +1049,15 @@ namespace Storage.Blob {
...ConditionalRequestHeaders;
...IfTagsParameter;
},
{}
{
...EtagResponseHeader;
...LastModifiedResponseHeader;
...VersionIdResponseHeader;
...DateResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
}
>;

/** The Acquire Lease operation requests a new lease on a blob. The lease lock duration can be 15 to 60 seconds, or can be infinite. */
Expand Down Expand Up @@ -1167,7 +1209,7 @@ namespace Storage.Blob {
...LastModifiedResponseHeader;
...VersionIdResponseHeader;
...DateResponseHeader;
...IsServerEncryptedResponseHeader;
...RequestServerEncryptedResponseHeader;
}
>;

Expand Down Expand Up @@ -1432,7 +1474,7 @@ namespace Storage.Blob {
...ContentMd5ResponseHeader;
...VersionIdResponseHeader;
...DateResponseHeader;
...IsServerEncryptedResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
}
Expand Down Expand Up @@ -1480,7 +1522,7 @@ namespace Storage.Blob {
...ContentCrc64ResponseHeader;
...BlobSequenceNumberResponseHeader;
...DateResponseHeader;
...IsServerEncryptedResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
...StructuredBodyTypeResponseHeader;
Expand Down Expand Up @@ -1574,7 +1616,7 @@ namespace Storage.Blob {
...ContentCrc64ResponseHeader;
...BlobSequenceNumberResponseHeader;
...DateResponseHeader;
...IsServerEncryptedResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
}
Expand Down Expand Up @@ -1766,7 +1808,7 @@ namespace Storage.Blob {
...ContentMd5ResponseHeader;
...VersionIdResponseHeader;
...DateResponseHeader;
...IsServerEncryptedResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
}
Expand Down Expand Up @@ -1813,7 +1855,7 @@ namespace Storage.Blob {
...DateResponseHeader;
...BlobAppendOffsetResponseHeader;
...BlobCommittedBlockCountResponseHeader;
...IsServerEncryptedResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
...StructuredBodyTypeResponseHeader;
Expand Down Expand Up @@ -1863,7 +1905,7 @@ namespace Storage.Blob {
...DateResponseHeader;
...BlobAppendOffsetResponseHeader;
...BlobCommittedBlockCountResponseHeader;
...IsServerEncryptedResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
}
Expand Down Expand Up @@ -1932,6 +1974,8 @@ namespace Storage.Blob {
...ImmutabilityPolicyModeParameter;
...LegalHoldOptionalParameter;
...ContentCrc64Parameter;
...StructuredBodyParameter;
...StructuredContentLengthParameter;

/** The type of the blob. */
@header("x-ms-blob-type")
Expand All @@ -1943,9 +1987,11 @@ namespace Storage.Blob {
...LastModifiedResponseHeader;
...ContentMd5ResponseHeader;
...VersionIdResponseHeader;
...IsServerEncryptedResponseHeader;
...DateResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
...StructuredBodyTypeResponseHeader;
},
"application/octet-stream"
>;
Expand Down Expand Up @@ -2002,7 +2048,7 @@ namespace Storage.Blob {
...ContentMd5ResponseHeader;
...VersionIdResponseHeader;
...DateResponseHeader;
...IsServerEncryptedResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
}
Expand Down Expand Up @@ -2031,14 +2077,18 @@ namespace Storage.Blob {
...EncryptionKeySha256Parameter;
...EncryptionAlgorithmParameter;
...EncryptionScopeParameter;
...StructuredBodyParameter;
...StructuredContentLengthParameter;
},
{
@statusCode statusCode: 201;
...DateResponseHeader;
...ContentMd5ResponseHeader;
...ContentCrc64ResponseHeader;
...IsServerEncryptedResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
...StructuredBodyTypeResponseHeader;
},
"application/octet-stream"
>;
Expand Down Expand Up @@ -2077,7 +2127,7 @@ namespace Storage.Blob {
...DateResponseHeader;
...ContentMd5ResponseHeader;
...ContentCrc64ResponseHeader;
...IsServerEncryptedResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
}
Expand Down Expand Up @@ -2128,7 +2178,8 @@ namespace Storage.Blob {
...ContentMd5ResponseHeader;
...ContentCrc64ResponseHeader;
...VersionIdResponseHeader;
...IsServerEncryptedResponseHeader;
...DateResponseHeader;
...RequestServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
}
Expand Down Expand Up @@ -2161,6 +2212,7 @@ namespace Storage.Blob {
...LastModifiedResponseHeader;
...EtagResponseHeader;
...BlobContentLengthRequired;
...DateResponseHeader;
}
>;

Expand Down Expand Up @@ -2215,7 +2267,7 @@ namespace Storage.Blob {
...AcceptRangesResponseHeader;
...DateResponseHeader;
...BlobCommittedBlockCountResponseHeader;
...IsServerEncryptedResponseHeader;
...ServerEncryptedResponseHeader;
...EncryptionKeySha256ResponseHeader;
...EncryptionScopeResponseHeader;
...BlobContentMd5ResponseHeader;
Expand Down
Loading
Loading