import type { SasIPRange } from "./sasIPRange.js"; import type { UserDelegationKey } from "./models.js"; /** * Protocols for generated SAS. */ export type SasProtocol = "https" | "https,http"; /** * Represents the components that make up an Azure SAS' query parameters. This type is not constructed directly * by the user; it is only generated by the {@link AccountSasSignatureValues} and {@link TableSasSignatureValues} * types. Once generated, it can be encoded into a `string` and appended to a URL directly (though caution should * be taken here in case there are existing query parameters, which might affect the appropriate means of appending * these query parameters). * * NOTE: Instances of this class are immutable. */ export declare class SasQueryParameters { /** * The Tables API version. */ readonly version: string; /** * Optional. Table name to generate the SAS for */ readonly tableName?: string; /** * Optional. The allowed HTTP protocol(s). */ readonly protocol?: SasProtocol; /** * Optional. The start time for this SAS token. */ readonly startsOn?: Date; /** * Optional only when identifier is provided. The expiry time for this SAS token. */ readonly expiresOn?: Date; /** * Optional only when identifier is provided. * Please refer to {@link AccountSasPermissions}, or {@link TableSasPermissions} for * more details. */ readonly permissions?: string; /** * Optional. The table services being accessed (only for Account SAS). Please refer to {@link AccountSasServices} * for more details. */ readonly services?: string; /** * Optional. The table resource types being accessed (only for Account SAS). Please refer to * {@link AccountSasResourceTypes} for more details. */ readonly resourceTypes?: string; /** * Optional. The signed identifier (only for {@link TableSasSignatureValues}). * * @see https://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy */ readonly identifier?: string; /** * The signature for the SAS token. */ readonly signature: string; /** * Inner value of getter ipRange. */ private readonly ipRangeInner?; /** * The Azure Active Directory object ID in GUID format. * Property of user delegation key. */ private readonly signedOid?; /** * The Azure Active Directory tenant ID in GUID format. * Property of user delegation key. */ private readonly signedTenantId?; /** * The date-time the key is active. * Property of user delegation key. */ private readonly signedStartsOn?; /** * The date-time the key expires. * Property of user delegation key. */ private readonly signedExpiresOn?; /** * Abbreviation of the Azure Table service that accepts the user delegation key. * Property of user delegation key. */ private readonly signedService?; /** * The service version that created the user delegation key. * Property of user delegation key. */ private readonly signedVersion?; /** * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key * to perform the action granted by the SAS. The Azure Table service will ensure that the owner of the user delegation key * has the required permissions before granting access but no additional permission check for the user specified in * this value will be performed. This is only used for User Delegation SAS. */ readonly preauthorizedAgentObjectId?: string; /** * A GUID value that will be logged in the table diagnostic logs and can be used to correlate SAS generation with table resource access. * This is only used for User Delegation SAS. */ readonly correlationId?: string; /** * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature. * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed. */ readonly startPartitionKey?: string; /** * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature. * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed. */ readonly startRowKey?: string; /** * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature. * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed. */ readonly endPartitionKey?: string; /** * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature. * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed. */ readonly endRowKey?: string; /** * Optional. IP range allowed for this SAS. * * @readonly */ get ipRange(): SasIPRange | undefined; /** * Creates an instance of SASQueryParameters. * * @param version - Representing the table service version * @param signature - Representing the signature for the SAS token * @param options - Optional. Options to construct the SASQueryParameters. */ constructor(version: string, signature: string, options?: SasQueryParametersOptions); /** * Encodes all SAS query parameters into a string that can be appended to a URL. * */ toString(): string; /** * A private helper method used to filter and append query key/value pairs into an array. * * @param queries - * @param key - * @param value - */ private tryAppendQueryParameter; } /** * Options to construct {@link SasQueryParameters}. */ export interface SasQueryParametersOptions { /** * Optional only when identifier is provided. * Please refer to {@link AccountSasPermissions}, or {@link TableSasPermissions} for * more details. */ permissions?: string; /** * Optional. Table name to generate the SAS for */ tableName?: string; /** * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSasServices} * for more details. */ services?: string; /** * Optional. The storage resource types being accessed (only for Account SAS). Please refer to * {@link AccountSasResourceTypes} for more details. */ resourceTypes?: string; /** * Optional. The allowed HTTP protocol(s). */ protocol?: SasProtocol; /** * Optional. The start time for this SAS token. */ startsOn?: Date; /** * Optional only when identifier is provided. The expiry time for this SAS token. */ expiresOn?: Date; /** * Optional. IP ranges allowed in this SAS. */ ipRange?: SasIPRange; /** * Optional. The signed identifier for access policy * * @see https://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy */ identifier?: string; /** * Optional. Specifies which resources are accessible via the SAS (only for {@link AccountSasSignatureValues}). * @see https://learn.microsoft.com/rest/api/storageservices/create-service-sas#specifying-the-signed-resource-blob-service-only */ resource?: string; /** * User delegation key properties. */ userDelegationKey?: UserDelegationKey; /** * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key * to perform the action granted by the SAS. The Azure Table service will ensure that the owner of the user delegation key * has the required permissions before granting access but no additional permission check for the user specified in * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}. * This is only used for User Delegation SAS. */ preauthorizedAgentObjectId?: string; /** * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access. * This is only used for User Delegation SAS. */ correlationId?: string; /** * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature. * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed. */ startPartitionKey?: string; /** * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature. * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed. */ startRowKey?: string; /** * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature. * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed. */ endPartitionKey?: string; /** * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature. * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed. */ endRowKey?: string; } //# sourceMappingURL=sasQueryParameters.d.ts.map