agent-claw: automated task changes

This commit is contained in:
daniel
2026-05-06 18:55:16 -05:00
parent 38905bb1e9
commit 732b00fb66
8494 changed files with 2018127 additions and 4 deletions

View File

@@ -0,0 +1,75 @@
import type { Endpoint } from './endpoint';
import type { IConnectable, ISecurityGroup } from '../../aws-ec2';
import type { ISecretAttachmentTarget } from '../../aws-secretsmanager';
import type { IResource } from '../../core';
import type { IDBClusterRef } from '../../interfaces/generated/aws-docdb-interfaces.generated';
/**
* Create a clustered database with a given number of instances.
*/
export interface IDatabaseCluster extends IResource, IConnectable, ISecretAttachmentTarget, IDBClusterRef {
/**
* Identifier of the cluster
*/
readonly clusterIdentifier: string;
/**
* Identifiers of the replicas
*/
readonly instanceIdentifiers: string[];
/**
* The endpoint to use for read/write operations
* @attribute Endpoint,Port
*/
readonly clusterEndpoint: Endpoint;
/**
* Endpoint to use for load-balanced read-only operations.
* @attribute ReadEndpoint
*/
readonly clusterReadEndpoint: Endpoint;
/**
* Endpoints which address each individual replica.
*/
readonly instanceEndpoints: Endpoint[];
/**
* The security group for this database cluster
*/
readonly securityGroupId: string;
}
/**
* Properties that describe an existing cluster instance
*/
export interface DatabaseClusterAttributes {
/**
* The database port
* @default - none
*/
readonly port?: number;
/**
* The security group of the database cluster
* @default - no security groups
*/
readonly securityGroup?: ISecurityGroup;
/**
* Identifier for the cluster
*/
readonly clusterIdentifier: string;
/**
* Identifier for the instances
* @default - no instance identifiers
*/
readonly instanceIdentifiers?: string[];
/**
* Cluster endpoint address
* @default - no cluster endpoint address
*/
readonly clusterEndpointAddress?: string;
/**
* Reader endpoint address
* @default - no reader endpoint address
*/
readonly readerEndpointAddress?: string;
/**
* Endpoint addresses of individual instances
* @default - no instance endpoint addresses
*/
readonly instanceEndpointAddresses?: string[];
}

View File

@@ -0,0 +1 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});

405
cdk/node_modules/aws-cdk-lib/aws-docdb/lib/cluster.d.ts generated vendored Normal file
View File

@@ -0,0 +1,405 @@
import type { Construct } from 'constructs';
import type { DatabaseClusterAttributes, IDatabaseCluster } from './cluster-ref';
import { Endpoint } from './endpoint';
import type { BackupProps, Login, RotationMultiUserOptions } from './props';
import * as ec2 from '../../aws-ec2';
import type { IRole } from '../../aws-iam';
import type * as kms from '../../aws-kms';
import * as logs from '../../aws-logs';
import type { CaCertificate } from '../../aws-rds';
import * as secretsmanager from '../../aws-secretsmanager';
import type { Duration } from '../../core';
import { RemovalPolicy, Resource } from '../../core';
import type { DBClusterReference, IDBClusterParameterGroupRef } from '../../interfaces/generated/aws-docdb-interfaces.generated';
/**
* ServerlessV2 scaling configuration for DocumentDB clusters
*/
export interface ServerlessV2ScalingConfiguration {
/**
* The minimum number of DocumentDB capacity units (DCUs) for a DocumentDB instance in a DocumentDB Serverless cluster.
*/
readonly minCapacity: number;
/**
* The maximum number of DocumentDB capacity units (DCUs) for a DocumentDB instance in a DocumentDB Serverless cluster.
*/
readonly maxCapacity: number;
}
/**
* The storage type of the DocDB cluster
*/
export declare enum StorageType {
/**
* Standard storage
*/
STANDARD = "standard",
/**
* I/O-optimized storage
*/
IOPT1 = "iopt1"
}
/**
* Properties for a new database cluster
*/
export interface DatabaseClusterProps {
/**
* What version of the database to start
*
* @default - the latest major version
*/
readonly engineVersion?: string;
/**
* The port the DocumentDB cluster will listen on
*
* @default DatabaseCluster.DEFAULT_PORT
*/
readonly port?: number;
/**
* Username and password for the administrative user
*/
readonly masterUser: Login;
/**
* Backup settings
*
* @default - Backup retention period for automated backups is 1 day.
* Backup preferred window is set to a 30-minute window selected at random from an
* 8-hour block of time for each AWS Region, occurring on a random day of the week.
* @see https://docs.aws.amazon.com/documentdb/latest/developerguide/backup-restore.db-cluster-snapshots.html#backup-restore.backup-window
*/
readonly backup?: BackupProps;
/**
* The KMS key for storage encryption.
*
* @default - default master key.
*/
readonly kmsKey?: kms.IKey;
/**
* Whether to enable storage encryption
*
* @default true
*/
readonly storageEncrypted?: boolean;
/**
* An optional identifier for the cluster
*
* @default - A name is automatically generated.
*/
readonly dbClusterName?: string;
/**
* Base identifier for instances
*
* Every replica is named by appending the replica number to this string, 1-based.
* Only applicable for provisioned clusters.
*
* @default - `dbClusterName` is used with the word "Instance" appended. If `dbClusterName` is not provided, the
* identifier is automatically generated.
*/
readonly instanceIdentifierBase?: string;
/**
* What type of instance to start for the replicas.
* Required for provisioned clusters, not applicable for serverless clusters.
*
* @default None
*/
readonly instanceType?: ec2.InstanceType;
/**
* Number of DocDB compute instances
* @default 1
*/
readonly instances?: number;
/**
* ServerlessV2 scaling configuration.
* When specified, the cluster will be created as a serverless cluster.
*
* @default None
*/
readonly serverlessV2ScalingConfiguration?: ServerlessV2ScalingConfiguration;
/**
* The identifier of the CA certificate used for the instances.
*
* Specifying or updating this property triggers a reboot.
*
* @see https://docs.aws.amazon.com/documentdb/latest/developerguide/ca_cert_rotation.html
*
* @default - DocumentDB will choose a certificate authority
*/
readonly caCertificate?: CaCertificate;
/**
* What subnets to run the DocumentDB instances in.
*
* Must be at least 2 subnets in two different AZs.
*/
readonly vpc: ec2.IVpc;
/**
* Where to place the instances within the VPC
*
* @default private subnets
*/
readonly vpcSubnets?: ec2.SubnetSelection;
/**
* Security group.
*
* @default a new security group is created.
*/
readonly securityGroup?: ec2.ISecurityGroup;
/**
* The DB parameter group to associate with the instance.
*
* @default no parameter group
*/
readonly parameterGroup?: IDBClusterParameterGroupRef;
/**
* A weekly time range in which maintenance should preferably execute.
*
* Must be at least 30 minutes long.
*
* Example: 'tue:04:17-tue:04:47'
*
* @default - 30-minute window selected at random from an 8-hour block of time for
* each AWS Region, occurring on a random day of the week.
* @see https://docs.aws.amazon.com/documentdb/latest/developerguide/db-instance-maintain.html#maintenance-window
*/
readonly preferredMaintenanceWindow?: string;
/**
* The removal policy to apply when the cluster and its instances are removed
* or replaced during a stack update, or when the stack is deleted. This
* removal policy also applies to the implicit security group created for the
* cluster if one is not supplied as a parameter.
*
* When set to `SNAPSHOT`, the removal policy for the instances and the security group
* will default to `DESTROY` as those resources do not support the policy.
*
* Use the `instanceRemovalPolicy` and `securityGroupRemovalPolicy` to change the behavior.
*
* @default - Retain cluster.
*/
readonly removalPolicy?: RemovalPolicy;
/**
* Specifies whether this cluster can be deleted. If deletionProtection is
* enabled, the cluster cannot be deleted unless it is modified and
* deletionProtection is disabled. deletionProtection protects clusters from
* being accidentally deleted.
*
* @default - false
*/
readonly deletionProtection?: boolean;
/**
* Whether the profiler logs should be exported to CloudWatch.
* Note that you also have to configure the profiler log export in the Cluster's Parameter Group.
*
* @see https://docs.aws.amazon.com/documentdb/latest/developerguide/profiling.html#profiling.enable-profiling
* @default false
*/
readonly exportProfilerLogsToCloudWatch?: boolean;
/**
* Whether the audit logs should be exported to CloudWatch.
* Note that you also have to configure the audit log export in the Cluster's Parameter Group.
*
* @see https://docs.aws.amazon.com/documentdb/latest/developerguide/event-auditing.html#event-auditing-enabling-auditing
* @default false
*/
readonly exportAuditLogsToCloudWatch?: boolean;
/**
* The number of days log events are kept in CloudWatch Logs. When updating
* this property, unsetting it doesn't remove the log retention policy. To
* remove the retention policy, set the value to `Infinity`.
*
* @default - logs never expire
*/
readonly cloudWatchLogsRetention?: logs.RetentionDays;
/**
* The IAM role for the Lambda function associated with the custom resource
* that sets the retention policy.
*
* @default - a new role is created.
*/
readonly cloudWatchLogsRetentionRole?: IRole;
/**
* A value that indicates whether to enable Performance Insights for the instances in the DB Cluster.
*
* @default - false
*/
readonly enablePerformanceInsights?: boolean;
/**
* The removal policy to apply to the cluster's instances.
*
* Cannot be set to `SNAPSHOT`.
*
* @default - `RemovalPolicy.DESTROY` when `removalPolicy` is set to `SNAPSHOT`, `removalPolicy` otherwise.
*
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html
*/
readonly instanceRemovalPolicy?: RemovalPolicy;
/**
* The removal policy to apply to the cluster's security group.
*
* Cannot be set to `SNAPSHOT`.
*
* @default - `RemovalPolicy.DESTROY` when `removalPolicy` is set to `SNAPSHOT`, `removalPolicy` otherwise.
*
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html
*/
readonly securityGroupRemovalPolicy?: RemovalPolicy;
/**
* Whether to copy tags to the snapshot when a snapshot is created.
*
* @default - false
*/
readonly copyTagsToSnapshot?: boolean;
/**
* The storage type of the DocDB cluster.
*
* I/O-optimized storage is supported starting with engine version 5.0.0.
* @see https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-storage-configs.html
* @see https://docs.aws.amazon.com/documentdb/latest/developerguide/release-notes.html#release-notes.11-21-2023
*
* @default StorageType.STANDARD
*/
readonly storageType?: StorageType;
}
/**
* A new or imported clustered database.
*/
declare abstract class DatabaseClusterBase extends Resource implements IDatabaseCluster {
/**
* Identifier of the cluster
*/
abstract readonly clusterIdentifier: string;
/**
* Identifiers of the replicas
*/
abstract readonly instanceIdentifiers: string[];
/**
* The endpoint to use for read/write operations
*/
abstract readonly clusterEndpoint: Endpoint;
/**
* Endpoint to use for load-balanced read-only operations.
*/
abstract readonly clusterReadEndpoint: Endpoint;
/**
* Endpoints which address each individual replica.
*/
abstract readonly instanceEndpoints: Endpoint[];
/**
* Access to the network connections
*/
abstract readonly connections: ec2.Connections;
/**
* Security group identifier of this database
*/
abstract readonly securityGroupId: string;
/**
* A reference to this cluster.
*/
get dbClusterRef(): DBClusterReference;
/**
* Renders the secret attachment target specifications.
*/
asSecretAttachmentTarget(): secretsmanager.SecretAttachmentTargetProps;
}
/**
* Create a clustered database with a given number of instances.
*
* @resource AWS::DocDB::DBCluster
*/
export declare class DatabaseCluster extends DatabaseClusterBase {
/**
* Uniquely identifies this class.
*/
static readonly PROPERTY_INJECTION_ID: string;
/**
* The default number of instances in the DocDB cluster if none are
* specified
*/
static readonly DEFAULT_NUM_INSTANCES = 1;
/**
* The default port Document DB listens on
*/
static readonly DEFAULT_PORT = 27017;
/**
* Import an existing DatabaseCluster from properties
*/
static fromDatabaseClusterAttributes(scope: Construct, id: string, attrs: DatabaseClusterAttributes): IDatabaseCluster;
/**
* The single user secret rotation application.
*/
private static readonly SINGLE_USER_ROTATION_APPLICATION;
/**
* The multi user secret rotation application.
*/
private static readonly MULTI_USER_ROTATION_APPLICATION;
/**
* Identifier of the cluster
*/
readonly clusterIdentifier: string;
/**
* The endpoint to use for read/write operations
*/
readonly clusterEndpoint: Endpoint;
/**
* Endpoint to use for load-balanced read-only operations.
*/
readonly clusterReadEndpoint: Endpoint;
/**
* The resource id for the cluster; for example: cluster-ABCD1234EFGH5678IJKL90MNOP. The cluster ID uniquely
* identifies the cluster and is used in things like IAM authentication policies.
* @attribute ClusterResourceId
*/
readonly clusterResourceIdentifier: string;
/**
* The connections object to implement IConnectable
*/
readonly connections: ec2.Connections;
/**
* Identifiers of the replicas
*/
readonly instanceIdentifiers: string[];
/**
* Endpoints which address each individual replica.
*/
readonly instanceEndpoints: Endpoint[];
/**
* Security group identifier of this database
*/
readonly securityGroupId: string;
/**
* The secret attached to this cluster
*/
readonly secret?: secretsmanager.ISecret;
/**
* The underlying CloudFormation resource for a database cluster.
*/
private readonly cluster;
/**
* The VPC where the DB subnet group is created.
*/
private readonly vpc;
/**
* The subnets used by the DB subnet group.
*/
private readonly vpcSubnets?;
constructor(scope: Construct, id: string, props: DatabaseClusterProps);
/**
* Sets up CloudWatch log retention if configured.
*/
private setLogRetention;
private getInstanceRemovalPolicy;
private getSecurityGroupRemovalPolicy;
/**
* Adds the single user rotation of the master password to this cluster.
*
* @param [automaticallyAfter=Duration.days(30)] Specifies the number of days after the previous rotation
* before Secrets Manager triggers the next automatic rotation.
*/
addRotationSingleUser(automaticallyAfter?: Duration): secretsmanager.SecretRotation;
/**
* Adds the multi user rotation to this cluster.
*/
addRotationMultiUser(id: string, options: RotationMultiUserOptions): secretsmanager.SecretRotation;
/**
* Adds security groups to this cluster.
* @param securityGroups The security groups to add.
*/
addSecurityGroups(...securityGroups: ec2.ISecurityGroup[]): void;
}
export {};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,53 @@
import type { Construct } from 'constructs';
import type { IKey } from '../../aws-kms';
import type { ISecret } from '../../aws-secretsmanager';
import { Secret } from '../../aws-secretsmanager';
/**
* Construction properties for a DatabaseSecret.
*/
export interface DatabaseSecretProps {
/**
* The username.
*/
readonly username: string;
/**
* The KMS key to use to encrypt the secret.
*
* @default default master key
*/
readonly encryptionKey?: IKey;
/**
* The physical name of the secret
*
* @default Secretsmanager will generate a physical name for the secret
*/
readonly secretName?: string;
/**
* The master secret which will be used to rotate this secret.
*
* @default - no master secret information will be included
*/
readonly masterSecret?: ISecret;
/**
* Characters to not include in the generated password.
*
* @default "\"@/"
*/
readonly excludeCharacters?: string;
}
/**
*
* A database secret.
*
* @resource AWS::SecretsManager::Secret
*/
export declare class DatabaseSecret extends Secret {
/** Uniquely identifies this class. */
static readonly PROPERTY_INJECTION_ID: string;
/**
* the excluded characters for this Secret
* @internal
*/
readonly _excludedCharacters: string;
constructor(scope: Construct, id: string, props: DatabaseSecretProps);
}

View File

@@ -0,0 +1 @@
"use strict";var __esDecorate=exports&&exports.__esDecorate||function(ctor,descriptorIn,decorators,contextIn,initializers,extraInitializers){function accept(f){if(f!==void 0&&typeof f!="function")throw new TypeError("Function expected");return f}for(var kind=contextIn.kind,key=kind==="getter"?"get":kind==="setter"?"set":"value",target=!descriptorIn&&ctor?contextIn.static?ctor:ctor.prototype:null,descriptor=descriptorIn||(target?Object.getOwnPropertyDescriptor(target,contextIn.name):{}),_,done=!1,i=decorators.length-1;i>=0;i--){var context={};for(var p in contextIn)context[p]=p==="access"?{}:contextIn[p];for(var p in contextIn.access)context.access[p]=contextIn.access[p];context.addInitializer=function(f){if(done)throw new TypeError("Cannot add initializers after decoration has completed");extraInitializers.push(accept(f||null))};var result=(0,decorators[i])(kind==="accessor"?{get:descriptor.get,set:descriptor.set}:descriptor[key],context);if(kind==="accessor"){if(result===void 0)continue;if(result===null||typeof result!="object")throw new TypeError("Object expected");(_=accept(result.get))&&(descriptor.get=_),(_=accept(result.set))&&(descriptor.set=_),(_=accept(result.init))&&initializers.unshift(_)}else(_=accept(result))&&(kind==="field"?initializers.unshift(_):descriptor[key]=_)}target&&Object.defineProperty(target,contextIn.name,descriptor),done=!0},__runInitializers=exports&&exports.__runInitializers||function(thisArg,initializers,value){for(var useValue=arguments.length>2,i=0;i<initializers.length;i++)value=useValue?initializers[i].call(thisArg,value):initializers[i].call(thisArg);return useValue?value:void 0};Object.defineProperty(exports,"__esModule",{value:!0}),exports.DatabaseSecret=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var aws_secretsmanager_1=()=>{var tmp=require("../../aws-secretsmanager");return aws_secretsmanager_1=()=>tmp,tmp},core_1=()=>{var tmp=require("../../core");return core_1=()=>tmp,tmp},metadata_resource_1=()=>{var tmp=require("../../core/lib/metadata-resource");return metadata_resource_1=()=>tmp,tmp},prop_injectable_1=()=>{var tmp=require("../../core/lib/prop-injectable");return prop_injectable_1=()=>tmp,tmp};let DatabaseSecret=(()=>{let _classDecorators=[prop_injectable_1().propertyInjectable],_classDescriptor,_classExtraInitializers=[],_classThis,_classSuper=aws_secretsmanager_1().Secret;var DatabaseSecret2=class extends _classSuper{static{_classThis=this}static{const _metadata=typeof Symbol=="function"&&Symbol.metadata?Object.create(_classSuper[Symbol.metadata]??null):void 0;__esDecorate(null,_classDescriptor={value:_classThis},_classDecorators,{kind:"class",name:_classThis.name,metadata:_metadata},null,_classExtraInitializers),DatabaseSecret2=_classThis=_classDescriptor.value,_metadata&&Object.defineProperty(_classThis,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:_metadata})}static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_docdb.DatabaseSecret",version:"2.252.0"};static PROPERTY_INJECTION_ID="aws-cdk-lib.aws-docdb.DatabaseSecret";_excludedCharacters;constructor(scope,id,props){try{jsiiDeprecationWarnings().aws_cdk_lib_aws_docdb_DatabaseSecretProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,DatabaseSecret2),error}const excludedCharacters=props.excludeCharacters??'"@/';super(scope,id,{secretName:props.secretName,description:`Generated by the CDK for stack: ${core_1().Aws.STACK_NAME}`,encryptionKey:props.encryptionKey,generateSecretString:{passwordLength:41,secretStringTemplate:JSON.stringify({username:props.username,masterarn:props.masterSecret?.secretArn}),generateStringKey:"password",excludeCharacters:excludedCharacters}}),(0,metadata_resource_1().addConstructMetadata)(this,props),this._excludedCharacters=excludedCharacters}static{__runInitializers(_classThis,_classExtraInitializers)}};return DatabaseSecret2=_classThis})();exports.DatabaseSecret=DatabaseSecret;

View File

@@ -0,0 +1,33 @@
export interface MetricWithDims<D> {
readonly namespace: string;
readonly metricName: string;
readonly statistic: string;
readonly dimensionsMap: D;
}
export declare class DocDBMetrics {
static cpuUtilizationAverage(this: void, dimensions: {
DBInstanceIdentifier: string;
}): MetricWithDims<{
DBInstanceIdentifier: string;
}>;
static databaseConnectionsAverage(this: void, dimensions: {
DBInstanceIdentifier: string;
}): MetricWithDims<{
DBInstanceIdentifier: string;
}>;
static engineUptimeAverage(this: void, dimensions: {
DBInstanceIdentifier: string;
}): MetricWithDims<{
DBInstanceIdentifier: string;
}>;
static readThroughputSum(this: void, dimensions: {
DBInstanceIdentifier: string;
}): MetricWithDims<{
DBInstanceIdentifier: string;
}>;
static writeThroughputSum(this: void, dimensions: {
DBInstanceIdentifier: string;
}): MetricWithDims<{
DBInstanceIdentifier: string;
}>;
}

View File

@@ -0,0 +1 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DocDBMetrics=void 0;class DocDBMetrics{static cpuUtilizationAverage(dimensions){return{namespace:"AWS/DocDB",metricName:"CPUUtilization",dimensionsMap:dimensions,statistic:"Average"}}static databaseConnectionsAverage(dimensions){return{namespace:"AWS/DocDB",metricName:"DatabaseConnections",dimensionsMap:dimensions,statistic:"Average"}}static engineUptimeAverage(dimensions){return{namespace:"AWS/DocDB",metricName:"EngineUptime",dimensionsMap:dimensions,statistic:"Average"}}static readThroughputSum(dimensions){return{namespace:"AWS/DocDB",metricName:"ReadThroughput",dimensionsMap:dimensions,statistic:"Sum"}}static writeThroughputSum(dimensions){return{namespace:"AWS/DocDB",metricName:"WriteThroughput",dimensionsMap:dimensions,statistic:"Sum"}}}exports.DocDBMetrics=DocDBMetrics;

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,54 @@
/**
* Connection endpoint of a database cluster or instance
*
* Consists of a combination of hostname and port.
*/
export declare class Endpoint {
/**
* The minimum port value
*/
private static readonly MIN_PORT;
/**
* The maximum port value
*/
private static readonly MAX_PORT;
/**
* Determines if a port is valid
*
* @param port: The port number
* @returns boolean whether the port is valid
*/
private static isValidPort;
/**
* The hostname of the endpoint
*/
readonly hostname: string;
/**
* The port number of the endpoint.
*
* This can potentially be a CDK token. If you need to embed the port in a string (e.g. instance user data script),
* use `Endpoint.portAsString`.
*/
readonly port: number;
/**
* Constructs an Endpoint instance.
*
* @param address - The hostname or address of the endpoint
* @param port - The port number of the endpoint
*/
constructor(address: string, port: number);
/**
* The combination of ``HOSTNAME:PORT`` for this endpoint.
*/
get socketAddress(): string;
/**
* Returns the port number as a string representation that can be used for embedding within other strings.
*
* This is intended to deal with CDK's token system. Numeric CDK tokens are not expanded when their string
* representation is embedded in a string. This function returns the port either as an unresolved string token or
* as a resolved string representation of the port value.
*
* @returns {string} An (un)resolved string representation of the endpoint's port number
*/
portAsString(): string;
}

View File

@@ -0,0 +1 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Endpoint=void 0;const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var core_1=()=>{var tmp=require("../../core");return core_1=()=>tmp,tmp},literal_string_1=()=>{var tmp=require("../../core/lib/private/literal-string");return literal_string_1=()=>tmp,tmp};class Endpoint{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_docdb.Endpoint",version:"2.252.0"};static MIN_PORT=1;static MAX_PORT=65535;static isValidPort(port){return Number.isInteger(port)&&port>=Endpoint.MIN_PORT&&port<=Endpoint.MAX_PORT}hostname;port;constructor(address,port){if(!core_1().Token.isUnresolved(port)&&!Endpoint.isValidPort(port))throw new(core_1()).UnscopedValidationError((0,literal_string_1().lit)`MustBePortIntegerBetween`,`Port must be an integer between [${Endpoint.MIN_PORT}, ${Endpoint.MAX_PORT}] but got: ${port}`);this.hostname=address,this.port=port}get socketAddress(){const portDesc=core_1().Token.isUnresolved(this.port)?core_1().Token.asString(this.port):this.port;return`${this.hostname}:${portDesc}`}portAsString(){return core_1().Token.isUnresolved(this.port)?core_1().Token.asString(this.port):this.port.toString()}}exports.Endpoint=Endpoint;

View File

@@ -0,0 +1,9 @@
export * from './cluster';
export * from './cluster-ref';
export * from './database-secret';
export * from './endpoint';
export * from './instance';
export * from './parameter-group';
export * from './props';
export { CaCertificate } from '../../aws-rds';
export * from './docdb.generated';

1
cdk/node_modules/aws-cdk-lib/aws-docdb/lib/index.js generated vendored Normal file
View File

@@ -0,0 +1 @@
"use strict";var __createBinding=exports&&exports.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__exportStar=exports&&exports.__exportStar||function(m,exports2){for(var p in m)p!=="default"&&!Object.prototype.hasOwnProperty.call(exports2,p)&&__createBinding(exports2,m,p)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.CaCertificate=void 0;var _noFold;exports.StorageType=void 0,Object.defineProperty(exports,_noFold="StorageType",{enumerable:!0,configurable:!0,get:()=>{var value=require("./cluster").StorageType;return Object.defineProperty(exports,_noFold="StorageType",{enumerable:!0,configurable:!0,value}),value}}),exports.DatabaseCluster=void 0,Object.defineProperty(exports,_noFold="DatabaseCluster",{enumerable:!0,configurable:!0,get:()=>{var value=require("./cluster").DatabaseCluster;return Object.defineProperty(exports,_noFold="DatabaseCluster",{enumerable:!0,configurable:!0,value}),value}}),exports.DatabaseSecret=void 0,Object.defineProperty(exports,_noFold="DatabaseSecret",{enumerable:!0,configurable:!0,get:()=>{var value=require("./database-secret").DatabaseSecret;return Object.defineProperty(exports,_noFold="DatabaseSecret",{enumerable:!0,configurable:!0,value}),value}}),exports.Endpoint=void 0,Object.defineProperty(exports,_noFold="Endpoint",{enumerable:!0,configurable:!0,get:()=>{var value=require("./endpoint").Endpoint;return Object.defineProperty(exports,_noFold="Endpoint",{enumerable:!0,configurable:!0,value}),value}}),exports.DatabaseInstance=void 0,Object.defineProperty(exports,_noFold="DatabaseInstance",{enumerable:!0,configurable:!0,get:()=>{var value=require("./instance").DatabaseInstance;return Object.defineProperty(exports,_noFold="DatabaseInstance",{enumerable:!0,configurable:!0,value}),value}}),exports.ClusterParameterGroup=void 0,Object.defineProperty(exports,_noFold="ClusterParameterGroup",{enumerable:!0,configurable:!0,get:()=>{var value=require("./parameter-group").ClusterParameterGroup;return Object.defineProperty(exports,_noFold="ClusterParameterGroup",{enumerable:!0,configurable:!0,value}),value}});var aws_rds_1=()=>{var tmp=require("../../aws-rds");return aws_rds_1=()=>tmp,tmp};Object.defineProperty(exports,"CaCertificate",{enumerable:!0,get:function(){return aws_rds_1().CaCertificate}}),exports.CfnDBCluster=void 0,Object.defineProperty(exports,_noFold="CfnDBCluster",{enumerable:!0,configurable:!0,get:()=>{var value=require("./docdb.generated").CfnDBCluster;return Object.defineProperty(exports,_noFold="CfnDBCluster",{enumerable:!0,configurable:!0,value}),value}}),exports.CfnDBClusterParameterGroup=void 0,Object.defineProperty(exports,_noFold="CfnDBClusterParameterGroup",{enumerable:!0,configurable:!0,get:()=>{var value=require("./docdb.generated").CfnDBClusterParameterGroup;return Object.defineProperty(exports,_noFold="CfnDBClusterParameterGroup",{enumerable:!0,configurable:!0,value}),value}}),exports.CfnDBInstance=void 0,Object.defineProperty(exports,_noFold="CfnDBInstance",{enumerable:!0,configurable:!0,get:()=>{var value=require("./docdb.generated").CfnDBInstance;return Object.defineProperty(exports,_noFold="CfnDBInstance",{enumerable:!0,configurable:!0,value}),value}}),exports.CfnDBSubnetGroup=void 0,Object.defineProperty(exports,_noFold="CfnDBSubnetGroup",{enumerable:!0,configurable:!0,get:()=>{var value=require("./docdb.generated").CfnDBSubnetGroup;return Object.defineProperty(exports,_noFold="CfnDBSubnetGroup",{enumerable:!0,configurable:!0,value}),value}}),exports.CfnEventSubscription=void 0,Object.defineProperty(exports,_noFold="CfnEventSubscription",{enumerable:!0,configurable:!0,get:()=>{var value=require("./docdb.generated").CfnEventSubscription;return Object.defineProperty(exports,_noFold="CfnEventSubscription",{enumerable:!0,configurable:!0,value}),value}}),exports.CfnGlobalCluster=void 0,Object.defineProperty(exports,_noFold="CfnGlobalCluster",{enumerable:!0,configurable:!0,get:()=>{var value=require("./docdb.generated").CfnGlobalCluster;return Object.defineProperty(exports,_noFold="CfnGlobalCluster",{enumerable:!0,configurable:!0,value}),value}});

View File

@@ -0,0 +1,188 @@
import type { Construct } from 'constructs';
import type { IDatabaseCluster } from './cluster-ref';
import { Endpoint } from './endpoint';
import * as ec2 from '../../aws-ec2';
import type { CaCertificate } from '../../aws-rds';
import * as cdk from '../../core';
import type { IDBClusterRef, IDBInstanceRef, DBInstanceReference } from '../../interfaces/generated/aws-docdb-interfaces.generated';
/**
* A database instance
*/
export interface IDatabaseInstance extends cdk.IResource, IDBInstanceRef {
/**
* The instance identifier.
*/
readonly instanceIdentifier: string;
/**
* The instance arn.
*/
readonly instanceArn: string;
/**
* The instance endpoint address.
*
* @attribute Endpoint
*/
readonly dbInstanceEndpointAddress: string;
/**
* The instance endpoint port.
*
* @attribute Port
*/
readonly dbInstanceEndpointPort: string;
/**
* The instance endpoint.
*/
readonly instanceEndpoint: Endpoint;
}
/**
* Properties that describe an existing instance
*/
export interface DatabaseInstanceAttributes {
/**
* The instance identifier.
*/
readonly instanceIdentifier: string;
/**
* The endpoint address.
*/
readonly instanceEndpointAddress: string;
/**
* The database port.
*/
readonly port: number;
}
/**
* A new or imported database instance.
*/
declare abstract class DatabaseInstanceBase extends cdk.Resource implements IDatabaseInstance {
/**
* Import an existing database instance.
*/
static fromDatabaseInstanceAttributes(scope: Construct, id: string, attrs: DatabaseInstanceAttributes): IDatabaseInstance;
/**
* @inheritdoc
*/
abstract readonly instanceIdentifier: string;
/**
* @inheritdoc
*/
abstract readonly dbInstanceEndpointAddress: string;
/**
* @inheritdoc
*/
abstract readonly dbInstanceEndpointPort: string;
/**
* @inheritdoc
*/
abstract readonly instanceEndpoint: Endpoint;
/**
* The instance arn.
*/
get instanceArn(): string;
/**
* A reference to this instance.
*/
get dbInstanceRef(): DBInstanceReference;
}
/**
* Construction properties for a DatabaseInstanceNew
*/
export interface DatabaseInstanceProps {
/**
* The DocumentDB database cluster the instance should launch into.
*/
readonly cluster: IDBClusterRef;
/**
* The name of the compute and memory capacity classes.
*/
readonly instanceType: ec2.InstanceType;
/**
* The name of the Availability Zone where the DB instance will be located.
*
* @default - no preference
*/
readonly availabilityZone?: string;
/**
* A name for the DB instance. If you specify a name, AWS CloudFormation
* converts it to lowercase.
*
* @default - a CloudFormation generated name
*/
readonly dbInstanceName?: string;
/**
* Indicates that minor engine upgrades are applied automatically to the
* DB instance during the maintenance window.
*
* @default true
*/
readonly autoMinorVersionUpgrade?: boolean;
/**
* The weekly time range (in UTC) during which system maintenance can occur.
*
* Format: `ddd:hh24:mi-ddd:hh24:mi`
* Constraint: Minimum 30-minute window
*
* @default - a 30-minute window selected at random from an 8-hour block of
* time for each AWS Region, occurring on a random day of the week. To see
* the time blocks available, see https://docs.aws.amazon.com/documentdb/latest/developerguide/db-instance-maintain.html#maintenance-window
*/
readonly preferredMaintenanceWindow?: string;
/**
* The CloudFormation policy to apply when the instance is removed from the
* stack or replaced during an update.
*
* @default RemovalPolicy.Retain
*/
readonly removalPolicy?: cdk.RemovalPolicy;
/**
* A value that indicates whether to enable Performance Insights for the DB Instance.
*
* @default - false
*/
readonly enablePerformanceInsights?: boolean;
/**
* The identifier of the CA certificate for this DB instance.
*
* Specifying or updating this property triggers a reboot.
*
* @see https://docs.aws.amazon.com/documentdb/latest/developerguide/ca_cert_rotation.html
*
* @default - DocumentDB will choose a certificate authority
*/
readonly caCertificate?: CaCertificate;
}
/**
* A database instance
*
* @resource AWS::DocDB::DBInstance
*/
export declare class DatabaseInstance extends DatabaseInstanceBase implements IDatabaseInstance {
/** Uniquely identifies this class. */
static readonly PROPERTY_INJECTION_ID: string;
/**
* The instance's database cluster (private storage)
*/
private readonly _cluster;
/**
* @inheritdoc
*/
readonly instanceIdentifier: string;
/**
* @inheritdoc
*/
readonly dbInstanceEndpointAddress: string;
/**
* @inheritdoc
*/
readonly dbInstanceEndpointPort: string;
/**
* @inheritdoc
*/
readonly instanceEndpoint: Endpoint;
/**
* The instance's database cluster
*/
get cluster(): IDatabaseCluster;
constructor(scope: Construct, id: string, props: DatabaseInstanceProps);
}
export {};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,72 @@
import type { Construct } from 'constructs';
import type { IResource } from '../../core';
import { Resource } from '../../core';
import type { IDBClusterParameterGroupRef, DBClusterParameterGroupReference } from '../../interfaces/generated/aws-docdb-interfaces.generated';
/**
* A parameter group
*/
export interface IClusterParameterGroup extends IResource, IDBClusterParameterGroupRef {
/**
* The name of this parameter group
*/
readonly parameterGroupName: string;
}
/**
* A new cluster or instance parameter group
*/
declare abstract class ClusterParameterGroupBase extends Resource implements IClusterParameterGroup {
/**
* Imports a parameter group
*/
static fromParameterGroupName(scope: Construct, id: string, parameterGroupName: string): IClusterParameterGroup;
/**
* The name of the parameter group
*/
abstract readonly parameterGroupName: string;
/**
* A reference to this parameter group.
*/
get dbClusterParameterGroupRef(): DBClusterParameterGroupReference;
}
/**
* Properties for a cluster parameter group
*/
export interface ClusterParameterGroupProps {
/**
* Description for this parameter group
*
* @default a CDK generated description
*/
readonly description?: string;
/**
* Database family of this parameter group
*/
readonly family: string;
/**
* The name of the cluster parameter group
*
* @default A CDK generated name for the cluster parameter group
*/
readonly dbClusterParameterGroupName?: string;
/**
* The parameters in this parameter group
*/
readonly parameters: {
[key: string]: string;
};
}
/**
* A cluster parameter group
*
* @resource AWS::DocDB::DBClusterParameterGroup
*/
export declare class ClusterParameterGroup extends ClusterParameterGroupBase implements IClusterParameterGroup {
/** Uniquely identifies this class. */
static readonly PROPERTY_INJECTION_ID: string;
/**
* The name of the parameter group
*/
readonly parameterGroupName: string;
constructor(scope: Construct, id: string, props: ClusterParameterGroupProps);
}
export {};

View File

@@ -0,0 +1 @@
"use strict";var __esDecorate=exports&&exports.__esDecorate||function(ctor,descriptorIn,decorators,contextIn,initializers,extraInitializers){function accept(f){if(f!==void 0&&typeof f!="function")throw new TypeError("Function expected");return f}for(var kind=contextIn.kind,key=kind==="getter"?"get":kind==="setter"?"set":"value",target=!descriptorIn&&ctor?contextIn.static?ctor:ctor.prototype:null,descriptor=descriptorIn||(target?Object.getOwnPropertyDescriptor(target,contextIn.name):{}),_,done=!1,i=decorators.length-1;i>=0;i--){var context={};for(var p in contextIn)context[p]=p==="access"?{}:contextIn[p];for(var p in contextIn.access)context.access[p]=contextIn.access[p];context.addInitializer=function(f){if(done)throw new TypeError("Cannot add initializers after decoration has completed");extraInitializers.push(accept(f||null))};var result=(0,decorators[i])(kind==="accessor"?{get:descriptor.get,set:descriptor.set}:descriptor[key],context);if(kind==="accessor"){if(result===void 0)continue;if(result===null||typeof result!="object")throw new TypeError("Object expected");(_=accept(result.get))&&(descriptor.get=_),(_=accept(result.set))&&(descriptor.set=_),(_=accept(result.init))&&initializers.unshift(_)}else(_=accept(result))&&(kind==="field"?initializers.unshift(_):descriptor[key]=_)}target&&Object.defineProperty(target,contextIn.name,descriptor),done=!0},__runInitializers=exports&&exports.__runInitializers||function(thisArg,initializers,value){for(var useValue=arguments.length>2,i=0;i<initializers.length;i++)value=useValue?initializers[i].call(thisArg,value):initializers[i].call(thisArg);return useValue?value:void 0};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ClusterParameterGroup=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var docdb_generated_1=()=>{var tmp=require("./docdb.generated");return docdb_generated_1=()=>tmp,tmp},core_1=()=>{var tmp=require("../../core");return core_1=()=>tmp,tmp},metadata_resource_1=()=>{var tmp=require("../../core/lib/metadata-resource");return metadata_resource_1=()=>tmp,tmp},prop_injectable_1=()=>{var tmp=require("../../core/lib/prop-injectable");return prop_injectable_1=()=>tmp,tmp};class ClusterParameterGroupBase extends core_1().Resource{static fromParameterGroupName(scope,id,parameterGroupName){class Import extends core_1().Resource{parameterGroupName=parameterGroupName;get dbClusterParameterGroupRef(){return{dbClusterParameterGroupId:this.parameterGroupName}}}return new Import(scope,id)}get dbClusterParameterGroupRef(){return{dbClusterParameterGroupId:this.parameterGroupName}}}let ClusterParameterGroup=(()=>{let _classDecorators=[prop_injectable_1().propertyInjectable],_classDescriptor,_classExtraInitializers=[],_classThis,_classSuper=ClusterParameterGroupBase;var ClusterParameterGroup2=class extends _classSuper{static{_classThis=this}static{const _metadata=typeof Symbol=="function"&&Symbol.metadata?Object.create(_classSuper[Symbol.metadata]??null):void 0;__esDecorate(null,_classDescriptor={value:_classThis},_classDecorators,{kind:"class",name:_classThis.name,metadata:_metadata},null,_classExtraInitializers),ClusterParameterGroup2=_classThis=_classDescriptor.value,_metadata&&Object.defineProperty(_classThis,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:_metadata})}static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_docdb.ClusterParameterGroup",version:"2.252.0"};static PROPERTY_INJECTION_ID="aws-cdk-lib.aws-docdb.ClusterParameterGroup";parameterGroupName;constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings().aws_cdk_lib_aws_docdb_ClusterParameterGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,ClusterParameterGroup2),error}(0,metadata_resource_1().addConstructMetadata)(this,props);const resource=new(docdb_generated_1()).CfnDBClusterParameterGroup(this,"Resource",{name:props.dbClusterParameterGroupName,description:props.description||`Cluster parameter group for ${props.family}`,family:props.family,parameters:props.parameters});this.parameterGroupName=resource.ref}static{__runInitializers(_classThis,_classExtraInitializers)}};return ClusterParameterGroup2=_classThis})();exports.ClusterParameterGroup=ClusterParameterGroup;

93
cdk/node_modules/aws-cdk-lib/aws-docdb/lib/props.d.ts generated vendored Normal file
View File

@@ -0,0 +1,93 @@
import type * as kms from '../../aws-kms';
import type * as secretsmanager from '../../aws-secretsmanager';
import type { Duration, SecretValue } from '../../core';
/**
* Backup configuration for DocumentDB databases
*
* @default - The retention period for automated backups is 1 day.
* The preferred backup window will be a 30-minute window selected at random
* from an 8-hour block of time for each AWS Region.
* @see https://docs.aws.amazon.com/documentdb/latest/developerguide/backup-restore.db-cluster-snapshots.html#backup-restore.backup-window
*/
export interface BackupProps {
/**
* How many days to retain the backup
*/
readonly retention: Duration;
/**
* A daily time range in 24-hours UTC format in which backups preferably execute.
*
* Must be at least 30 minutes long.
*
* Example: '01:00-02:00'
*
* @default - a 30-minute window selected at random from an 8-hour block of
* time for each AWS Region. To see the time blocks available, see
* https://docs.aws.amazon.com/documentdb/latest/developerguide/backup-restore.db-cluster-snapshots.html#backup-restore.backup-window
*/
readonly preferredWindow?: string;
}
/**
* Login credentials for a database cluster
*/
export interface Login {
/**
* Username
*/
readonly username: string;
/**
* Password
*
* Do not put passwords in your CDK code directly.
*
* @default a Secrets Manager generated password
*/
readonly password?: SecretValue;
/**
* KMS encryption key to encrypt the generated secret.
*
* @default default master key
*/
readonly kmsKey?: kms.IKey;
/**
* Specifies characters to not include in generated passwords.
*
* @default "\"@/"
*/
readonly excludeCharacters?: string;
/**
* The physical name of the secret, that will be generated.
*
* @default Secretsmanager will generate a physical name for the secret
*/
readonly secretName?: string;
}
/**
* Options to add the multi user rotation
*/
export interface RotationMultiUserOptions {
/**
* The secret to rotate. It must be a JSON string with the following format:
* ```
* {
* "engine": <required: must be set to 'mongo'>,
* "host": <required: instance host name>,
* "username": <required: username>,
* "password": <required: password>,
* "dbname": <optional: database name>,
* "port": <optional: if not specified, default port 27017 will be used>,
* "masterarn": <required: the arn of the master secret which will be used to create users/change passwords>
* "ssl": <optional: if not specified, defaults to false. This must be true if being used for DocumentDB rotations
* where the cluster has TLS enabled>
* }
* ```
*/
readonly secret: secretsmanager.ISecret;
/**
* Specifies the number of days after the previous rotation before
* Secrets Manager triggers the next automatic rotation.
*
* @default Duration.days(30)
*/
readonly automaticallyAfter?: Duration;
}

1
cdk/node_modules/aws-cdk-lib/aws-docdb/lib/props.js generated vendored Normal file
View File

@@ -0,0 +1 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});