in sdk/storage/storage-blob/src/sas/BlobSASSignatureValues.ts [1085:1166]
function SASSignatureValuesSanityCheckAndAutofill(
blobSASSignatureValues: BlobSASSignatureValues,
): BlobSASSignatureValues {
const version = blobSASSignatureValues.version ? blobSASSignatureValues.version : SERVICE_VERSION;
if (blobSASSignatureValues.snapshotTime && version < "2018-11-09") {
throw RangeError("'version' must be >= '2018-11-09' when providing 'snapshotTime'.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.snapshotTime) {
throw RangeError("Must provide 'blobName' when providing 'snapshotTime'.");
}
if (blobSASSignatureValues.versionId && version < "2019-10-10") {
throw RangeError("'version' must be >= '2019-10-10' when providing 'versionId'.");
}
if (blobSASSignatureValues.blobName === undefined && blobSASSignatureValues.versionId) {
throw RangeError("Must provide 'blobName' when providing 'versionId'.");
}
if (
blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.setImmutabilityPolicy &&
version < "2020-08-04"
) {
throw RangeError("'version' must be >= '2020-08-04' when provided 'i' permission.");
}
if (
blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.deleteVersion &&
version < "2019-10-10"
) {
throw RangeError("'version' must be >= '2019-10-10' when providing 'x' permission.");
}
if (
blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.permanentDelete &&
version < "2019-10-10"
) {
throw RangeError("'version' must be >= '2019-10-10' when providing 'y' permission.");
}
if (
blobSASSignatureValues.permissions &&
blobSASSignatureValues.permissions.tag &&
version < "2019-12-12"
) {
throw RangeError("'version' must be >= '2019-12-12' when providing 't' permission.");
}
if (
version < "2020-02-10" &&
blobSASSignatureValues.permissions &&
(blobSASSignatureValues.permissions.move || blobSASSignatureValues.permissions.execute)
) {
throw RangeError("'version' must be >= '2020-02-10' when providing the 'm' or 'e' permission.");
}
if (
version < "2021-04-10" &&
blobSASSignatureValues.permissions &&
(blobSASSignatureValues.permissions as ContainerSASPermissions).filterByTags
) {
throw RangeError("'version' must be >= '2021-04-10' when providing the 'f' permission.");
}
if (
version < "2020-02-10" &&
(blobSASSignatureValues.preauthorizedAgentObjectId || blobSASSignatureValues.correlationId)
) {
throw RangeError(
"'version' must be >= '2020-02-10' when providing 'preauthorizedAgentObjectId' or 'correlationId'.",
);
}
if (blobSASSignatureValues.encryptionScope && version < "2020-12-06") {
throw RangeError("'version' must be >= '2020-12-06' when provided 'encryptionScope' in SAS.");
}
blobSASSignatureValues.version = version;
return blobSASSignatureValues;
}