@altostra/core
Version:
Core library for shared types and logic
41 lines (40 loc) • 1.69 kB
TypeScript
import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString";
import type { NaturalNumber } from "../../../common/CustomTypes/Numerics";
import type { AwsResourceCommon, CloudFormationTags } from "../common";
import type { CloudFormationValue } from "../IntrinsicFunctions";
export declare type SecretType = 'AWS::SecretsManager::Secret';
export interface Secret extends AwsResourceCommon {
Type: SecretType;
Properties: SecretProperties;
}
export interface CommonSecretProperties {
Description?: CloudFormationValue;
KmsKeyId?: CloudFormationValue;
Name?: NonEmptyString;
ReplicaRegions?: object;
Tags?: CloudFormationTags;
}
export interface SpecifiedSecretProperties extends CommonSecretProperties {
SecretString: CloudFormationValue;
}
export interface GeneratedSecretProperties extends CommonSecretProperties {
GenerateSecretString: GenerateSecretString;
}
export declare type SecretProperties = GeneratedSecretProperties | SpecifiedSecretProperties;
export interface CommonGenerateSecretString {
ExcludeCharacters?: string;
ExcludeLowercase?: boolean;
ExcludeNumbers?: boolean;
ExcludePunctuation?: boolean;
ExcludeUppercase?: boolean;
IncludeSpace?: boolean;
PasswordLength?: NaturalNumber;
RequireEachIncludedType?: boolean;
}
export interface GenerateJsonSecretStringProperties extends CommonGenerateSecretString {
GenerateStringKey: string;
SecretStringTemplate: string;
}
export interface GenerateTextSecretStringProperties extends CommonGenerateSecretString {
}
export declare type GenerateSecretString = GenerateJsonSecretStringProperties | GenerateTextSecretStringProperties;