import * as iam from "aws-cdk-lib/aws-iam"; import * as secretsmanager from "aws-cdk-lib/aws-secretsmanager"; import * as ssm from "aws-cdk-lib/aws-ssm"; import type * as constructs from "constructs"; /** * A plain text application parameter that will be stored * in AWS Parameter Store. Only used for non-sensitive values, * typically those commited directly in the IaC code. */ export interface PlainTextParameter { key: string; value: string; } /** * An AWS Secret that should hold a JSON object. * * This will provide a secret that liflig-properties can read. The final * parameter seen by the application will be the key given here and the * keys from the secret JSON object appended. */ export interface SecretParameter { key: string; secret: secretsmanager.ISecret; } /** * An AWS Secret that should hold a JSON object. * * This will provide a secret that liflig-properties can read. The final * parameter seen by the application will be the key given here and the * keys from the secret JSON object appended. */ export interface SecretByNameParameter { key: string; secretName: string; } export type Parameter = PlainTextParameter | SecretParameter | SecretByNameParameter; export interface ConfigureParametersProps { /** * Prefix used for parameter names. * Should start with '/' and end without '/'. */ ssmPrefix: string; parameters: Parameter[]; } export declare class ConfigureParameters { parameters: ssm.IParameter[]; ssmPrefix: string; private secrets; private configParameters; private secretParameters; constructor(scope: constructs.Construct, props: ConfigureParametersProps); grantRead(grantable: iam.IGrantable & constructs.IConstruct): void; /** * Produce a checksum-value that can be used as a kind of * nonce to trigger redeployment on parameter changes. * * Note: If the parameter references a token no change will be visible, * and a manual redeployment might be needed. */ get hashValue(): string; }