Skip to content
27 changes: 27 additions & 0 deletions specification/storage/data-plane/BlobStorage/Common/models.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -1640,6 +1640,25 @@
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"

Check warning on line 1646 in specification/storage/data-plane/BlobStorage/Common/models.tsp

View workflow job for this annotation

GitHub Actions / TypeSpec Suppressions - Analyze Code

⚠️ New Suppression

Authors should avoid adding new suppressions and prefer fixing the underlying issue; reviewers should approve only when there is a clear, compelling justification and no reasonable alternative.
@encode("rfc7231")
@header("x-ms-access-tier-change-time")
accessTierChangeTime?: utcDateTime;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like this is missing the versioning decorator

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you'll need 2 of these due to the diff versions

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch! I missed the two @added. Fixed.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is still missing the added decorator

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right! I pushed another update

};

/** 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"

Check warning on line 1655 in specification/storage/data-plane/BlobStorage/Common/models.tsp

View workflow job for this annotation

GitHub Actions / TypeSpec Suppressions - Analyze Code

⚠️ New Suppression

Authors should avoid adding new suppressions and prefer fixing the underlying issue; reviewers should approve only when there is a clear, compelling justification and no reasonable alternative.
@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. */
Expand Down Expand Up @@ -1832,6 +1851,14 @@
contentCrc64?: bytes;
};

/** The content CRC64 response header. */
alias ContentCrc64ResponseHeaderV2026_10_06 = {
/** The CRC64 hash of the content. */
@added(Versions.v2026_10_06)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to duplicate the above to attach the @added decorator. Is there a better way?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately no :/ can you open an issue? I'll bring it up with the rest of the tsp team to see if there's any way this scenario can be improved

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@header("x-ms-content-crc64")
contentCrc64?: bytes;
};

/** The copy status response header. */
alias CopyStatusResponseHeader = {
/** Status of the copy operation. */
Expand Down
27 changes: 4 additions & 23 deletions specification/storage/data-plane/BlobStorage/Common/routes.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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;
Expand Down
20 changes: 20 additions & 0 deletions specification/storage/data-plane/BlobStorage/client.tsp
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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");
Expand Down