81 lines
2.3 KiB
TypeScript
81 lines
2.3 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type { AccessKeyReference, IAccessKeyRef } from './iam.generated';
|
|
import type { IUser } from './user';
|
|
import type { IResource } from '../../core';
|
|
import { Resource, SecretValue } from '../../core';
|
|
/**
|
|
* Valid statuses for an IAM Access Key.
|
|
*/
|
|
export declare enum AccessKeyStatus {
|
|
/**
|
|
* An active access key. An active key can be used to make API calls.
|
|
*/
|
|
ACTIVE = "Active",
|
|
/**
|
|
* An inactive access key. An inactive key cannot be used to make API calls.
|
|
*/
|
|
INACTIVE = "Inactive",
|
|
/**
|
|
* An expired access key.
|
|
*/
|
|
EXPIRED = "Expired"
|
|
}
|
|
/**
|
|
* Represents an IAM Access Key.
|
|
*
|
|
* @see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html
|
|
*/
|
|
export interface IAccessKey extends IResource, IAccessKeyRef {
|
|
/**
|
|
* The Access Key ID.
|
|
*
|
|
* @attribute
|
|
*/
|
|
readonly accessKeyId: string;
|
|
/**
|
|
* The Secret Access Key.
|
|
*
|
|
* @attribute
|
|
*/
|
|
readonly secretAccessKey: SecretValue;
|
|
}
|
|
/**
|
|
* Properties for defining an IAM access key.
|
|
*/
|
|
export interface AccessKeyProps {
|
|
/**
|
|
* A CloudFormation-specific value that signifies the access key should be
|
|
* replaced/rotated. This value can only be incremented. Incrementing this
|
|
* value will cause CloudFormation to replace the Access Key resource.
|
|
*
|
|
* @default - No serial value
|
|
*/
|
|
readonly serial?: number;
|
|
/**
|
|
* The status of the access key. An Active access key is allowed to be used
|
|
* to make API calls; An Inactive key cannot.
|
|
*
|
|
* @default - The access key is active
|
|
*/
|
|
readonly status?: AccessKeyStatus;
|
|
/**
|
|
* The IAM user this key will belong to.
|
|
*
|
|
* Changing this value will result in the access key being deleted and a new
|
|
* access key (with a different ID and secret value) being assigned to the new
|
|
* user.
|
|
*/
|
|
readonly user: IUser;
|
|
}
|
|
/**
|
|
* Define a new IAM Access Key.
|
|
*/
|
|
export declare class AccessKey extends Resource implements IAccessKey {
|
|
/** Uniquely identifies this class. */
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
readonly accessKeyRef: AccessKeyReference;
|
|
readonly accessKeyId: string;
|
|
readonly secretAccessKey: SecretValue;
|
|
constructor(scope: Construct, id: string, props: AccessKeyProps);
|
|
}
|