Files
server_debian_macro/node_modules/@azure/keyvault-keys/dist/browser/keysModels.d.ts
2025-02-18 22:59:07 +00:00

669 lines
19 KiB
TypeScript

import * as coreClient from "@azure/core-client";
import { ExtendedCommonClientOptions } from "@azure/core-http-compat";
import { DeletionRecoveryLevel, JsonWebKeyOperation as KeyOperation, JsonWebKeyType as KeyType, KnownJsonWebKeyType as KnownKeyTypes } from "./generated/models/index.js";
import { KeyCurveName } from "./cryptographyClientModels.js";
export { KeyType, KnownKeyTypes, KeyOperation };
/**
* The latest supported Key Vault service API version
*/
export declare const LATEST_API_VERSION = "7.5";
/**
* The optional parameters accepted by the KeyVault's KeyClient
*/
export interface KeyClientOptions extends ExtendedCommonClientOptions {
/**
* The version of the KeyVault's service API to make calls against.
*/
serviceVersion?: string;
/**
* Whether to disable verification that the authentication challenge resource matches the Key Vault or Managed HSM domain.
* Defaults to false.
*/
disableChallengeResourceVerification?: boolean;
}
/**
* The optional parameters accepted by the KeyVault's CryptographyClient
*/
export interface CryptographyClientOptions extends KeyClientOptions {
}
/**
* As of http://tools.ietf.org/html/draft-ietf-jose-json-web-key-18
*/
export interface JsonWebKey {
/**
* Key identifier.
*/
kid?: string;
/**
* JsonWebKey Key Type (kty), as defined in
* https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. Possible values include:
* 'EC', 'EC-HSM', 'RSA', 'RSA-HSM', 'oct', "oct-HSM"
*/
kty?: KeyType;
/**
* Json web key operations. For more
* information on possible key operations, see KeyOperation.
*/
keyOps?: KeyOperation[];
/**
* RSA modulus.
*/
n?: Uint8Array;
/**
* RSA public exponent.
*/
e?: Uint8Array;
/**
* RSA private exponent, or the D component of an EC private key.
*/
d?: Uint8Array;
/**
* RSA private key parameter.
*/
dp?: Uint8Array;
/**
* RSA private key parameter.
*/
dq?: Uint8Array;
/**
* RSA private key parameter.
*/
qi?: Uint8Array;
/**
* RSA secret prime.
*/
p?: Uint8Array;
/**
* RSA secret prime, with `p < q`.
*/
q?: Uint8Array;
/**
* Symmetric key.
*/
k?: Uint8Array;
/**
* HSM Token, used with 'Bring Your Own Key'.
*/
t?: Uint8Array;
/**
* Elliptic curve name. For valid values, see KeyCurveName. Possible values include:
* 'P-256', 'P-384', 'P-521', 'P-256K'
*/
crv?: KeyCurveName;
/**
* X component of an EC public key.
*/
x?: Uint8Array;
/**
* Y component of an EC public key.
*/
y?: Uint8Array;
}
/**
* An interface representing a Key Vault Key, with its name, value and {@link KeyProperties}.
*/
export interface KeyVaultKey {
/**
* The key value.
*/
key?: JsonWebKey;
/**
* The name of the key.
*/
name: string;
/**
* Key identifier.
*/
id?: string;
/**
* JsonWebKey Key Type (kty), as defined in
* https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. Possible values include:
* 'EC', 'EC-HSM', 'RSA', 'RSA-HSM', 'oct', "oct-HSM"
*/
keyType?: KeyType;
/**
* Operations allowed on this key
*/
keyOperations?: KeyOperation[];
/**
* The properties of the key.
*/
properties: KeyProperties;
}
/**
* An interface representing the Properties of {@link KeyVaultKey}
*/
export interface KeyProperties {
/**
* Key identifier.
*/
id?: string;
/**
* The name of the key.
*/
name: string;
/**
* The vault URI.
*/
vaultUrl: string;
/**
* The version of the key. May be undefined.
*/
version?: string;
/**
* Determines whether the object is enabled.
*/
enabled?: boolean;
/**
* Not before date in UTC.
*/
notBefore?: Date;
/**
* Expiry date in UTC.
*/
expiresOn?: Date;
/**
* Application specific metadata in the form of key-value pairs.
*/
tags?: {
[propertyName: string]: string;
};
/**
* Creation time in UTC.
* **NOTE: This property will not be serialized. It can only be populated by
* the server.**
*/
readonly createdOn?: Date;
/**
* Last updated time in UTC.
* **NOTE: This property will not be serialized. It can only be populated by
* the server.**
*/
readonly updatedOn?: Date;
/**
* Reflects the deletion recovery level currently in effect for keys in the current vault.
* If it contains 'Purgeable' the key can be permanently deleted by a privileged
* user; otherwise, only the system can purge the key, at the end of the
* retention interval. Possible values include: 'Purgeable',
* 'Recoverable+Purgeable', 'Recoverable',
* 'Recoverable+ProtectedSubscription'
* **NOTE: This property will not be serialized. It can only be populated by
* the server.**
*/
readonly recoveryLevel?: DeletionRecoveryLevel;
/**
* The retention dates of the softDelete data.
* The value should be `>=7` and `<=90` when softDelete enabled.
* **NOTE: This property will not be serialized. It can only be populated by the server.**
*/
recoverableDays?: number;
/**
* True if the secret's lifetime is managed by
* key vault. If this is a secret backing a certificate, then managed will be
* true.
* **NOTE: This property will not be serialized. It can only be populated by
* the server.**
*/
readonly managed?: boolean;
/**
* Indicates whether the private key can be exported.
*/
exportable?: boolean;
/**
* A {@link KeyReleasePolicy} object specifying the rules under which the key can be exported.
*/
releasePolicy?: KeyReleasePolicy;
/**
* The underlying HSM Platform.
* NOTE: This property will not be serialized. It can only be populated by the server.
*/
readonly hsmPlatform?: string;
}
/**
* An interface representing a deleted Key Vault Key.
*/
export interface DeletedKey {
/**
* The key value.
*/
key?: JsonWebKey;
/**
* The name of the key.
*/
name: string;
/**
* Key identifier.
*/
id?: string;
/**
* JsonWebKey Key Type (kty), as defined in
* https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. Possible values include:
* 'EC', 'EC-HSM', 'RSA', 'RSA-HSM', 'oct', "oct-HSM"
*/
keyType?: KeyType;
/**
* Operations allowed on this key
*/
keyOperations?: KeyOperation[];
/**
* The properties of the key.
*/
properties: KeyProperties & {
/**
* The url of the recovery object, used to
* identify and recover the deleted key.
*/
readonly recoveryId?: string;
/**
* The time when the key is scheduled to be purged, in UTC
* **NOTE: This property will not be serialized. It can only be populated by
* the server.**
*/
readonly scheduledPurgeDate?: Date;
/**
* The time when the key was deleted, in UTC
* **NOTE: This property will not be serialized. It can only be populated by
* the server.**
*/
deletedOn?: Date;
};
}
/**
* The policy rules under which a key can be exported.
*/
export interface KeyReleasePolicy {
/**
* Content type and version of key release policy.
*
* Defaults to "application/json; charset=utf-8" if omitted.
*/
contentType?: string;
/**
* The policy rules under which the key can be released. Encoded based on the {@link KeyReleasePolicy.contentType}.
*
* For more information regarding the release policy grammar for Azure Key Vault, please refer to:
* - https://aka.ms/policygrammarkeys for Azure Key Vault release policy grammar.
* - https://aka.ms/policygrammarmhsm for Azure Managed HSM release policy grammar.
*/
encodedPolicy?: Uint8Array;
/** Marks a release policy as immutable. An immutable release policy cannot be changed or updated after being marked immutable. */
immutable?: boolean;
}
/**
* An interface representing the optional parameters that can be
* passed to {@link createKey}
*/
export interface CreateKeyOptions extends coreClient.OperationOptions {
/**
* Application specific metadata in the form of key-value pairs.
*/
tags?: {
[propertyName: string]: string;
};
/**
* Json web key operations. For more
* information on possible key operations, see KeyOperation.
*/
keyOps?: KeyOperation[];
/**
* Determines whether the object is enabled.
*/
enabled?: boolean;
/**
* Not before date in UTC.
*/
notBefore?: Date;
/**
* Expiry date in UTC.
*/
readonly expiresOn?: Date;
/**
* The key size in bits. For example: 2048, 3072, or 4096 for RSA.
*/
keySize?: number;
/**
* Elliptic curve name. For valid values, see KeyCurveName.
* Possible values include: 'P-256', 'P-384', 'P-521', 'P-256K'
*/
curve?: KeyCurveName;
/**
* Whether to import as a hardware key (HSM) or software key.
*/
hsm?: boolean;
/**
* Indicates whether the private key can be exported.
*/
exportable?: boolean;
/**
* A {@link KeyReleasePolicy} object specifying the rules under which the key can be exported.
*/
releasePolicy?: KeyReleasePolicy;
}
/**
* An interface representing the optional parameters that can be
* passed to {@link beginDeleteKey} and {@link beginRecoverDeletedKey}
*/
export interface KeyPollerOptions extends coreClient.OperationOptions {
/**
* Time between each polling
*/
intervalInMs?: number;
/**
* A serialized poller, used to resume an existing operation
*/
resumeFrom?: string;
}
/**
* An interface representing the optional parameters that can be
* passed to {@link beginDeleteKey}
*/
export interface BeginDeleteKeyOptions extends KeyPollerOptions {
}
/**
* An interface representing the optional parameters that can be
* passed to {@link beginRecoverDeletedKey}
*/
export interface BeginRecoverDeletedKeyOptions extends KeyPollerOptions {
}
/**
* An interface representing the optional parameters that can be
* passed to {@link createEcKey}
*/
export interface CreateEcKeyOptions extends CreateKeyOptions {
}
/**
* An interface representing the optional parameters that can be
* passed to {@link createRsaKey}
*/
export interface CreateRsaKeyOptions extends CreateKeyOptions {
/** The public exponent for a RSA key. */
publicExponent?: number;
}
/**
* An interface representing the optional parameters that can be
* passed to {@link createOctKey}
*/
export interface CreateOctKeyOptions extends CreateKeyOptions {
}
/**
* An interface representing the optional parameters that can be
* passed to {@link importKey}
*/
export interface ImportKeyOptions extends coreClient.OperationOptions {
/**
* Application specific metadata in the form of key-value pairs.
*/
tags?: {
[propertyName: string]: string;
};
/**
* Whether to import as a hardware key (HSM) or software key.
*/
hardwareProtected?: boolean;
/**
* Determines whether the object is enabled.
*/
enabled?: boolean;
/**
* Not before date in UTC.
*/
notBefore?: Date;
/**
* Expiry date in UTC.
*/
expiresOn?: Date;
/**
* Indicates whether the private key can be exported.
*/
exportable?: boolean;
/**
* A {@link KeyReleasePolicy} object specifying the rules under which the key can be exported.
*/
releasePolicy?: KeyReleasePolicy;
}
/**
* Options for {@link updateKeyProperties}.
*/
export interface UpdateKeyPropertiesOptions extends coreClient.OperationOptions {
/**
* Json web key operations. For more
* information on possible key operations, see KeyOperation.
*/
keyOps?: KeyOperation[];
/**
* Determines whether the object is enabled.
*/
enabled?: boolean;
/**
* Not before date in UTC.
*/
notBefore?: Date;
/**
* Expiry date in UTC.
*/
expiresOn?: Date;
/**
* Application specific metadata in the form of key-value pairs.
*/
tags?: {
[propertyName: string]: string;
};
/**
* A {@link KeyReleasePolicy} object specifying the rules under which the key can be exported.
* Only valid if the key is marked exportable, which cannot be changed after key creation.
*/
releasePolicy?: KeyReleasePolicy;
}
/**
* Options for {@link getKey}.
*/
export interface GetKeyOptions extends coreClient.OperationOptions {
/**
* The version of the secret to retrieve. If not
* specified the latest version of the secret will be retrieved.
*/
version?: string;
}
/**
* An interface representing optional parameters for KeyClient paged operations passed to {@link listKeys}.
*/
export interface ListKeysOptions extends coreClient.OperationOptions {
}
/**
* An interface representing optional parameters for KeyClient paged operations passed to {@link listPropertiesOfKeys}.
*/
export interface ListPropertiesOfKeysOptions extends coreClient.OperationOptions {
}
/**
* An interface representing optional parameters for KeyClient paged operations passed to {@link listPropertiesOfKeyVersions}.
*/
export interface ListPropertiesOfKeyVersionsOptions extends coreClient.OperationOptions {
}
/**
* An interface representing optional parameters for KeyClient paged operations passed to {@link listDeletedKeys}.
*/
export interface ListDeletedKeysOptions extends coreClient.OperationOptions {
}
/**
* Options for {@link getDeletedKey}.
*/
export interface GetDeletedKeyOptions extends coreClient.OperationOptions {
}
/**
* Options for {@link purgeDeletedKey}.
*/
export interface PurgeDeletedKeyOptions extends coreClient.OperationOptions {
}
/**
* @internal
* Options for {@link recoverDeletedKey}.
*/
export interface RecoverDeletedKeyOptions extends coreClient.OperationOptions {
}
/**
* @internal
* Options for {@link deleteKey}.
*/
export interface DeleteKeyOptions extends coreClient.OperationOptions {
}
/**
* Options for {@link backupKey}.
*/
export interface BackupKeyOptions extends coreClient.OperationOptions {
}
/**
* Options for {@link restoreKeyBackup}.
*/
export interface RestoreKeyBackupOptions extends coreClient.OperationOptions {
}
/**
* An interface representing the options of the cryptography API methods, go to the {@link CryptographyClient} for more information.
*/
export interface CryptographyOptions extends coreClient.OperationOptions {
}
/**
* Options for {@link KeyClient.getRandomBytes}
*/
export interface GetRandomBytesOptions extends coreClient.OperationOptions {
}
/**
* Options for {@link KeyClient.releaseKey}
*/
export interface ReleaseKeyOptions extends coreClient.OperationOptions {
/** A client provided nonce for freshness. */
nonce?: string;
/** The {@link KeyExportEncryptionAlgorithm} to for protecting the exported key material. */
algorithm?: KeyExportEncryptionAlgorithm;
/**
* The version of the key to release. Defaults to the latest version of the key if omitted.
*/
version?: string;
}
/**
* Result of the {@link KeyClient.releaseKey} operation.
*/
export interface ReleaseKeyResult {
/** A signed token containing the released key. */
value: string;
}
/** Known values of {@link KeyOperation} that the service accepts. */
export declare enum KnownKeyOperations {
/** Key operation - encrypt */
Encrypt = "encrypt",
/** Key operation - decrypt */
Decrypt = "decrypt",
/** Key operation - sign */
Sign = "sign",
/** Key operation - verify */
Verify = "verify",
/** Key operation - wrapKey */
WrapKey = "wrapKey",
/** Key operation - unwrapKey */
UnwrapKey = "unwrapKey",
/** Key operation - import */
Import = "import"
}
/** Known values of {@link KeyExportEncryptionAlgorithm} that the service accepts. */
export declare enum KnownKeyExportEncryptionAlgorithm {
/** CKM_RSA_AES_KEY_WRAP Key Export Encryption Algorithm */
CkmRsaAesKeyWrap = "CKM_RSA_AES_KEY_WRAP",
/** RSA_AES_KEY_WRAP_256 Key Export Encryption Algorithm */
RsaAesKeyWrap256 = "RSA_AES_KEY_WRAP_256",
/** RSA_AES_KEY_WRAP_384 Key Export Encryption Algorithm */
RsaAesKeyWrap384 = "RSA_AES_KEY_WRAP_384"
}
/**
* Defines values for KeyEncryptionAlgorithm.
* {@link KnownKeyExportEncryptionAlgorithm} can be used interchangeably with KeyEncryptionAlgorithm,
* this enum contains the known values that the service supports.
* ### Known values supported by the service
* **CKM_RSA_AES_KEY_WRAP** \
* **RSA_AES_KEY_WRAP_256** \
* **RSA_AES_KEY_WRAP_384**
*/
export type KeyExportEncryptionAlgorithm = string;
/**
* Options for {@link KeyClient.getCryptographyClient}.
*/
export interface GetCryptographyClientOptions {
/**
* The version of the key to use for cryptographic operations.
*
* When undefined, the latest version of the key will be used.
*/
keyVersion?: string;
}
/**
* Options for {@link KeyClient.rotateKey}
*/
export interface RotateKeyOptions extends coreClient.OperationOptions {
}
/**
* The properties of a key rotation policy that the client can set for a given key.
*
* You may also reset the key rotation policy to its default values by setting lifetimeActions to an empty array.
*/
export interface KeyRotationPolicyProperties {
/**
* Optional key expiration period used to define the duration after which a newly rotated key will expire, defined as an ISO 8601 duration.
*/
expiresIn?: string;
/**
* Actions that will be performed by Key Vault over the lifetime of a key.
*
* You may also pass an empty array to restore to its default values.
*/
lifetimeActions?: KeyRotationLifetimeAction[];
}
/**
* The complete key rotation policy that belongs to a key.
*/
export interface KeyRotationPolicy extends KeyRotationPolicyProperties {
/**
* The identifier of the Key Rotation Policy.
* May be undefined if a policy has not been explicitly set.
*/
readonly id?: string;
/**
* The created time in UTC.
* May be undefined if a policy has not been explicitly set.
*/
readonly createdOn?: Date;
/**
* The last updated time in UTC.
* May be undefined if a policy has not been explicitly set.
*/
readonly updatedOn?: Date;
}
/**
* An action and its corresponding trigger that will be performed by Key Vault over the lifetime of a key.
*/
export interface KeyRotationLifetimeAction {
/**
* Time after creation to attempt the specified action, defined as an ISO 8601 duration.
*/
timeAfterCreate?: string;
/**
* Time before expiry to attempt the specified action, defined as an ISO 8601 duration.
*/
timeBeforeExpiry?: string;
/**
* The action that will be executed.
*/
action: KeyRotationPolicyAction;
}
/**
* The action that will be executed.
*/
export type KeyRotationPolicyAction = "Rotate" | "Notify";
/**
* Options for {@link KeyClient.updateKeyRotationPolicy}
*/
export interface UpdateKeyRotationPolicyOptions extends coreClient.OperationOptions {
}
/**
* Options for {@link KeyClient.getRotationPolicy}
*/
export interface GetKeyRotationPolicyOptions extends coreClient.OperationOptions {
}
//# sourceMappingURL=keysModels.d.ts.map