diff --git a/specification/storage/data-plane/BlobStorage/Common/models.tsp b/specification/storage/data-plane/BlobStorage/Common/models.tsp index 3d14b13ec0c0..7f0cb77bf852 100644 --- a/specification/storage/data-plane/BlobStorage/Common/models.tsp +++ b/specification/storage/data-plane/BlobStorage/Common/models.tsp @@ -1640,6 +1640,25 @@ alias LastAccessedResponseHeader = { lastAccessed?: utcDateTime; }; +/** The access tier change time response header */ +alias AccessTierChangeTimeResponseHeader = { + /** The time the tier was changed on the blob. This is only returned if the tier on the blob was ever set. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @encode("rfc7231") + @header("x-ms-access-tier-change-time") + accessTierChangeTime?: utcDateTime; +}; + +/** The access tier change time response header */ +alias AccessTierChangeTimeResponseHeaderV2026_10_06 = { + /** The time the tier was changed on the blob. This is only returned if the tier on the blob was ever set. */ + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" + @added(Versions.v2026_10_06) + @encode("rfc7231") + @header("x-ms-access-tier-change-time") + accessTierChangeTime?: utcDateTime; +}; + /** The is sealed response header. */ alias IsSealedResponseHeader = { /** Whether the blob is sealed. */ @@ -1832,6 +1851,14 @@ alias ContentCrc64ResponseHeader = { contentCrc64?: bytes; }; +/** The content CRC64 response header. */ +alias ContentCrc64ResponseHeaderV2026_10_06 = { + /** The CRC64 hash of the content. */ + @added(Versions.v2026_10_06) + @header("x-ms-content-crc64") + contentCrc64?: bytes; +}; + /** The copy status response header. */ alias CopyStatusResponseHeader = { /** Status of the copy operation. */ diff --git a/specification/storage/data-plane/BlobStorage/Common/routes.tsp b/specification/storage/data-plane/BlobStorage/Common/routes.tsp index 55735166e923..161d2b035414 100644 --- a/specification/storage/data-plane/BlobStorage/Common/routes.tsp +++ b/specification/storage/data-plane/BlobStorage/Common/routes.tsp @@ -844,12 +844,7 @@ interface Blob { @header("x-ms-access-tier-inferred") accessTierInferred?: boolean; - /** The time the tier was changed on the blob. This is only returned if the tier on the blob was ever set. */ - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @added(Versions.v2026_10_06) - @encode("rfc7231") - @header("x-ms-access-tier-change-time") - accessTierChangeTime?: utcDateTime; + ...AccessTierChangeTimeResponseHeaderV2026_10_06; /** The underlying tier of a smart tier blob. Only returned if the blob is in Smart tier. */ @added(Versions.v2026_10_06) @@ -921,12 +916,7 @@ interface Blob { @header("x-ms-access-tier-inferred") accessTierInferred?: boolean; - /** The time the tier was changed on the blob. This is only returned if the tier on the blob was ever set. */ - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @added(Versions.v2026_10_06) - @encode("rfc7231") - @header("x-ms-access-tier-change-time") - accessTierChangeTime?: utcDateTime; + ...AccessTierChangeTimeResponseHeaderV2026_10_06; /** The underlying tier of a smart tier blob. Only returned if the blob is in Smart tier. */ @added(Versions.v2026_10_06) @@ -1013,11 +1003,7 @@ interface Blob { @alternateType(string, "go") archiveStatus?: ArchiveStatus; - /** The time the tier was changed on the blob. This is only returned if the tier on the blob was ever set. */ - #suppress "@azure-tools/typespec-azure-core/known-encoding" "Existing API" - @encode("rfc7231") - @header("x-ms-access-tier-change-time") - accessTierChangeTime?: utcDateTime; + ...AccessTierChangeTimeResponseHeader; /** The underlying tier of a smart tier blob. Only returned if the blob is in Smart tier. */ @added(Versions.v2026_06_06) @@ -2238,12 +2224,7 @@ interface BlockBlob { ...EtagResponseHeader; ...LastModifiedResponseHeader; ...ContentMd5ResponseHeader; - - /** The CRC64 hash of the content. */ - @added(Versions.v2026_10_06) - @header("x-ms-content-crc64") - contentCrc64?: bytes; - + ...ContentCrc64ResponseHeaderV2026_10_06; ...VersionIdResponseHeader; ...RequestServerEncryptedResponseHeader; ...EncryptionKeySha256ResponseHeader; diff --git a/specification/storage/data-plane/BlobStorage/client.tsp b/specification/storage/data-plane/BlobStorage/client.tsp index be56100dcb78..01ce6e16d486 100644 --- a/specification/storage/data-plane/BlobStorage/client.tsp +++ b/specification/storage/data-plane/BlobStorage/client.tsp @@ -257,6 +257,16 @@ interface PageBlobClient extends Storage.Blob.PageBlob {} "accessTierChangedOn", "javascript" ); +@@clientName( + AccessTierChangeTimeResponseHeader.accessTierChangeTime, + "accessTierChangedOn", + "javascript" +); +@@clientName( + AccessTierChangeTimeResponseHeaderV2026_10_06.accessTierChangeTime, + "accessTierChangedOn", + "javascript" +); @@clientName(BlobProperties.creationTime, "createdOn", "javascript"); @@clientName( CreationTimeResponseHeader.creationTime, @@ -345,6 +355,16 @@ interface PageBlobClient extends Storage.Blob.PageBlob {} ); @@clientName(ContentMd5ResponseHeader.contentMd5, "contentMD5", "javascript"); +@@clientName( + ContentCrc64ResponseHeader.contentCrc64, + "xMsContentCrc64", + "javascript" +); +@@clientName( + ContentCrc64ResponseHeaderV2026_10_06.contentCrc64, + "xMsContentCrc64", + "javascript" +); @@alternateType(BlobProperties.contentLength, uint64, "rust"); @@alternateType(BlobContentLengthRequired.size, uint64, "rust");