@cdklabs/cdk-amazonmq
Version:
<!--BEGIN STABILITY BANNER-->
127 lines (126 loc) • 5.43 kB
TypeScript
import { IResolvable, IResource, Resource } from "aws-cdk-lib";
import { CfnBroker } from "aws-cdk-lib/aws-amazonmq";
import { Metric, MetricOptions } from "aws-cdk-lib/aws-cloudwatch";
import { ISecurityGroup, InstanceType, IVpc, SubnetSelection, Connections, Port } from "aws-cdk-lib/aws-ec2";
import { IRole } from "aws-cdk-lib/aws-iam";
import { IKey } from "aws-cdk-lib/aws-kms";
import { RetentionDays } from "aws-cdk-lib/aws-logs";
import { Construct } from "constructs";
import { BrokerCloudwatchLogsExports } from "./broker-cloudwatch-logs-exports";
import { BrokerDeploymentMode } from "./broker-deployment-mode";
import { IBrokerConfiguration } from "./configuration";
import { MaintenanceWindowStartTime } from "./maintenance-window-start-time";
import { StorageType } from "./storage-type";
export interface IBrokerDeployment extends IResource {
readonly arn: string;
readonly id: string;
readonly name: string;
readonly connections: Connections | undefined;
/***
* @internal
*/
readonly _authenticationStrategy?: string;
/***
* @internal
*/
readonly _engineVersion: string;
metric(metricName: string, options?: MetricOptions): Metric;
}
export interface BrokerDeploymentProps {
readonly key?: IKey;
readonly brokerName?: string;
/**
* Specifies whether the broker is open to public Internet or deployed with
* endpoints in own VPC.
*/
readonly publiclyAccessible: boolean;
/**
* vpcSubnets and vpc are optional. But when present - publiclyAccessible attribute must equal false.
*
* @default - undefined. If vpc is present - this attribute must be present.
*/
readonly vpcSubnets?: SubnetSelection;
/**
* The VPC in which create the communication endpoints for a private broker.
*
* @default - undefined. A default VPC will be used
*/
readonly vpc?: IVpc;
/**
* The Security Groups to apply for a non publicly accessible broker.
*
* NOTE: This needs to be set only if `publiclyAccessible` is true.
*
* @default - undefined. If no VPC is selected then a default VPC's default SG will be used.
* Otherwise - a security group will be created.
*/
readonly securityGroups?: ISecurityGroup[];
/**
* An instance type to use for the broker. Only a subset of available instance types is allowed.
*
* @see https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-instance-types.html
*/
readonly instanceType: InstanceType;
/**
* Determines whether the broker will undergo a patch version upgrade during the maintenance window.
*
* NOTE: Contrary to the name this setting does not upgrade the minor versions, but patch versions (i.e. in the X.Y.Z notation - only the Z numbers are upgraded)
*
* @default - for versions with the patch version number the default is not to upgrade the patch versions; for versions withouth the patch version number patch versions are updated and this setting takes no effect.
*/
readonly autoMinorVersionUpgrade?: boolean;
readonly maintenanceWindowStartTime?: MaintenanceWindowStartTime;
/**
* Sets the retention days for the broker's CloudWatch LogGroups
*
* @default - undefined; CloudWatch Log Groups retention is set to never expire
*/
readonly cloudwatchLogsRetention?: RetentionDays;
readonly cloudwatchLogsRetentionRole?: IRole;
}
export declare enum BrokerEngine {
RABBITMQ = "RABBITMQ",
ACTIVEMQ = "ACTIVEMQ"
}
export interface BrokerDeploymentBaseProps extends BrokerDeploymentProps {
readonly authenticationStrategy?: string;
readonly version: string;
readonly deploymentMode: BrokerDeploymentMode;
readonly defaultPort?: Port;
readonly engine: BrokerEngine;
readonly storageType?: StorageType;
readonly configuration?: IBrokerConfiguration;
readonly cloudwatchLogsExports?: BrokerCloudwatchLogsExports;
readonly users: CfnBroker.UserProperty[];
readonly ldapServerMetadata?: IResolvable | CfnBroker.LdapServerMetadataProperty;
}
export declare abstract class BrokerDeploymentBase extends Resource implements IBrokerDeployment {
readonly arn: string;
readonly id: string;
readonly name: string;
/** @internal */
readonly _authenticationStrategy?: string;
/** @internal */
readonly _engineVersion: string;
/** @internal */
protected readonly _conns: Connections | undefined;
/** @internal */
protected readonly _resource: CfnBroker;
/** @internal */
protected _configurationIdProperty: CfnBroker.ConfigurationIdProperty | undefined;
/** @internal */
protected _configuration: IBrokerConfiguration | undefined;
private readonly cloudwatchLogsExports?;
private readonly cloudwatchLogsRetention?;
private readonly cloudwatchLogsRetentionRole?;
/** Manages connections for the cluster */
get connections(): Connections | undefined;
constructor(scope: Construct, id: string, props: BrokerDeploymentBaseProps);
protected assignConfigurationIdProperty(configuration: CfnBroker.ConfigurationIdProperty): void;
metric(metricName: string, options?: MetricOptions): Metric;
protected configureLogRetention(): void;
/***
* @internal
*/
protected _attachConfiguration(configuration: IBrokerConfiguration): void;
}