import * as cdk from 'aws-cdk-lib'; import * as iam from 'aws-cdk-lib/aws-iam'; import * as sec from 'aws-cdk-lib/aws-secretsmanager'; import * as constructs from 'constructs'; declare abstract class SharedSecret extends constructs.Construct implements sec.ISecret { private static setupCustomResource; protected readonly secret: sec.ISecret; private customResource; protected constructor(scope: constructs.IConstruct, id: string, secretName: string); get stack(): cdk.Stack; get env(): cdk.ResourceEnvironment; get encryptionKey(): cdk.aws_kms.IKey | undefined; get secretArn(): string; get secretFullArn(): string | undefined; get secretName(): string; get secretRef(): sec.SecretReference; get secretValue(): cdk.SecretValue; secretValueFromJson(key: string): cdk.SecretValue; grantRead(grantee: iam.IGrantable, versionStages?: string[]): iam.Grant; grantWrite(_grantee: iam.IGrantable): iam.Grant; addRotationSchedule(_id: string, _options: sec.RotationScheduleOptions): sec.RotationSchedule; addToResourcePolicy(_statement: iam.PolicyStatement): iam.AddToResourcePolicyResult; denyAccountRootDelete(): void; attach(_target: sec.ISecretAttachmentTarget): sec.ISecret; applyRemovalPolicy(_policy: cdk.RemovalPolicy): void; cfnDynamicReferenceKey(options?: cdk.SecretsManagerSecretOptions): string; } /** * A custom resource that resolves the Datadog API keys from a shared secret * @example * const datadogApiKey = DatadogSharedSecret.apiKeySecret(this); * * const datadogSecret = DatadogSharedSecret.credentialsSecret(this); * const datadogSite = datadogSecret.getSecret('Site'); * const datadogApiKey = datadogSecret.getSecret('ApiKey'); * const datadogApiKeyValue = datadogSecret.getSecretValue('ApiKey'); * const datadogApiKeyValue = datadogSecret.getSecretValue('ApplicationKey'); */ export declare class DatadogSharedSecret extends SharedSecret { /** * This static function resolves to the plain api-key secret, that can be used for the log forwarder or the Lambda instrumentation. */ static apiKeySecret(scope: constructs.Construct): DatadogSharedSecret; /** * This static function resolves to the json credentials secret that contains ['ApiKey', 'ApplicationKey', 'Site']. */ static credentialsSecret(scope: constructs.Construct): DatadogSharedCredentials; } type Field = 'ApplicationKey' | 'Site' | 'ApiKey'; export declare class DatadogSharedCredentials extends SharedSecret { getSecretValue(field: Field): cdk.SecretValue; getSecret(field: Field): cdk.aws_ecs.Secret; } export {};