cdklabscdkamazonmq

package module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2024 License: Apache-2.0 Imports: 16 Imported by: 0

README

AWS::AmazonMQ L2+ Construct Library

---
Features Stability
Higher level constructs for ActiveMQ Brokers Experimental
Higher level constructs for RabbitMQ Bokers Experimental

Experimental: Higher level constructs in this module are experimental and under active development. They are subject to non-backward compatible changes or removal in any future version. These are not subject to the Semantic Versioning model and breaking changes will be announced in the release notes. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.


Table of Contents

Introduction

Amazon MQ is a managed service that makes it easy to create and run Apache ActiveMQ and RabbitMQ message brokers at scale. This library brings L2 AWS CDK constructs for Amazon MQ and introduces a notion of broker deployment and distincts between a broker and a broker deployment.

  • broker deployment represents the configuration that defines how the broker (or a set of brokers in a particular configuration) will be deployed. Effectively, this is the representation of the AWS::AmazonMQ::Broker resource type, and will expose the relevant attributes of the resource type (such as ARN, Id).
  • broker represents the means for accessing the broker, that is its endpoints and (in the case of ActiveMQ) IPv4 address(es).

This stems from the fact that when creating the AWS::AmazonMQ::Broker resource for ActiveMQ in the ACTIVE_STANDBY_MULTI_AZ deployment mode, the resulting AWS resource will in fact contain a set of two, distinct brokers.

The separation allows for expressing the resources as types in two ways:

  • is, where a broker deployment implements the broker behavioral interface
  • has, where a broker deployment contains (a set of) brokers.
Security

In order to build secure solutions follow the guidelines and recommendations in the Security section of the AWS documentation for the Amazon MQ.

ActiveMQ Brokers

Amazon MQ allows for creating AWS-managed ActiveMQ brokers. The brokers enable exchanging messages over a number of protocols, e.g. AMQP 1.0, OpenWire, STOMP, MQTT.

ActiveMQ Broker Deployments

The following example creates a minimal, single-instance ActiveMQ Broker deployment:

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var stack stack
var brokerUser iSecret


broker := cdklabscdkamazonmq.NewActiveMqBrokerInstance(stack, jsii.String("ActiveMqBroker"), &ActiveMqBrokerInstanceProps{
	PubliclyAccessible: jsii.Boolean(false),
	Version: *cdklabscdkamazonmq.ActiveMqBrokerEngineVersion_V5_18(),
	InstanceType: awscdk.InstanceType_Of(awscdk.InstanceClass_T3, awscdk.InstanceSize_MICRO),
	UserManagement: *cdklabscdkamazonmq.ActiveMqBrokerUserManagement_Simple(&SimpleAuthenticationUserManagementOptions{
		Users: []activeMqUser{
			&activeMqUser{
				Username: brokerUser.SecretValueFromJson(jsii.String("username")).UnsafeUnwrap(),
				Password: brokerUser.*SecretValueFromJson(jsii.String("password")),
			},
		},
	}),
})

The example below shows how to instantiate an active-standby redundant pair. ActiveMqBrokerRedundantPair doesn't implement IActiveMqBroker, but has two properties: first, and second that do. This stems from the fact that ActiveMq redundant-pair deployment exposes two, separate brokers that work in an active-standby configuration. The names are first (instead of active) and second (instead of standby) as there cannot be a guarantee which broker will be the active and which - the standby.

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var stack stack
var brokerUser iSecret
var vpc iVpc
var vpcSubnets subnetSelection


brokerPair := cdklabscdkamazonmq.NewActiveMqBrokerRedundantPair(stack, jsii.String("ActiveMqBrokerPair"), &ActiveMqBrokerRedundantPairProps{
	PubliclyAccessible: jsii.Boolean(false),
	Version: *cdklabscdkamazonmq.ActiveMqBrokerEngineVersion_V5_18(),
	InstanceType: awscdk.InstanceType_Of(awscdk.InstanceClass_M5, awscdk.InstanceSize_LARGE),
	UserManagement: *cdklabscdkamazonmq.ActiveMqBrokerUserManagement_Simple(&SimpleAuthenticationUserManagementOptions{
		Users: []activeMqUser{
			&activeMqUser{
				Username: brokerUser.SecretValueFromJson(jsii.String("username")).UnsafeUnwrap(),
				Password: brokerUser.*SecretValueFromJson(jsii.String("password")),
			},
		},
	}),
	Vpc: Vpc,
	VpcSubnets: VpcSubnets,
})
ActiveMQ Broker Endpoints

Each created broker instance implements IActiveMqBroker and has endpoints property representing each allowed transport with url and port.

One can use the endpoints as in the example below

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var broker iActiveMqBroker


awscdk.NewCfnOutput(this, jsii.String("AmqpEndpointUrl"), &CfnOutputProps{
	Value: broker.Endpoints.Amqp.Url,
})
awscdk.NewCfnOutput(this, jsii.String("AmqpEndpointPort"), &CfnOutputProps{
	Value: broker.*Endpoints.*Amqp.Port.toString(),
})

awscdk.NewCfnOutput(this, jsii.String("StompEndpointUrl"), &CfnOutputProps{
	Value: broker.*Endpoints.Stomp.*Url,
})
awscdk.NewCfnOutput(this, jsii.String("StompEndpointPort"), &CfnOutputProps{
	Value: broker.*Endpoints.*Stomp.*Port.toString(),
})

awscdk.NewCfnOutput(this, jsii.String("OpenWireEndpointUrl"), &CfnOutputProps{
	Value: broker.*Endpoints.OpenWire.*Url,
})
awscdk.NewCfnOutput(this, jsii.String("OpenWireEndpointPort"), &CfnOutputProps{
	Value: broker.*Endpoints.*OpenWire.*Port.toString(),
})

awscdk.NewCfnOutput(this, jsii.String("MqttEndpointUrl"), &CfnOutputProps{
	Value: broker.*Endpoints.Mqtt.*Url,
})
awscdk.NewCfnOutput(this, jsii.String("MqttEndpointPort"), &CfnOutputProps{
	Value: broker.*Endpoints.*Mqtt.*Port.toString(),
})

awscdk.NewCfnOutput(this, jsii.String("WssEndpointUrl"), &CfnOutputProps{
	Value: broker.*Endpoints.Wss.*Url,
})
awscdk.NewCfnOutput(this, jsii.String("WssEndpointPort"), &CfnOutputProps{
	Value: broker.*Endpoints.*Wss.*Port.toString(),
})

awscdk.NewCfnOutput(this, jsii.String("WebConsoleUrl"), &CfnOutputProps{
	Value: broker.*Endpoints.Console.*Url,
})
awscdk.NewCfnOutput(this, jsii.String("WebConsolePort"), &CfnOutputProps{
	Value: broker.*Endpoints.*Console.*Port.toString(),
})

awscdk.NewCfnOutput(this, jsii.String("IpAddress"), &CfnOutputProps{
	Value: broker.IpAddress,
})

For the redundant pair deployments one can access all the endpoints under properties first and second, as each implements IActiveMqBroker.

Allowing Connections to ActiveMQ Brokers

For ActiveMQ broker deployments that are not publically accessible and with specified VPC and subnets you can control who can access the Broker using connections attribute. By default no connection is allowed and it has to be explicitly allowed.

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var deployment iActiveMqBrokerDeployment
var broker iActiveMqBroker


// for the applications to interact over the STOMP protocol
deployment.Connections.AllowFrom(awscdk.Peer_Ipv4(jsii.String("1.2.3.4/8")), awscdk.Port_Tcp(broker.Endpoints.Stomp.Port))

// for the applications to interact over the OpenWire protocol
deployment.Connections.AllowFrom(awscdk.Peer_Ipv4(jsii.String("1.2.3.4/8")), awscdk.Port_Tcp(broker.Endpoints.OpenWire.Port))

// for the Web Console access
deployment.Connections.AllowFrom(awscdk.Peer_Ipv4(jsii.String("1.2.3.4/8")), awscdk.Port_Tcp(broker.Endpoints.Console.Port))

Mind that connections will be defined only if VPC and subnets are specified. For an instance of ActiveMqBrokerRedundantPair one would access the broker endpoints under either first or second property.

Security: It is a security best practice to block unnecessary protocols with VPC security groups.

ActiveMQ Broker Configurations

By default Amazon MQ will create a default configuration for the broker(s) on your deployment. You can introduce custom configurations by explicitly creating one as in the example below:

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var stack stack
var brokerUser iSecret
var configurationData string


customConfiguration := cdklabscdkamazonmq.NewActiveMqBrokerConfiguration(stack, jsii.String("CustomConfiguration"), &ActiveMqBrokerConfigurationProps{
	ConfigurationName: jsii.String("ConfigurationName"),
	Description: jsii.String("ConfigurationDescription"),
	EngineVersion: *cdklabscdkamazonmq.ActiveMqBrokerEngineVersion_V5_18(),
	AuthenticationStrategy: *cdklabscdkamazonmq.ActiveMqAuthenticationStrategy_SIMPLE,
	Definition: *cdklabscdkamazonmq.ActiveMqBrokerConfigurationDefinition_Data(configurationData),
})

broker := cdklabscdkamazonmq.NewActiveMqBrokerInstance(stack, jsii.String("Broker"), &ActiveMqBrokerInstanceProps{
	PubliclyAccessible: jsii.Boolean(false),
	Version: *cdklabscdkamazonmq.ActiveMqBrokerEngineVersion_V5_18(),
	InstanceType: awscdk.InstanceType_Of(awscdk.InstanceClass_T3, awscdk.InstanceSize_MICRO),
	UserManagement: *cdklabscdkamazonmq.ActiveMqBrokerUserManagement_Simple(&SimpleAuthenticationUserManagementOptions{
		Users: []activeMqUser{
			&activeMqUser{
				Username: brokerUser.SecretValueFromJson(jsii.String("username")).UnsafeUnwrap(),
				Password: brokerUser.*SecretValueFromJson(jsii.String("password")),
			},
		},
	}),
	Configuration: customConfiguration,
})

A configuration can be associated with a specific broker also after the broker creation. Then, it is required to be explicitly associated with the broker.

import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var configuration iActiveMqBrokerConfiguration
var deployment iActiveMqBrokerDeployment


configuration.AssociateWith(deployment)

This library also allows to modify an existing configuration. Such update of a particular configuration is creating a new configuration revision so that a history of revisions can be viewed in the AWS Console. The new revision can be then associated with the broker so it uses it as a working configuration.

import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var configuration iActiveMqBrokerConfiguration
var deployment iActiveMqBrokerDeployment
var newData string


newRevision := configuration.CreateRevision(&ActiveMqBrokerConfigurationOptions{
	Description: jsii.String("We need to modify an AuthorizationEntry"),
	Definition: cdklabscdkamazonmq.ActiveMqBrokerConfigurationDefinition_Data(newData),
})

newRevision.AssociateWith(deployment)
ActiveMQ Broker User Management
ActiveMQ Broker Simple Authentication

Using ActiveMQ built-in Simple Authentication users need to be provided during the broker deployment definition.

Security: In the Simple Authentication User Management authorization is managed in the configuration. It is a security best practice to always configure an authorization map.

ActiveMQ Broker LDAP Integration

Amazon MQ for ActiveMQ enables LDAP integration. An example below shows a minimal setup to configure an Amazon MQ for ActiveMQ broker.

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var stack stack
var serviceAccountSecret iSecret


broker := cdklabscdkamazonmq.NewActiveMqBrokerInstance(stack, jsii.String("ActiveMqBrokerInstance"), &ActiveMqBrokerInstanceProps{
	PubliclyAccessible: jsii.Boolean(false),
	Version: *cdklabscdkamazonmq.ActiveMqBrokerEngineVersion_V5_18(),
	InstanceType: awscdk.InstanceType_Of(awscdk.InstanceClass_T3, awscdk.InstanceSize_MICRO),
	UserManagement: *cdklabscdkamazonmq.ActiveMqBrokerUserManagement_Ldap(&LdapUserStoreOptions{
		Hosts: []*string{
			jsii.String("ldap.example.com"),
		},
		UserSearchMatching: jsii.String("uid={0}"),
		UserRoleName: jsii.String("amq"),
		UserBase: jsii.String("ou=users,dc=example,dc=com"),
		RoleBase: jsii.String("ou=roles,dc=example,dc=com"),
		RoleSearchMatching: jsii.String("cn={0}"),
		RoleName: jsii.String("amq"),
		ServiceAccountPassword: serviceAccountSecret.SecretValueFromJson(jsii.String("password")),
		ServiceAccountUsername: serviceAccountSecret.*SecretValueFromJson(jsii.String("username")),
	}),
})
Monitoring ActiveMQ Brokers

This library introduces a set of metrics that we can use for the IActiveMqBrokerDeployment monitoring. Each can be accessed as a method on the IActiveMqBrokerDeployment with the convention metric[MetricName]. An example below shows how one can use that:

import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var stack stack
var deployment iActiveMqBrokerDeployment


consumerCountMetric := deployment.MetricConsumerCount()
consumerCountMetric.CreateAlarm(stack, jsii.String("ConsumerCountAlarm"), &CreateAlarmOptions{
	Threshold: jsii.Number(100),
	EvaluationPeriods: jsii.Number(3),
	DatapointsToAlarm: jsii.Number(2),
})
ActiveMQ Broker Integration with AWS Lambda

Amazon MQ for ActiveMQ broker queues can be used as event sources for AWS Lambda functions. For authentication only the ActiveMQ SimpleAuthenticationPlugin is supported. Lambda consumes messages using the OpenWire/Java Message Service (JMS) protocol. No other protocols are supported for consuming messages. Within the JMS protocol, only TextMessage and BytesMessage are supported. Lambda also supports JMS custom properties. For more details on the requirements of the integration read the documentation.

The example below presents an example of creating such an event source mapping:

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var target iFunction
var creds iSecret // with username and password fields
var broker iActiveMqBrokerDeployment
var queueName string


target.AddEventSource(cdklabscdkamazonmq.NewActiveMqEventSource(&ActiveMqEventSourceProps{
	Broker: Broker,
	Credentials: creds,
	QueueName: jsii.String(QueueName),
}))

Security: When adding an Amazon MQ for ActiveMQ as an AWS Lambda function's event source the library updates the execution role's permissions to satisfy Amazon MQ requirements for provisioning the event source mapping.

In the case of a private deployment the defined event source mapping will create a set of Elastic Network Interfaces (ENIs) in the subnets in which the broker deployment created communication endpoints. Thus, in order to allow the event source mapping to communicate with the broker one needs to additionally allow inbound traffic from the ENIs on the OpenWire port. As ENIs will use the same security group that governs the access to the broker endpoints you can simply allow communication from the broker's security group to itself on the OpenWire port as in the example below:

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var deployment iActiveMqBrokerDeployment
var broker iActiveMqBroker


deployment.Connections.AllowInternally(awscdk.Port_Tcp(broker.Endpoints.OpenWire.Port), jsii.String("Allowing for the ESM"))

RabbitMQ Brokers

Amazon MQ allows for creating AWS-managed RabbitMQ brokers. The brokers enable exchanging messages over AMQP 0-9-1 protocol.

RabbitMQ Broker Deployments

The following example creates a minimal, single-instance RabbitMQ broker deployment:

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var stack stack
var adminSecret iSecret


broker := cdklabscdkamazonmq.NewRabbitMqBrokerInstance(stack, jsii.String("RabbitMqBroker"), &RabbitMqBrokerInstanceProps{
	PubliclyAccessible: jsii.Boolean(false),
	Version: *cdklabscdkamazonmq.RabbitMqBrokerEngineVersion_V3_13(),
	InstanceType: awscdk.InstanceType_Of(awscdk.InstanceClass_T3, awscdk.InstanceSize_MICRO),
	Admin: &Admin{
		Username: adminSecret.SecretValueFromJson(jsii.String("username")).UnsafeUnwrap(),
		Password: adminSecret.*SecretValueFromJson(jsii.String("password")),
	},
})

The next example creates a minimal RabbitMQ broker cluster:

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var stack stack
var adminSecret iSecret


broker := cdklabscdkamazonmq.NewRabbitMqBrokerCluster(stack, jsii.String("RabbitMqBroker"), &RabbitMqBrokerClusterProps{
	PubliclyAccessible: jsii.Boolean(false),
	Version: *cdklabscdkamazonmq.RabbitMqBrokerEngineVersion_V3_13(),
	InstanceType: awscdk.InstanceType_Of(awscdk.InstanceClass_M5, awscdk.InstanceSize_LARGE),
	Admin: &Admin{
		Username: adminSecret.SecretValueFromJson(jsii.String("username")).UnsafeUnwrap(),
		Password: adminSecret.*SecretValueFromJson(jsii.String("password")),
	},
})
RabbitMQ Broker Endpoints

Each created broker has endpoints property with the AMQP endpoint url and port.

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var broker iRabbitMqBroker


awscdk.NewCfnOutput(this, jsii.String("AmqpEndpointUrl"), &CfnOutputProps{
	Value: broker.Endpoints.Amqp.Url,
})
awscdk.NewCfnOutput(this, jsii.String("AmqpEndpointPort"), &CfnOutputProps{
	Value: broker.*Endpoints.*Amqp.Port.toString(),
})
awscdk.NewCfnOutput(this, jsii.String("WebConsoleUrl"), &CfnOutputProps{
	Value: broker.*Endpoints.Console.*Url,
})
awscdk.NewCfnOutput(this, jsii.String("WebConsolePort"), &CfnOutputProps{
	Value: broker.*Endpoints.*Console.*Port.toString(),
})
Allowing Connections to a RabbitMQ Broker

For the RabbitMQ broker deployments that are not publically accessible and with specified VPC and subnets you can control who can access the broker using connections attribute.

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var deployment iRabbitMqBrokerDeployment
var broker iRabbitMqBroker


// for the applications to interact over the AMQP protocol
deployment.Connections.AllowFrom(awscdk.Peer_Ipv4(jsii.String("1.2.3.4/8")), awscdk.Port_Tcp(broker.Endpoints.Amqp.Port))

// for the Web Console access
deployment.Connections.AllowFrom(awscdk.Peer_Ipv4(jsii.String("1.2.3.4/8")), awscdk.Port_Tcp(broker.Endpoints.Console.Port))

Mind that connections will be defined only if VPC and subnets are specified.

RabbitMQ Broker Configurations

If you do not specify a custom RabbitMQ Broker configuration, Amazon MQ for RabbitMQ will create a default configuration for the broker on your behalf. You can introduce custom configurations by explicitly creating one as in the example below:

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var stack stack
var adminSecret iSecret


customConfiguration := cdklabscdkamazonmq.NewRabbitMqBrokerConfiguration(stack, jsii.String("CustomConfiguration"), &RabbitMqBrokerConfigurationProps{
	ConfigurationName: jsii.String("ConfigurationName"),
	Description: jsii.String("ConfigurationDescription"),
	EngineVersion: *cdklabscdkamazonmq.RabbitMqBrokerEngineVersion_V3_13(),
	Definition: *cdklabscdkamazonmq.RabbitMqBrokerConfigurationDefinition_Parameters(&RabbitMqBrokerConfigurationParameters{
		ConsumerTimeout: awscdk.Duration_Minutes(jsii.Number(20)),
	}),
})

broker := cdklabscdkamazonmq.NewRabbitMqBrokerInstance(stack, jsii.String("Broker"), &RabbitMqBrokerInstanceProps{
	PubliclyAccessible: jsii.Boolean(false),
	Version: *cdklabscdkamazonmq.RabbitMqBrokerEngineVersion_V3_13(),
	InstanceType: awscdk.InstanceType_Of(awscdk.InstanceClass_T3, awscdk.InstanceSize_MICRO),
	Admin: &Admin{
		Username: adminSecret.SecretValueFromJson(jsii.String("username")).UnsafeUnwrap(),
		Password: adminSecret.*SecretValueFromJson(jsii.String("password")),
	},
	Configuration: customConfiguration,
})

A configuration can be associated with a specific broker also after the deployment. Then, it is required to be explicitly associated with the broker.

import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var configuration iRabbitMqBrokerConfiguration
var deployment iRabbitMqBrokerDeployment


configuration.AssociateWith(deployment)

This library also allows to modify an existing configuration. Such update of a particular configuration is creating a new configuration revision so that a history of revisions can be viewed in the AWS Console. The new revision can be then associated with the broker so it uses it as a working configuration.

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var configuration iRabbitMqBrokerConfiguration
var deployment iRabbitMqBrokerDeployment
var newConsumerTimeout duration


newRevision := configuration.CreateRevision(&RabbitMqBrokerConfigurationOptions{
	Description: jsii.String("We need to modify the consumer timeout"),
	Definition: cdklabscdkamazonmq.RabbitMqBrokerConfigurationDefinition_Parameters(&RabbitMqBrokerConfigurationParameters{
		ConsumerTimeout: newConsumerTimeout,
	}),
})

newRevision.AssociateWith(deployment)
Monitoring RabbitMQ Brokers

This library introduces a set of metrics that we can use for the IRabbitMqBrokerDeployment monitoring. Each can be accessed as a method on the IRabbitMqBrokerDeployment with the convention metric[MetricName]. An example below shows how one can use that:

import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var stack stack
var deployment iRabbitMqBrokerDeployment


consumerCountMetric := deployment.MetricConsumerCount()
consumerCountMetric.CreateAlarm(stack, jsii.String("ConsumerCountAlarm"), &CreateAlarmOptions{
	Threshold: jsii.Number(100),
	EvaluationPeriods: jsii.Number(3),
	DatapointsToAlarm: jsii.Number(2),
})
RabbitMQ Broker Integration with AWS Lambda

Amazon MQ for RabbitMQ broker queues can be used as event sources for AWS Lambda functions. For authentication only the PLAIN authentication mechanism is supported. Lambda consumes messages using the AMQP 0-9-1 protocol. No other protocols are supported for consuming messages. For more details on the requirements of the integration read the documentation.

The example below presents an example of creating such an event source mapping:

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var target iFunction
var creds iSecret // with username and password fields
var broker iRabbitMqBrokerDeployment
var queueName string


target.AddEventSource(cdklabscdkamazonmq.NewRabbitMqEventSource(&RabbitMqEventSourceProps{
	Broker: Broker,
	Credentials: creds,
	QueueName: jsii.String(QueueName),
}))

Security: When adding an Amazon MQ for RabbitMQ as an AWS Lambda function's event source the library updates the execution role's permissions to satisfy Amazon MQ requirements for provisioning the event source mapping.

In the case of a private deployment the defined event source mapping will create a set of Elastic Network Interfaces (ENIs) in the subnets in which the broker deployment created communication VPC Endpoints. Thus, in order to allow the event source mapping to communicate with the broekr one needs to additionally allow inbound traffic from the ENIs. As ENIs will use the same security group that governs the access to the VPC Endpoints you can simply allow communication from the broker's security group to itself on the AMQP port as in the example below:

import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var deployment iRabbitMqBrokerDeployment


deployment.Connections.AllowDefaultPortInternally()
Using Management HTTP API through RabbitMqCustomResource

This library allows for interacting with Amazon MQ for RabbitMQ brokers with the use of RabbitMQ Management HTTP API through the use of RabbitMqCustomResource. This resource follows the user experience of AwsCustomResource and is underpinned by a SingletonFunction. The custom resource creates such singleton function per a combination of broker, credentials, vpc, vpcSubnets, and securityGroups. This allows for limiting the number of resources, but limits the scope per permissions (through taking into consideration broker and credentials) and connectivity (through vpc, vpcSubnets, and securityGroups).

An example use of the RabbitMqCustomResource is presented below:

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var stack stack
var username string
var userCreds iSecret // with username/password fields
var broker iRabbitMqBroker
var brokerAdminCreds iSecret
// with username/password fields of the broker admin

user := cdklabscdkamazonmq.NewRabbitMqCustomResource(stack, jsii.String("CreateUser"), &RabbitMqCustomResourceProps{
	Broker: Broker,
	Credentials: brokerAdminCreds,
	LogGroup: awscdk.NewLogGroup(stack, jsii.String("RmqCustomResourceLogGroup"), &LogGroupProps{
		Retention: awscdk.RetentionDays_ONE_DAY,
	}),
	OnUpdate: &RabbitMqApiCall{
		Path: fmt.Sprintf("/api/users/%v", userCreds.SecretValueFromJson(jsii.String("username"))),
		Method: *cdklabscdkamazonmq.HttpMethods_PUT,
		Payload: map[string]interface{}{
			"password": userCreds.*SecretValueFromJson(jsii.String("password")),
			"tags": jsii.String(""),
		},
		PhysicalResourceId: awscdk.PhysicalResourceId_Of(fmt.Sprintf("%v-create", username)),
	},
	OnDelete: &RabbitMqApiCall{
		Path: fmt.Sprintf("/api/users/%v", userCreds.*SecretValueFromJson(jsii.String("username"))),
		Method: *cdklabscdkamazonmq.HttpMethods_DELETE,
	},
	Policy: *cdklabscdkamazonmq.RabbitMqCustomResourcePolicy_FromStatements([]policyStatement{
		awscdk.NewPolicyStatement(&PolicyStatementProps{
			Actions: []*string{
				jsii.String("secretsmanager:GetSecretValue"),
			},
			Resources: []*string{
				userCreds.SecretArn,
			},
		}),
	}),
})

The above example binds the creation, updating and deletion of a RabbitMQ user. The behavior of onCreate and onUpdate of the RabbitMqCustomResource follows the behavior of the AwsCustomResource in that if there is no onCreate, and only onUpdate - this will be used for both: onCreate and onUpdate.

Additionally, RabbitMqCustomResource can read information from the SecretManager Secrets which allows to set the password of the user without exposing it. As this requires read permissions on the secret itself - it is allowed with the use of RabbitMqCustomResourcePolicy.

RabbitMqCustomResource also replicates the formatting of the output from the commands replicating the behavior of AwsCustomResource. It means that the output is flattened and to retrieve any field form the RabbitMqCustomResource instance the flattened path needs to be applied. The example below shows how to retrieve the name of the broker node of a RabbitMqBrokerInstance:

import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/cdklabs/cdk-amazonmq-go/cdklabscdkamazonmq"

var stack stack
var broker rabbitMqBrokerInstance
var credentials iSecret


getNodesName := cdklabscdkamazonmq.NewRabbitMqCustomResource(this, jsii.String("GetNodes"), &RabbitMqCustomResourceProps{
	Broker: Broker,
	Credentials: Credentials,
	OnCreate: &RabbitMqApiCall{
		Path: jsii.String("/api/nodes"),
	},
})

// accessing the field returned by the call
getNodesName.GetResponseField(jsii.String("0.name"))

In the example presented the response of the call to /api/nodes endpoint is an JSON array of objects. For the RabbitMqBrokerInstance there will be a single object, whereas for the RabbitMqBrokerCluster there will be three objects presenting information for each node. Arrays are flattened by using the index for a position of the object and that is why the name of the first (and in the example only) node will is retrieved by specifying the response field name 0.name.

Documentation

Overview

@cdklabs/cdk-amazonmq

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ActiveMqBrokerConfiguration_IsConstruct

func ActiveMqBrokerConfiguration_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func ActiveMqBrokerConfiguration_IsOwnedResource

func ActiveMqBrokerConfiguration_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func ActiveMqBrokerConfiguration_IsResource

func ActiveMqBrokerConfiguration_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func ActiveMqBrokerDeploymentBase_IsConstruct

func ActiveMqBrokerDeploymentBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func ActiveMqBrokerDeploymentBase_IsOwnedResource

func ActiveMqBrokerDeploymentBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func ActiveMqBrokerDeploymentBase_IsResource

func ActiveMqBrokerDeploymentBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func ActiveMqBrokerInstance_IsConstruct

func ActiveMqBrokerInstance_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func ActiveMqBrokerInstance_IsOwnedResource

func ActiveMqBrokerInstance_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func ActiveMqBrokerInstance_IsResource

func ActiveMqBrokerInstance_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func ActiveMqBrokerRedundantPair_IsConstruct

func ActiveMqBrokerRedundantPair_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func ActiveMqBrokerRedundantPair_IsOwnedResource

func ActiveMqBrokerRedundantPair_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func ActiveMqBrokerRedundantPair_IsResource

func ActiveMqBrokerRedundantPair_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func BrokerConfiguration_IsConstruct

func BrokerConfiguration_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func BrokerConfiguration_IsOwnedResource

func BrokerConfiguration_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func BrokerConfiguration_IsResource

func BrokerConfiguration_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func BrokerDeploymentBase_IsConstruct

func BrokerDeploymentBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func BrokerDeploymentBase_IsOwnedResource

func BrokerDeploymentBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func BrokerDeploymentBase_IsResource

func BrokerDeploymentBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func ConfigurationAssociation_IsConstruct

func ConfigurationAssociation_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func ConfigurationAssociation_IsOwnedResource

func ConfigurationAssociation_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func ConfigurationAssociation_IsResource

func ConfigurationAssociation_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func NewActiveMqBrokerConfigurationDefinition_Override

func NewActiveMqBrokerConfigurationDefinition_Override(a ActiveMqBrokerConfigurationDefinition, data *string)

Experimental.

func NewActiveMqBrokerConfiguration_Override

func NewActiveMqBrokerConfiguration_Override(a ActiveMqBrokerConfiguration, scope constructs.Construct, id *string, props *ActiveMqBrokerConfigurationProps)

Experimental.

func NewActiveMqBrokerDeploymentBase_Override

func NewActiveMqBrokerDeploymentBase_Override(a ActiveMqBrokerDeploymentBase, scope constructs.Construct, id *string, props *ActiveMqBrokerDeploymentBaseProps)

Experimental.

func NewActiveMqBrokerEngineVersion_Override

func NewActiveMqBrokerEngineVersion_Override(a ActiveMqBrokerEngineVersion, version *string)

Experimental.

func NewActiveMqBrokerInstance_Override

func NewActiveMqBrokerInstance_Override(a ActiveMqBrokerInstance, scope constructs.Construct, id *string, props *ActiveMqBrokerInstanceProps)

Experimental.

func NewActiveMqBrokerRedundantPair_Override

func NewActiveMqBrokerRedundantPair_Override(a ActiveMqBrokerRedundantPair, scope constructs.Construct, id *string, props *ActiveMqBrokerRedundantPairProps)

Experimental.

func NewActiveMqBrokerUserManagement_Override

func NewActiveMqBrokerUserManagement_Override(a ActiveMqBrokerUserManagement)

Experimental.

func NewActiveMqEventSource_Override

func NewActiveMqEventSource_Override(a ActiveMqEventSource, props *ActiveMqEventSourceProps)

Instantiates an AWS Lambda Event Source Mapping for ActiveMQ.

This event source will add additional permissions to the AWS Lambda function's IAM Role following https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#events-mq-permissions Experimental.

func NewBrokerConfiguration_Override

func NewBrokerConfiguration_Override(b BrokerConfiguration, scope constructs.Construct, id *string, props *ConfigurationProps)

Experimental.

func NewBrokerDeploymentBase_Override

func NewBrokerDeploymentBase_Override(b BrokerDeploymentBase, scope constructs.Construct, id *string, props *BrokerDeploymentBaseProps)

Experimental.

func NewConfigurationAssociation_Override

func NewConfigurationAssociation_Override(c ConfigurationAssociation, scope constructs.Construct, id *string, props *ConfigurationAssociationProps)

Experimental.

func NewEventSourceBase_Override

func NewEventSourceBase_Override(e EventSourceBase, props *EventSourceBaseProps, mqType *string)

Instantiates an AWS Lambda Event Source Mapping for RabbitMQ.

This event source will add additional permissions to the AWS Lambda function's IAM Role following https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#events-mq-permissions Experimental.

func NewRabbitMqBrokerCluster_Override

func NewRabbitMqBrokerCluster_Override(r RabbitMqBrokerCluster, scope constructs.Construct, id *string, props *RabbitMqBrokerClusterProps)

Experimental.

func NewRabbitMqBrokerConfigurationDefinition_Override

func NewRabbitMqBrokerConfigurationDefinition_Override(r RabbitMqBrokerConfigurationDefinition, data *string)

Experimental.

func NewRabbitMqBrokerConfiguration_Override

func NewRabbitMqBrokerConfiguration_Override(r RabbitMqBrokerConfiguration, scope constructs.Construct, id *string, props *RabbitMqBrokerConfigurationProps)

Experimental.

func NewRabbitMqBrokerDeploymentBase_Override

func NewRabbitMqBrokerDeploymentBase_Override(r RabbitMqBrokerDeploymentBase, scope constructs.Construct, id *string, props *RabbitMqBrokerDeploymentBaseProps)

Experimental.

func NewRabbitMqBrokerEngineVersion_Override

func NewRabbitMqBrokerEngineVersion_Override(r RabbitMqBrokerEngineVersion, version *string)

Experimental.

func NewRabbitMqBrokerInstance_Override

func NewRabbitMqBrokerInstance_Override(r RabbitMqBrokerInstance, scope constructs.Construct, id *string, props *RabbitMqBrokerInstanceProps)

Experimental.

func NewRabbitMqCustomResource_Override added in v0.1.1

func NewRabbitMqCustomResource_Override(r RabbitMqCustomResource, scope constructs.Construct, id *string, props *RabbitMqCustomResourceProps)

Experimental.

func NewRabbitMqEventSource_Override

func NewRabbitMqEventSource_Override(r RabbitMqEventSource, props *RabbitMqEventSourceProps)

Instantiates an AWS Lambda Event Source Mapping for RabbitMQ.

This event source will add additional permissions to the AWS Lambda function's IAM Role following https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#events-mq-permissions Experimental.

func RabbitMqBrokerCluster_IsConstruct

func RabbitMqBrokerCluster_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func RabbitMqBrokerCluster_IsOwnedResource

func RabbitMqBrokerCluster_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func RabbitMqBrokerCluster_IsResource

func RabbitMqBrokerCluster_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func RabbitMqBrokerConfiguration_IsConstruct

func RabbitMqBrokerConfiguration_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func RabbitMqBrokerConfiguration_IsOwnedResource

func RabbitMqBrokerConfiguration_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func RabbitMqBrokerConfiguration_IsResource

func RabbitMqBrokerConfiguration_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func RabbitMqBrokerDeploymentBase_IsConstruct

func RabbitMqBrokerDeploymentBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func RabbitMqBrokerDeploymentBase_IsOwnedResource

func RabbitMqBrokerDeploymentBase_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func RabbitMqBrokerDeploymentBase_IsResource

func RabbitMqBrokerDeploymentBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func RabbitMqBrokerInstance_IsConstruct

func RabbitMqBrokerInstance_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

func RabbitMqBrokerInstance_IsOwnedResource

func RabbitMqBrokerInstance_IsOwnedResource(construct constructs.IConstruct) *bool

Returns true if the construct was created by CDK, and false otherwise. Experimental.

func RabbitMqBrokerInstance_IsResource

func RabbitMqBrokerInstance_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func RabbitMqCustomResourcePolicy_ANY_RESOURCE added in v0.1.1

func RabbitMqCustomResourcePolicy_ANY_RESOURCE() *[]*string

func RabbitMqCustomResource_IsConstruct added in v0.1.1

func RabbitMqCustomResource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.

Types

type ActiveMqAuthenticationStrategy

type ActiveMqAuthenticationStrategy string

Amazon MQ for ActiveMQ's authentication strategy. Experimental.

const (
	// Experimental.
	ActiveMqAuthenticationStrategy_SIMPLE ActiveMqAuthenticationStrategy = "SIMPLE"
	// Experimental.
	ActiveMqAuthenticationStrategy_LDAP ActiveMqAuthenticationStrategy = "LDAP"
)

type ActiveMqBrokerConfiguration

type ActiveMqBrokerConfiguration interface {
	BrokerConfiguration
	// Experimental.
	Arn() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	// Experimental.
	Env() *awscdk.ResourceEnvironment
	// Experimental.
	Id() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// Experimental.
	Revision() *float64
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	AssociateWith(broker IActiveMqBrokerDeployment) ConfigurationAssociation
	// Experimental.
	CreateRevision(options *ActiveMqBrokerConfigurationOptions) IActiveMqBrokerConfiguration
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Experimental.

func NewActiveMqBrokerConfiguration

func NewActiveMqBrokerConfiguration(scope constructs.Construct, id *string, props *ActiveMqBrokerConfigurationProps) ActiveMqBrokerConfiguration

Experimental.

type ActiveMqBrokerConfigurationDefinition

type ActiveMqBrokerConfigurationDefinition interface {
	// Experimental.
	ToString() *string
}

Experimental.

func ActiveMqBrokerConfigurationDefinition_Data

func ActiveMqBrokerConfigurationDefinition_Data(data *string) ActiveMqBrokerConfigurationDefinition

Experimental.

func NewActiveMqBrokerConfigurationDefinition

func NewActiveMqBrokerConfigurationDefinition(data *string) ActiveMqBrokerConfigurationDefinition

Experimental.

type ActiveMqBrokerConfigurationOptions

type ActiveMqBrokerConfigurationOptions struct {
	// Experimental.
	Definition ActiveMqBrokerConfigurationDefinition `field:"required" json:"definition" yaml:"definition"`
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
}

Experimental.

type ActiveMqBrokerConfigurationProps

type ActiveMqBrokerConfigurationProps struct {
	// Experimental.
	Definition ActiveMqBrokerConfigurationDefinition `field:"required" json:"definition" yaml:"definition"`
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Experimental.
	EngineVersion ActiveMqBrokerEngineVersion `field:"required" json:"engineVersion" yaml:"engineVersion"`
	// Sets authentication strategy for the broker.
	// Default: - undefined; a SIMPLE authentication strategy will be applied.
	//
	// Experimental.
	AuthenticationStrategy ActiveMqAuthenticationStrategy `field:"optional" json:"authenticationStrategy" yaml:"authenticationStrategy"`
	// Experimental.
	ConfigurationName *string `field:"optional" json:"configurationName" yaml:"configurationName"`
}

Experimental.

type ActiveMqBrokerDeploymentBase

type ActiveMqBrokerDeploymentBase interface {
	BrokerDeploymentBase
	IActiveMqBrokerDeployment
	// Experimental.
	Arn() *string
	// Experimental.
	Configuration() IActiveMqBrokerConfiguration
	// Manages connections for the cluster.
	// Experimental.
	Connections() awsec2.Connections
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	// Experimental.
	Env() *awscdk.ResourceEnvironment
	// Experimental.
	Id() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	AssignConfigurationIdProperty(configuration *awsamazonmq.CfnBroker_ConfigurationIdProperty)
	// Experimental.
	ConfigureLogRetention()
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Experimental.
	Metric(metricName *string, options *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricAmqpMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricBurstBalance(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCpuCreditBalance(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCpuUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCurrentConnectionsCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricDequeueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricDispatchCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEnqueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEnqueueTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEstablishedConnectionsCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricExpiredCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricHeapUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricInactiveDurableTopicSubscribersCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricInFlightCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJobSchedulerStorePercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJournalFilesForFastRecovery(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJournalFilesForFullRecovery(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMemoryUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMqttMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkConnectorConnectionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkIn(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricOpenTransactionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricOpenwireMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricProducerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricQueueSize(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricReceiveCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricStompMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricStorePercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTempPercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalDequeueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalEnqueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalMessageCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalProducerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricVolumeReadOps(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricVolumeWriteOps(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricWsMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Experimental.

type ActiveMqBrokerDeploymentBaseProps

type ActiveMqBrokerDeploymentBaseProps struct {
	// 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
	//
	// Experimental.
	InstanceType awsec2.InstanceType `field:"required" json:"instanceType" yaml:"instanceType"`
	// Specifies whether the broker is open to public Internet or deployed with endpoints in own VPC.
	// Experimental.
	PubliclyAccessible *bool `field:"required" json:"publiclyAccessible" yaml:"publiclyAccessible"`
	// 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.
	//
	// Experimental.
	AutoMinorVersionUpgrade *bool `field:"optional" json:"autoMinorVersionUpgrade" yaml:"autoMinorVersionUpgrade"`
	// Experimental.
	BrokerName *string `field:"optional" json:"brokerName" yaml:"brokerName"`
	// Sets the retention days for the broker's CloudWatch LogGroups.
	// Default: - undefined; CloudWatch Log Groups retention is set to never expire.
	//
	// Experimental.
	CloudwatchLogsRetention awslogs.RetentionDays `field:"optional" json:"cloudwatchLogsRetention" yaml:"cloudwatchLogsRetention"`
	// Experimental.
	CloudwatchLogsRetentionRole awsiam.IRole `field:"optional" json:"cloudwatchLogsRetentionRole" yaml:"cloudwatchLogsRetentionRole"`
	// Experimental.
	Key awskms.IKey `field:"optional" json:"key" yaml:"key"`
	// Experimental.
	MaintenanceWindowStartTime *MaintenanceWindowStartTime `field:"optional" json:"maintenanceWindowStartTime" yaml:"maintenanceWindowStartTime"`
	// 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.
	//
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
	// The VPC in which create the communication endpoints for a private broker.
	// Default: - undefined. A default VPC will be used
	//
	// Experimental.
	Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
	// vpcSubnets and vpc are optional.
	//
	// But when present - publiclyAccessible attribute must equal false.
	// Default: - undefined. If vpc is present - this attribute must be present.
	//
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
	// Sets the User Management option for the Amazon MQ for ActiveMQ broker.
	// Experimental.
	UserManagement IActiveMqBrokerUserManagement `field:"required" json:"userManagement" yaml:"userManagement"`
	// Sets the version of the Amazon MQ for ActiveMQ broker engine.
	// Experimental.
	Version ActiveMqBrokerEngineVersion `field:"required" json:"version" yaml:"version"`
	// Sets the CloudWatch Logs exports for the Amazon MQ for ActiveMQ broker.
	// Default: - undefined; No logs are exported to CloudWatch.
	//
	// Experimental.
	CloudwatchLogsExports *ActiveMqCloudwatchLogsExports `field:"optional" json:"cloudwatchLogsExports" yaml:"cloudwatchLogsExports"`
	// Sets the configuration of the Amazon MQ for ActiveMQ broker.
	// Experimental.
	Configuration IActiveMqBrokerConfiguration `field:"optional" json:"configuration" yaml:"configuration"`
	// Sets the number of days to retain logs for the Amazon MQ for ActiveMQ broker.
	// Experimental.
	LogsRetentionDays *float64 `field:"optional" json:"logsRetentionDays" yaml:"logsRetentionDays"`
	// Experimental.
	DeploymentMode BrokerDeploymentMode `field:"required" json:"deploymentMode" yaml:"deploymentMode"`
}

Experimental.

type ActiveMqBrokerDeploymentProps

type ActiveMqBrokerDeploymentProps struct {
	// 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
	//
	// Experimental.
	InstanceType awsec2.InstanceType `field:"required" json:"instanceType" yaml:"instanceType"`
	// Specifies whether the broker is open to public Internet or deployed with endpoints in own VPC.
	// Experimental.
	PubliclyAccessible *bool `field:"required" json:"publiclyAccessible" yaml:"publiclyAccessible"`
	// 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.
	//
	// Experimental.
	AutoMinorVersionUpgrade *bool `field:"optional" json:"autoMinorVersionUpgrade" yaml:"autoMinorVersionUpgrade"`
	// Experimental.
	BrokerName *string `field:"optional" json:"brokerName" yaml:"brokerName"`
	// Sets the retention days for the broker's CloudWatch LogGroups.
	// Default: - undefined; CloudWatch Log Groups retention is set to never expire.
	//
	// Experimental.
	CloudwatchLogsRetention awslogs.RetentionDays `field:"optional" json:"cloudwatchLogsRetention" yaml:"cloudwatchLogsRetention"`
	// Experimental.
	CloudwatchLogsRetentionRole awsiam.IRole `field:"optional" json:"cloudwatchLogsRetentionRole" yaml:"cloudwatchLogsRetentionRole"`
	// Experimental.
	Key awskms.IKey `field:"optional" json:"key" yaml:"key"`
	// Experimental.
	MaintenanceWindowStartTime *MaintenanceWindowStartTime `field:"optional" json:"maintenanceWindowStartTime" yaml:"maintenanceWindowStartTime"`
	// 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.
	//
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
	// The VPC in which create the communication endpoints for a private broker.
	// Default: - undefined. A default VPC will be used
	//
	// Experimental.
	Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
	// vpcSubnets and vpc are optional.
	//
	// But when present - publiclyAccessible attribute must equal false.
	// Default: - undefined. If vpc is present - this attribute must be present.
	//
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
	// Sets the User Management option for the Amazon MQ for ActiveMQ broker.
	// Experimental.
	UserManagement IActiveMqBrokerUserManagement `field:"required" json:"userManagement" yaml:"userManagement"`
	// Sets the version of the Amazon MQ for ActiveMQ broker engine.
	// Experimental.
	Version ActiveMqBrokerEngineVersion `field:"required" json:"version" yaml:"version"`
	// Sets the CloudWatch Logs exports for the Amazon MQ for ActiveMQ broker.
	// Default: - undefined; No logs are exported to CloudWatch.
	//
	// Experimental.
	CloudwatchLogsExports *ActiveMqCloudwatchLogsExports `field:"optional" json:"cloudwatchLogsExports" yaml:"cloudwatchLogsExports"`
	// Sets the configuration of the Amazon MQ for ActiveMQ broker.
	// Experimental.
	Configuration IActiveMqBrokerConfiguration `field:"optional" json:"configuration" yaml:"configuration"`
	// Sets the number of days to retain logs for the Amazon MQ for ActiveMQ broker.
	// Experimental.
	LogsRetentionDays *float64 `field:"optional" json:"logsRetentionDays" yaml:"logsRetentionDays"`
}

Experimental.

type ActiveMqBrokerDeploymentUserManagementDefinition

type ActiveMqBrokerDeploymentUserManagementDefinition struct {
	// Experimental.
	Users *[]*awsamazonmq.CfnBroker_UserProperty `field:"required" json:"users" yaml:"users"`
	// Experimental.
	AuthenticationStrategy ActiveMqAuthenticationStrategy `field:"optional" json:"authenticationStrategy" yaml:"authenticationStrategy"`
	// Experimental.
	LdapServerMetadata *awsamazonmq.CfnBroker_LdapServerMetadataProperty `field:"optional" json:"ldapServerMetadata" yaml:"ldapServerMetadata"`
}

Experimental.

type ActiveMqBrokerEndpoints

type ActiveMqBrokerEndpoints struct {
	// The AMQP endpoint of the broker.
	// Experimental.
	Amqp *BrokerEndpoint `field:"required" json:"amqp" yaml:"amqp"`
	// Experimental.
	Console *BrokerEndpoint `field:"required" json:"console" yaml:"console"`
	// The MQTT endpoint of the broker.
	// Experimental.
	Mqtt *BrokerEndpoint `field:"required" json:"mqtt" yaml:"mqtt"`
	// The OpenWire endpoint of the broker.
	// Experimental.
	OpenWire *BrokerEndpoint `field:"required" json:"openWire" yaml:"openWire"`
	// The STOMP endpoint of the broker.
	// Experimental.
	Stomp *BrokerEndpoint `field:"required" json:"stomp" yaml:"stomp"`
	// The WSS endpoint of the broker.
	// Experimental.
	Wss *BrokerEndpoint `field:"required" json:"wss" yaml:"wss"`
}

Experimental.

type ActiveMqBrokerEngineVersion

type ActiveMqBrokerEngineVersion interface {
	// Experimental.
	ToString() *string
}

The Amazon ActiveMQ Broker Engine version. See: https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/activemq-version-management.html

Experimental.

func ActiveMqBrokerEngineVersion_Of

func ActiveMqBrokerEngineVersion_Of(version *string) ActiveMqBrokerEngineVersion

Experimental.

func ActiveMqBrokerEngineVersion_V5_16_7

func ActiveMqBrokerEngineVersion_V5_16_7() ActiveMqBrokerEngineVersion

func ActiveMqBrokerEngineVersion_V5_17_6

func ActiveMqBrokerEngineVersion_V5_17_6() ActiveMqBrokerEngineVersion

func ActiveMqBrokerEngineVersion_V5_18

func ActiveMqBrokerEngineVersion_V5_18() ActiveMqBrokerEngineVersion

func NewActiveMqBrokerEngineVersion

func NewActiveMqBrokerEngineVersion(version *string) ActiveMqBrokerEngineVersion

Experimental.

type ActiveMqBrokerInstance

type ActiveMqBrokerInstance interface {
	ActiveMqBrokerDeploymentBase
	IActiveMqBroker
	// Experimental.
	Arn() *string
	// Experimental.
	Configuration() IActiveMqBrokerConfiguration
	// Manages connections for the cluster.
	// Experimental.
	Connections() awsec2.Connections
	// Gets the available endpoints of the Amazon MQ for ActiveMQ broker.
	// Experimental.
	Endpoints() *ActiveMqBrokerEndpoints
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	// Experimental.
	Env() *awscdk.ResourceEnvironment
	// Experimental.
	Id() *string
	// Gets the IP address of the ENI of the Amazon MQ for ActiveMQ broker.
	// Experimental.
	IpAddress() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	AssignConfigurationIdProperty(configuration *awsamazonmq.CfnBroker_ConfigurationIdProperty)
	// Experimental.
	ConfigureLogRetention()
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Experimental.
	Metric(metricName *string, options *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricAmqpMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricBurstBalance(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCpuCreditBalance(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCpuUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCurrentConnectionsCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricDequeueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricDispatchCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEnqueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEnqueueTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEstablishedConnectionsCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricExpiredCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricHeapUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricInactiveDurableTopicSubscribersCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricInFlightCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJobSchedulerStorePercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJournalFilesForFastRecovery(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJournalFilesForFullRecovery(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMemoryUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMqttMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkConnectorConnectionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkIn(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricOpenTransactionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricOpenwireMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricProducerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricQueueSize(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricReceiveCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricStompMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricStorePercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTempPercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalDequeueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalEnqueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalMessageCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalProducerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricVolumeReadOps(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricVolumeWriteOps(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricWsMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

A representation of a single-instance broker comprised of one broker in one Availability Zone.

see: https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/single-broker-deployment.html Experimental.

func NewActiveMqBrokerInstance

func NewActiveMqBrokerInstance(scope constructs.Construct, id *string, props *ActiveMqBrokerInstanceProps) ActiveMqBrokerInstance

Experimental.

type ActiveMqBrokerInstanceProps

type ActiveMqBrokerInstanceProps struct {
	// 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
	//
	// Experimental.
	InstanceType awsec2.InstanceType `field:"required" json:"instanceType" yaml:"instanceType"`
	// Specifies whether the broker is open to public Internet or deployed with endpoints in own VPC.
	// Experimental.
	PubliclyAccessible *bool `field:"required" json:"publiclyAccessible" yaml:"publiclyAccessible"`
	// 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.
	//
	// Experimental.
	AutoMinorVersionUpgrade *bool `field:"optional" json:"autoMinorVersionUpgrade" yaml:"autoMinorVersionUpgrade"`
	// Experimental.
	BrokerName *string `field:"optional" json:"brokerName" yaml:"brokerName"`
	// Sets the retention days for the broker's CloudWatch LogGroups.
	// Default: - undefined; CloudWatch Log Groups retention is set to never expire.
	//
	// Experimental.
	CloudwatchLogsRetention awslogs.RetentionDays `field:"optional" json:"cloudwatchLogsRetention" yaml:"cloudwatchLogsRetention"`
	// Experimental.
	CloudwatchLogsRetentionRole awsiam.IRole `field:"optional" json:"cloudwatchLogsRetentionRole" yaml:"cloudwatchLogsRetentionRole"`
	// Experimental.
	Key awskms.IKey `field:"optional" json:"key" yaml:"key"`
	// Experimental.
	MaintenanceWindowStartTime *MaintenanceWindowStartTime `field:"optional" json:"maintenanceWindowStartTime" yaml:"maintenanceWindowStartTime"`
	// 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.
	//
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
	// The VPC in which create the communication endpoints for a private broker.
	// Default: - undefined. A default VPC will be used
	//
	// Experimental.
	Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
	// vpcSubnets and vpc are optional.
	//
	// But when present - publiclyAccessible attribute must equal false.
	// Default: - undefined. If vpc is present - this attribute must be present.
	//
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
	// Sets the User Management option for the Amazon MQ for ActiveMQ broker.
	// Experimental.
	UserManagement IActiveMqBrokerUserManagement `field:"required" json:"userManagement" yaml:"userManagement"`
	// Sets the version of the Amazon MQ for ActiveMQ broker engine.
	// Experimental.
	Version ActiveMqBrokerEngineVersion `field:"required" json:"version" yaml:"version"`
	// Sets the CloudWatch Logs exports for the Amazon MQ for ActiveMQ broker.
	// Default: - undefined; No logs are exported to CloudWatch.
	//
	// Experimental.
	CloudwatchLogsExports *ActiveMqCloudwatchLogsExports `field:"optional" json:"cloudwatchLogsExports" yaml:"cloudwatchLogsExports"`
	// Sets the configuration of the Amazon MQ for ActiveMQ broker.
	// Experimental.
	Configuration IActiveMqBrokerConfiguration `field:"optional" json:"configuration" yaml:"configuration"`
	// Sets the number of days to retain logs for the Amazon MQ for ActiveMQ broker.
	// Experimental.
	LogsRetentionDays *float64 `field:"optional" json:"logsRetentionDays" yaml:"logsRetentionDays"`
	// Sets the storage type of the Amazon MQ for ActiveMQ broker.
	// Default: - undefined; EFS will be used.
	//
	// Experimental.
	StorageType StorageType `field:"optional" json:"storageType" yaml:"storageType"`
}

Experimental.

type ActiveMqBrokerRedundantPair

type ActiveMqBrokerRedundantPair interface {
	ActiveMqBrokerDeploymentBase
	// Experimental.
	Arn() *string
	// Experimental.
	Configuration() IActiveMqBrokerConfiguration
	// Manages connections for the cluster.
	// Experimental.
	Connections() awsec2.Connections
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	// Experimental.
	Env() *awscdk.ResourceEnvironment
	// The first broker of the redundant pair for the deployment.
	// Experimental.
	First() IActiveMqBroker
	// Experimental.
	Id() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The second broker of the redundant pair for the deployment.
	// Experimental.
	Second() IActiveMqBroker
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	AssignConfigurationIdProperty(configuration *awsamazonmq.CfnBroker_ConfigurationIdProperty)
	// Experimental.
	ConfigureLogRetention()
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Experimental.
	Metric(metricName *string, options *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricAmqpMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricBurstBalance(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCpuCreditBalance(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCpuUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCurrentConnectionsCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricDequeueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricDispatchCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEnqueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEnqueueTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEstablishedConnectionsCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricExpiredCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricHeapUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricInactiveDurableTopicSubscribersCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricInFlightCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJobSchedulerStorePercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJournalFilesForFastRecovery(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJournalFilesForFullRecovery(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMemoryUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMqttMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkConnectorConnectionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkIn(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricOpenTransactionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricOpenwireMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricProducerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricQueueSize(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricReceiveCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricStompMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricStorePercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTempPercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalDequeueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalEnqueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalMessageCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalProducerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricVolumeReadOps(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricVolumeWriteOps(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricWsMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

A representation of an active/standby broker that is comprised of two brokers in two different Availability Zones.

see: https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/active-standby-broker-deployment.html Experimental.

func NewActiveMqBrokerRedundantPair

func NewActiveMqBrokerRedundantPair(scope constructs.Construct, id *string, props *ActiveMqBrokerRedundantPairProps) ActiveMqBrokerRedundantPair

Experimental.

type ActiveMqBrokerRedundantPairProps

type ActiveMqBrokerRedundantPairProps struct {
	// 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
	//
	// Experimental.
	InstanceType awsec2.InstanceType `field:"required" json:"instanceType" yaml:"instanceType"`
	// Specifies whether the broker is open to public Internet or deployed with endpoints in own VPC.
	// Experimental.
	PubliclyAccessible *bool `field:"required" json:"publiclyAccessible" yaml:"publiclyAccessible"`
	// 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.
	//
	// Experimental.
	AutoMinorVersionUpgrade *bool `field:"optional" json:"autoMinorVersionUpgrade" yaml:"autoMinorVersionUpgrade"`
	// Experimental.
	BrokerName *string `field:"optional" json:"brokerName" yaml:"brokerName"`
	// Sets the retention days for the broker's CloudWatch LogGroups.
	// Default: - undefined; CloudWatch Log Groups retention is set to never expire.
	//
	// Experimental.
	CloudwatchLogsRetention awslogs.RetentionDays `field:"optional" json:"cloudwatchLogsRetention" yaml:"cloudwatchLogsRetention"`
	// Experimental.
	CloudwatchLogsRetentionRole awsiam.IRole `field:"optional" json:"cloudwatchLogsRetentionRole" yaml:"cloudwatchLogsRetentionRole"`
	// Experimental.
	Key awskms.IKey `field:"optional" json:"key" yaml:"key"`
	// Experimental.
	MaintenanceWindowStartTime *MaintenanceWindowStartTime `field:"optional" json:"maintenanceWindowStartTime" yaml:"maintenanceWindowStartTime"`
	// 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.
	//
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
	// The VPC in which create the communication endpoints for a private broker.
	// Default: - undefined. A default VPC will be used
	//
	// Experimental.
	Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
	// vpcSubnets and vpc are optional.
	//
	// But when present - publiclyAccessible attribute must equal false.
	// Default: - undefined. If vpc is present - this attribute must be present.
	//
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
	// Sets the User Management option for the Amazon MQ for ActiveMQ broker.
	// Experimental.
	UserManagement IActiveMqBrokerUserManagement `field:"required" json:"userManagement" yaml:"userManagement"`
	// Sets the version of the Amazon MQ for ActiveMQ broker engine.
	// Experimental.
	Version ActiveMqBrokerEngineVersion `field:"required" json:"version" yaml:"version"`
	// Sets the CloudWatch Logs exports for the Amazon MQ for ActiveMQ broker.
	// Default: - undefined; No logs are exported to CloudWatch.
	//
	// Experimental.
	CloudwatchLogsExports *ActiveMqCloudwatchLogsExports `field:"optional" json:"cloudwatchLogsExports" yaml:"cloudwatchLogsExports"`
	// Sets the configuration of the Amazon MQ for ActiveMQ broker.
	// Experimental.
	Configuration IActiveMqBrokerConfiguration `field:"optional" json:"configuration" yaml:"configuration"`
	// Sets the number of days to retain logs for the Amazon MQ for ActiveMQ broker.
	// Experimental.
	LogsRetentionDays *float64 `field:"optional" json:"logsRetentionDays" yaml:"logsRetentionDays"`
}

Experimental.

type ActiveMqBrokerUserManagement

type ActiveMqBrokerUserManagement interface {
}

Experimental.

func NewActiveMqBrokerUserManagement

func NewActiveMqBrokerUserManagement() ActiveMqBrokerUserManagement

Experimental.

type ActiveMqCloudwatchLogsExports

type ActiveMqCloudwatchLogsExports struct {
	// Export audit logs to CloudWatch.
	// Default: - undefined; do not export audit logs.
	//
	// Experimental.
	Audit *bool `field:"optional" json:"audit" yaml:"audit"`
	// Export general logs to CloudWatch.
	// Default: - undefined; do not export general logs.
	//
	// Experimental.
	General *bool `field:"optional" json:"general" yaml:"general"`
}

Experimental.

type ActiveMqEventSource

type ActiveMqEventSource interface {
	EventSourceBase
	awslambda.IEventSource
	// Experimental.
	MqType() *string
	// properties of the RabbitMQ event source.
	// Experimental.
	Props() *EventSourceBaseProps
	// Experimental.
	AddToSourceAccessConfigurations(config *awslambda.SourceAccessConfiguration)
	// Called by `lambda.addEventSource` to allow the event source to bind to this function.
	// Experimental.
	Bind(target awslambda.IFunction)
}

Represents an AWS Lambda Event Source Mapping for ActiveMQ.

This event source will add additional permissions to the AWS Lambda function's IAM Role following https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#events-mq-permissions Experimental.

func NewActiveMqEventSource

func NewActiveMqEventSource(props *ActiveMqEventSourceProps) ActiveMqEventSource

Instantiates an AWS Lambda Event Source Mapping for ActiveMQ.

This event source will add additional permissions to the AWS Lambda function's IAM Role following https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#events-mq-permissions Experimental.

type ActiveMqEventSourceProps

type ActiveMqEventSourceProps struct {
	// A secret with credentials of the user to use when receiving messages.
	//
	// The credentials in the secret have fields required:
	//  * username
	// * password.
	// Experimental.
	Credentials awssecretsmanager.ISecret `field:"required" json:"credentials" yaml:"credentials"`
	// The name of the queue that the function will receive messages from.
	// Experimental.
	QueueName *string `field:"required" json:"queueName" yaml:"queueName"`
	// If the default permissions should be added to the Lambda function's execution role.
	// Default: true.
	//
	// Experimental.
	AddPermissions *bool `field:"optional" json:"addPermissions" yaml:"addPermissions"`
	// source at the time of invoking your function.
	//
	// Your function receives an
	// The largest number of records that AWS Lambda will retrieve from your event
	// event with all the retrieved records.
	//
	// Valid Range:
	// * Minimum value of 1
	// * Maximum value of: 10000.
	// Default: 100.
	//
	// Experimental.
	BatchSize *float64 `field:"optional" json:"batchSize" yaml:"batchSize"`
	// If the stream event source mapping should be enabled.
	// Default: true.
	//
	// Experimental.
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// The maximum amount of time to gather records before invoking the function.
	//
	// Maximum of Duration.minutes(5).
	// See: https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-batching
	//
	// Default: - Duration.millis(500) for Amazon MQ.
	//
	// Experimental.
	MaxBatchingWindow awscdk.Duration `field:"optional" json:"maxBatchingWindow" yaml:"maxBatchingWindow"`
	// The ActiveMQ broker deployment to receive messages from.
	// Experimental.
	Broker IActiveMqBrokerDeployment `field:"required" json:"broker" yaml:"broker"`
}

Experimental.

type ActiveMqLdapAuthorization

type ActiveMqLdapAuthorization struct {
	// Sets the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory.
	//
	// Optional failover server.
	// Experimental.
	Hosts *[]*string `field:"required" json:"hosts" yaml:"hosts"`
	// The distinguished name of the node in the directory information tree (DIT) to search for roles or groups.
	//
	// For example, ou=group, ou=corp, dc=corp, dc=example, dc=com.
	// Experimental.
	RoleBase *string `field:"required" json:"roleBase" yaml:"roleBase"`
	// The LDAP search filter used to find roles within the roleBase.
	//
	// The distinguished name of the user matched by userSearchMatching is substituted into the {0} placeholder in the search filter. The client's username is substituted into the {1} placeholder. For example, if you set this option to (member=uid={1}) for the user janedoe, the search filter becomes (member=uid=janedoe) after string substitution. It matches all role entries that have a member attribute equal to uid=janedoe under the subtree selected by the RoleBases.
	// Experimental.
	RoleSearchMatching *string `field:"required" json:"roleSearchMatching" yaml:"roleSearchMatching"`
	// Service account password.
	//
	// A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin,dc=corp, dc=example, dc=com.
	// Experimental.
	ServiceAccountPassword awscdk.SecretValue `field:"required" json:"serviceAccountPassword" yaml:"serviceAccountPassword"`
	// Service account username.
	//
	// A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin, ou=corp, dc=corp, dc=example, dc=com.
	// Experimental.
	ServiceAccountUsername awscdk.SecretValue `field:"required" json:"serviceAccountUsername" yaml:"serviceAccountUsername"`
	// Select a particular subtree of the directory information tree (DIT) to search for user entries.
	//
	// The subtree is specified by a DN, which specifies the base node of the subtree. For example, by setting this option to ou=Users,ou=corp, dc=corp, dc=example, dc=com, the search for user entries is restricted to the subtree beneath ou=Users,ou=corp, dc=corp, dc=example, dc=com.
	// Experimental.
	UserBase *string `field:"required" json:"userBase" yaml:"userBase"`
	// The name of the LDAP attribute in the user's directory entry for the user's group membership.
	//
	// In some cases, user roles may be identified by the value of an attribute in the user's directory entry. The UserRoleName option allows you to provide the name of this attribute.
	// Experimental.
	UserRoleName *string `field:"required" json:"userRoleName" yaml:"userRoleName"`
	// The LDAP search filter used to find users within the userBase.
	//
	// The client's username is substituted into the {0} placeholder in the search filter. For example, if this option is set to (uid={0}) and the received username is janedoe, the search filter becomes (uid=janedoe) after string substitution. It will result in matching an entry like uid=janedoe, ou=Users, ou=corp, dc=corp, dc=example, dc=com.
	// Experimental.
	UserSearchMatching *string `field:"required" json:"userSearchMatching" yaml:"userSearchMatching"`
	// The group name attribute in a role entry whose value is the name of that role.
	//
	// For example, you can specify cn for a group entry's common name. If authentication succeeds, then the user is assigned the the value of the cn attribute for each role entry that they are a member of.
	// Experimental.
	RoleName *string `field:"optional" json:"roleName" yaml:"roleName"`
	// The directory search scope for the role.
	//
	// If set to true, scope is to search the entire subtree.
	// Experimental.
	RoleSearchSubtree *bool `field:"optional" json:"roleSearchSubtree" yaml:"roleSearchSubtree"`
	// The directory search scope for the user.
	//
	// If set to true, scope is to search the entire subtree.
	// Experimental.
	UserSearchSubtree *bool `field:"optional" json:"userSearchSubtree" yaml:"userSearchSubtree"`
}

Experimental.

type ActiveMqUser

type ActiveMqUser struct {
	// Experimental.
	Password awscdk.SecretValue `field:"required" json:"password" yaml:"password"`
	// Experimental.
	Username *string `field:"required" json:"username" yaml:"username"`
	// Experimental.
	Groups *[]*string `field:"optional" json:"groups" yaml:"groups"`
	// Experimental.
	HasConsoleAccess *bool `field:"optional" json:"hasConsoleAccess" yaml:"hasConsoleAccess"`
}

Experimental.

type Admin

type Admin struct {
	// Sets the administrative user password.
	// Experimental.
	Password awscdk.SecretValue `field:"required" json:"password" yaml:"password"`
	// Sets the administrative user name.
	// Experimental.
	Username *string `field:"required" json:"username" yaml:"username"`
}

Experimental.

type BrokerCloudwatchLogsExports

type BrokerCloudwatchLogsExports struct {
	// Experimental.
	Audit *bool `field:"optional" json:"audit" yaml:"audit"`
	// Experimental.
	Channel *bool `field:"optional" json:"channel" yaml:"channel"`
	// Experimental.
	Connection *bool `field:"optional" json:"connection" yaml:"connection"`
	// Experimental.
	General *bool `field:"optional" json:"general" yaml:"general"`
	// Experimental.
	Mirroring *bool `field:"optional" json:"mirroring" yaml:"mirroring"`
}

Experimental.

type BrokerConfiguration

type BrokerConfiguration interface {
	awscdk.Resource
	IBrokerConfiguration
	// Experimental.
	Arn() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	// Experimental.
	Env() *awscdk.ResourceEnvironment
	// Experimental.
	Id() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// Experimental.
	Revision() *float64
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Experimental.

type BrokerConfigurationAttributes

type BrokerConfigurationAttributes struct {
	// Experimental.
	Revision *float64 `field:"required" json:"revision" yaml:"revision"`
	// Experimental.
	Arn *string `field:"optional" json:"arn" yaml:"arn"`
	// Experimental.
	Id *string `field:"optional" json:"id" yaml:"id"`
}

Experimental.

type BrokerDeploymentBase

type BrokerDeploymentBase interface {
	awscdk.Resource
	IBrokerDeployment
	// Experimental.
	Arn() *string
	// Manages connections for the cluster.
	// Experimental.
	Connections() awsec2.Connections
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	// Experimental.
	Env() *awscdk.ResourceEnvironment
	// Experimental.
	Id() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	AssignConfigurationIdProperty(configuration *awsamazonmq.CfnBroker_ConfigurationIdProperty)
	// Experimental.
	ConfigureLogRetention()
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Experimental.
	Metric(metricName *string, options *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Experimental.

type BrokerDeploymentBaseProps

type BrokerDeploymentBaseProps struct {
	// 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
	//
	// Experimental.
	InstanceType awsec2.InstanceType `field:"required" json:"instanceType" yaml:"instanceType"`
	// Specifies whether the broker is open to public Internet or deployed with endpoints in own VPC.
	// Experimental.
	PubliclyAccessible *bool `field:"required" json:"publiclyAccessible" yaml:"publiclyAccessible"`
	// 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.
	//
	// Experimental.
	AutoMinorVersionUpgrade *bool `field:"optional" json:"autoMinorVersionUpgrade" yaml:"autoMinorVersionUpgrade"`
	// Experimental.
	BrokerName *string `field:"optional" json:"brokerName" yaml:"brokerName"`
	// Sets the retention days for the broker's CloudWatch LogGroups.
	// Default: - undefined; CloudWatch Log Groups retention is set to never expire.
	//
	// Experimental.
	CloudwatchLogsRetention awslogs.RetentionDays `field:"optional" json:"cloudwatchLogsRetention" yaml:"cloudwatchLogsRetention"`
	// Experimental.
	CloudwatchLogsRetentionRole awsiam.IRole `field:"optional" json:"cloudwatchLogsRetentionRole" yaml:"cloudwatchLogsRetentionRole"`
	// Experimental.
	Key awskms.IKey `field:"optional" json:"key" yaml:"key"`
	// Experimental.
	MaintenanceWindowStartTime *MaintenanceWindowStartTime `field:"optional" json:"maintenanceWindowStartTime" yaml:"maintenanceWindowStartTime"`
	// 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.
	//
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
	// The VPC in which create the communication endpoints for a private broker.
	// Default: - undefined. A default VPC will be used
	//
	// Experimental.
	Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
	// vpcSubnets and vpc are optional.
	//
	// But when present - publiclyAccessible attribute must equal false.
	// Default: - undefined. If vpc is present - this attribute must be present.
	//
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
	// Experimental.
	DeploymentMode BrokerDeploymentMode `field:"required" json:"deploymentMode" yaml:"deploymentMode"`
	// Experimental.
	Engine BrokerEngine `field:"required" json:"engine" yaml:"engine"`
	// Experimental.
	Users *[]*awsamazonmq.CfnBroker_UserProperty `field:"required" json:"users" yaml:"users"`
	// Experimental.
	Version *string `field:"required" json:"version" yaml:"version"`
	// Experimental.
	AuthenticationStrategy *string `field:"optional" json:"authenticationStrategy" yaml:"authenticationStrategy"`
	// Experimental.
	CloudwatchLogsExports *BrokerCloudwatchLogsExports `field:"optional" json:"cloudwatchLogsExports" yaml:"cloudwatchLogsExports"`
	// Experimental.
	Configuration IBrokerConfiguration `field:"optional" json:"configuration" yaml:"configuration"`
	// Experimental.
	DefaultPort awsec2.Port `field:"optional" json:"defaultPort" yaml:"defaultPort"`
	// Experimental.
	LdapServerMetadata interface{} `field:"optional" json:"ldapServerMetadata" yaml:"ldapServerMetadata"`
	// Experimental.
	StorageType StorageType `field:"optional" json:"storageType" yaml:"storageType"`
}

Experimental.

type BrokerDeploymentMode

type BrokerDeploymentMode string

Experimental.

const (
	// Experimental.
	BrokerDeploymentMode_CLUSTER_MULTI_AZ BrokerDeploymentMode = "CLUSTER_MULTI_AZ"
	// Experimental.
	BrokerDeploymentMode_SINGLE_INSTANCE BrokerDeploymentMode = "SINGLE_INSTANCE"
	// Experimental.
	BrokerDeploymentMode_ACTIVE_STANDBY_MULTI_AZ BrokerDeploymentMode = "ACTIVE_STANDBY_MULTI_AZ"
)

type BrokerDeploymentProps

type BrokerDeploymentProps struct {
	// 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
	//
	// Experimental.
	InstanceType awsec2.InstanceType `field:"required" json:"instanceType" yaml:"instanceType"`
	// Specifies whether the broker is open to public Internet or deployed with endpoints in own VPC.
	// Experimental.
	PubliclyAccessible *bool `field:"required" json:"publiclyAccessible" yaml:"publiclyAccessible"`
	// 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.
	//
	// Experimental.
	AutoMinorVersionUpgrade *bool `field:"optional" json:"autoMinorVersionUpgrade" yaml:"autoMinorVersionUpgrade"`
	// Experimental.
	BrokerName *string `field:"optional" json:"brokerName" yaml:"brokerName"`
	// Sets the retention days for the broker's CloudWatch LogGroups.
	// Default: - undefined; CloudWatch Log Groups retention is set to never expire.
	//
	// Experimental.
	CloudwatchLogsRetention awslogs.RetentionDays `field:"optional" json:"cloudwatchLogsRetention" yaml:"cloudwatchLogsRetention"`
	// Experimental.
	CloudwatchLogsRetentionRole awsiam.IRole `field:"optional" json:"cloudwatchLogsRetentionRole" yaml:"cloudwatchLogsRetentionRole"`
	// Experimental.
	Key awskms.IKey `field:"optional" json:"key" yaml:"key"`
	// Experimental.
	MaintenanceWindowStartTime *MaintenanceWindowStartTime `field:"optional" json:"maintenanceWindowStartTime" yaml:"maintenanceWindowStartTime"`
	// 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.
	//
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
	// The VPC in which create the communication endpoints for a private broker.
	// Default: - undefined. A default VPC will be used
	//
	// Experimental.
	Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
	// vpcSubnets and vpc are optional.
	//
	// But when present - publiclyAccessible attribute must equal false.
	// Default: - undefined. If vpc is present - this attribute must be present.
	//
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
}

Experimental.

type BrokerEndpoint

type BrokerEndpoint struct {
	// The port at which the endpoint awaits communication.
	// Experimental.
	Port *float64 `field:"required" json:"port" yaml:"port"`
	// The full URL of the broker endpoint, including the port.
	// Experimental.
	Url *string `field:"required" json:"url" yaml:"url"`
}

Experimental.

type BrokerEngine

type BrokerEngine string

Experimental.

const (
	// Experimental.
	BrokerEngine_RABBITMQ BrokerEngine = "RABBITMQ"
	// Experimental.
	BrokerEngine_ACTIVEMQ BrokerEngine = "ACTIVEMQ"
)

type ConfigurationAssociation

type ConfigurationAssociation interface {
	awscdk.Resource
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	// Experimental.
	Env() *awscdk.ResourceEnvironment
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Experimental.

func NewConfigurationAssociation

func NewConfigurationAssociation(scope constructs.Construct, id *string, props *ConfigurationAssociationProps) ConfigurationAssociation

Experimental.

type ConfigurationAssociationProps

type ConfigurationAssociationProps struct {
	// Experimental.
	Broker IBrokerDeployment `field:"required" json:"broker" yaml:"broker"`
	// Experimental.
	Configuration IBrokerConfiguration `field:"required" json:"configuration" yaml:"configuration"`
}

Experimental.

type ConfigurationProps

type ConfigurationProps struct {
	// Experimental.
	Data *string `field:"required" json:"data" yaml:"data"`
	// Experimental.
	Engine BrokerEngine `field:"required" json:"engine" yaml:"engine"`
	// Experimental.
	AuthenticationStrategy ActiveMqAuthenticationStrategy `field:"optional" json:"authenticationStrategy" yaml:"authenticationStrategy"`
	// Experimental.
	ConfigurationName *string `field:"optional" json:"configurationName" yaml:"configurationName"`
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Experimental.
	EngineVersion *string `field:"optional" json:"engineVersion" yaml:"engineVersion"`
}

Experimental.

type DayOfWeek

type DayOfWeek string

Experimental.

const (
	// Experimental.
	DayOfWeek_MONDAY DayOfWeek = "MONDAY"
	// Experimental.
	DayOfWeek_TUESDAY DayOfWeek = "TUESDAY"
	// Experimental.
	DayOfWeek_WEDNESDAY DayOfWeek = "WEDNESDAY"
	// Experimental.
	DayOfWeek_THURSDAY DayOfWeek = "THURSDAY"
	// Experimental.
	DayOfWeek_FRIDAY DayOfWeek = "FRIDAY"
	// Experimental.
	DayOfWeek_SATURDAY DayOfWeek = "SATURDAY"
	// Experimental.
	DayOfWeek_SUNDAY DayOfWeek = "SUNDAY"
)

type EventSourceBase

type EventSourceBase interface {
	awslambda.IEventSource
	// Experimental.
	MqType() *string
	// properties of the RabbitMQ event source.
	// Experimental.
	Props() *EventSourceBaseProps
	// Experimental.
	AddToSourceAccessConfigurations(config *awslambda.SourceAccessConfiguration)
	// Called by `lambda.addEventSource` to allow the event source to bind to this function.
	// Experimental.
	Bind(target awslambda.IFunction)
}

Represents an AWS Lambda Event Source Mapping for RabbitMQ.

This event source will add additional permissions to the AWS Lambda function's IAM Role following https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#events-mq-permissions Experimental.

type EventSourceBaseProps

type EventSourceBaseProps struct {
	// A secret with credentials of the user to use when receiving messages.
	//
	// The credentials in the secret have fields required:
	//  * username
	// * password.
	// Experimental.
	Credentials awssecretsmanager.ISecret `field:"required" json:"credentials" yaml:"credentials"`
	// The name of the queue that the function will receive messages from.
	// Experimental.
	QueueName *string `field:"required" json:"queueName" yaml:"queueName"`
	// If the default permissions should be added to the Lambda function's execution role.
	// Default: true.
	//
	// Experimental.
	AddPermissions *bool `field:"optional" json:"addPermissions" yaml:"addPermissions"`
	// source at the time of invoking your function.
	//
	// Your function receives an
	// The largest number of records that AWS Lambda will retrieve from your event
	// event with all the retrieved records.
	//
	// Valid Range:
	// * Minimum value of 1
	// * Maximum value of: 10000.
	// Default: 100.
	//
	// Experimental.
	BatchSize *float64 `field:"optional" json:"batchSize" yaml:"batchSize"`
	// If the stream event source mapping should be enabled.
	// Default: true.
	//
	// Experimental.
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// The maximum amount of time to gather records before invoking the function.
	//
	// Maximum of Duration.minutes(5).
	// See: https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-batching
	//
	// Default: - Duration.millis(500) for Amazon MQ.
	//
	// Experimental.
	MaxBatchingWindow awscdk.Duration `field:"optional" json:"maxBatchingWindow" yaml:"maxBatchingWindow"`
	// The Amazon MQ broker deployment to receive messages from.
	// Experimental.
	Broker IBrokerDeployment `field:"required" json:"broker" yaml:"broker"`
}

Experimental.

type EventSourceProps

type EventSourceProps struct {
	// A secret with credentials of the user to use when receiving messages.
	//
	// The credentials in the secret have fields required:
	//  * username
	// * password.
	// Experimental.
	Credentials awssecretsmanager.ISecret `field:"required" json:"credentials" yaml:"credentials"`
	// The name of the queue that the function will receive messages from.
	// Experimental.
	QueueName *string `field:"required" json:"queueName" yaml:"queueName"`
	// If the default permissions should be added to the Lambda function's execution role.
	// Default: true.
	//
	// Experimental.
	AddPermissions *bool `field:"optional" json:"addPermissions" yaml:"addPermissions"`
	// source at the time of invoking your function.
	//
	// Your function receives an
	// The largest number of records that AWS Lambda will retrieve from your event
	// event with all the retrieved records.
	//
	// Valid Range:
	// * Minimum value of 1
	// * Maximum value of: 10000.
	// Default: 100.
	//
	// Experimental.
	BatchSize *float64 `field:"optional" json:"batchSize" yaml:"batchSize"`
	// If the stream event source mapping should be enabled.
	// Default: true.
	//
	// Experimental.
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// The maximum amount of time to gather records before invoking the function.
	//
	// Maximum of Duration.minutes(5).
	// See: https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-batching
	//
	// Default: - Duration.millis(500) for Amazon MQ.
	//
	// Experimental.
	MaxBatchingWindow awscdk.Duration `field:"optional" json:"maxBatchingWindow" yaml:"maxBatchingWindow"`
}

Experimental.

type HttpMethods added in v0.1.1

type HttpMethods string

All http request methods. Experimental.

const (
	// Experimental.
	HttpMethods_GET HttpMethods = "GET"
	// Experimental.
	HttpMethods_POST HttpMethods = "POST"
	// Experimental.
	HttpMethods_PUT HttpMethods = "PUT"
	// Experimental.
	HttpMethods_DELETE HttpMethods = "DELETE"
)

type IActiveMqBroker

type IActiveMqBroker interface {
	// A set of endpoints for the broker.
	// Experimental.
	Endpoints() *ActiveMqBrokerEndpoints
	// The IP address of the broker.
	// Experimental.
	IpAddress() *string
}

Experimental.

type IActiveMqBrokerConfiguration

type IActiveMqBrokerConfiguration interface {
	IBrokerConfiguration
	// Experimental.
	AssociateWith(broker IActiveMqBrokerDeployment) ConfigurationAssociation
	// Experimental.
	CreateRevision(options *ActiveMqBrokerConfigurationOptions) IActiveMqBrokerConfiguration
}

Experimental.

func ActiveMqBrokerConfiguration_FromAttributes

func ActiveMqBrokerConfiguration_FromAttributes(scope constructs.Construct, logicalId *string, attrs *BrokerConfigurationAttributes) IActiveMqBrokerConfiguration

Experimental.

type IActiveMqBrokerDeployment

type IActiveMqBrokerDeployment interface {
	IBrokerDeployment
	awscdk.IResource
	// Experimental.
	MetricAmqpMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricBurstBalance(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCpuCreditBalance(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCpuUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricCurrentConnectionsCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricDequeueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricDispatchCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEnqueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEnqueueTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricEstablishedConnectionsCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricExpiredCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricHeapUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricInactiveDurableTopicSubscribersCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricInFlightCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJobSchedulerStorePercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJournalFilesForFastRecovery(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricJournalFilesForFullRecovery(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMemoryUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMqttMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkConnectorConnectionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkIn(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricNetworkOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricOpenTransactionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricOpenwireMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricProducerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricQueueSize(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricReceiveCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricStompMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricStorePercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTempPercentUsage(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalDequeueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalEnqueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalMessageCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricTotalProducerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricVolumeReadOps(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricVolumeWriteOps(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricWsMaximumConnections(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
}

Experimental.

type IActiveMqBrokerUserManagement

type IActiveMqBrokerUserManagement interface {
	// Experimental.
	Render() *ActiveMqBrokerDeploymentUserManagementDefinition
}

Experimental.

func ActiveMqBrokerUserManagement_Ldap

func ActiveMqBrokerUserManagement_Ldap(options *LdapUserStoreOptions) IActiveMqBrokerUserManagement

Experimental.

func ActiveMqBrokerUserManagement_Simple

func ActiveMqBrokerUserManagement_Simple(options *SimpleAuthenticationUserManagementOptions) IActiveMqBrokerUserManagement

Experimental.

type IBrokerConfiguration

type IBrokerConfiguration interface {
	awscdk.IResource
	// Experimental.
	Arn() *string
	// Experimental.
	Id() *string
	// Experimental.
	Revision() *float64
}

Experimental.

type IBrokerDeployment

type IBrokerDeployment interface {
	awscdk.IResource
	// Experimental.
	Metric(metricName *string, options *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	Arn() *string
	// Experimental.
	Connections() awsec2.Connections
	// Experimental.
	Id() *string
	// Experimental.
	Name() *string
}

Experimental.

type IRabbitMqBroker

type IRabbitMqBroker interface {
	// Experimental.
	Endpoints() *RabbitMqBrokerEndpoints
}

Experimental.

type IRabbitMqBrokerConfiguration

type IRabbitMqBrokerConfiguration interface {
	IBrokerConfiguration
	// Experimental.
	AssociateWith(broker IRabbitMqBrokerDeployment) ConfigurationAssociation
	// Experimental.
	CreateRevision(options *RabbitMqBrokerConfigurationOptions) IRabbitMqBrokerConfiguration
}

Experimental.

func RabbitMqBrokerConfiguration_FromAttributes

func RabbitMqBrokerConfiguration_FromAttributes(scope constructs.Construct, logicalId *string, attrs *BrokerConfigurationAttributes) IRabbitMqBrokerConfiguration

Experimental.

type IRabbitMqBrokerDeployment

type IRabbitMqBrokerDeployment interface {
	IBrokerDeployment
	awscdk.IResource
	// Experimental.
	MetricAckRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricChannelCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConfirmRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConnectionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricExchangeCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageReadyCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageUnacknowledgedCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricPublishRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricQueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQDiskFree(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQDiskFreeLimit(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQFdUsed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQIOReadAverageTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQIOWriteAverageTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQMemLimit(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQMemUsed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricSystemCpuUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
}

Experimental.

type LdapUserStoreOptions

type LdapUserStoreOptions struct {
	// Sets the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory.
	//
	// Optional failover server.
	// Experimental.
	Hosts *[]*string `field:"required" json:"hosts" yaml:"hosts"`
	// The distinguished name of the node in the directory information tree (DIT) to search for roles or groups.
	//
	// For example, ou=group, ou=corp, dc=corp, dc=example, dc=com.
	// Experimental.
	RoleBase *string `field:"required" json:"roleBase" yaml:"roleBase"`
	// The LDAP search filter used to find roles within the roleBase.
	//
	// The distinguished name of the user matched by userSearchMatching is substituted into the {0} placeholder in the search filter. The client's username is substituted into the {1} placeholder. For example, if you set this option to (member=uid={1}) for the user janedoe, the search filter becomes (member=uid=janedoe) after string substitution. It matches all role entries that have a member attribute equal to uid=janedoe under the subtree selected by the RoleBases.
	// Experimental.
	RoleSearchMatching *string `field:"required" json:"roleSearchMatching" yaml:"roleSearchMatching"`
	// Service account password.
	//
	// A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin,dc=corp, dc=example, dc=com.
	// Experimental.
	ServiceAccountPassword awscdk.SecretValue `field:"required" json:"serviceAccountPassword" yaml:"serviceAccountPassword"`
	// Service account username.
	//
	// A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin, ou=corp, dc=corp, dc=example, dc=com.
	// Experimental.
	ServiceAccountUsername awscdk.SecretValue `field:"required" json:"serviceAccountUsername" yaml:"serviceAccountUsername"`
	// Select a particular subtree of the directory information tree (DIT) to search for user entries.
	//
	// The subtree is specified by a DN, which specifies the base node of the subtree. For example, by setting this option to ou=Users,ou=corp, dc=corp, dc=example, dc=com, the search for user entries is restricted to the subtree beneath ou=Users,ou=corp, dc=corp, dc=example, dc=com.
	// Experimental.
	UserBase *string `field:"required" json:"userBase" yaml:"userBase"`
	// The name of the LDAP attribute in the user's directory entry for the user's group membership.
	//
	// In some cases, user roles may be identified by the value of an attribute in the user's directory entry. The UserRoleName option allows you to provide the name of this attribute.
	// Experimental.
	UserRoleName *string `field:"required" json:"userRoleName" yaml:"userRoleName"`
	// The LDAP search filter used to find users within the userBase.
	//
	// The client's username is substituted into the {0} placeholder in the search filter. For example, if this option is set to (uid={0}) and the received username is janedoe, the search filter becomes (uid=janedoe) after string substitution. It will result in matching an entry like uid=janedoe, ou=Users, ou=corp, dc=corp, dc=example, dc=com.
	// Experimental.
	UserSearchMatching *string `field:"required" json:"userSearchMatching" yaml:"userSearchMatching"`
	// The group name attribute in a role entry whose value is the name of that role.
	//
	// For example, you can specify cn for a group entry's common name. If authentication succeeds, then the user is assigned the the value of the cn attribute for each role entry that they are a member of.
	// Experimental.
	RoleName *string `field:"optional" json:"roleName" yaml:"roleName"`
	// The directory search scope for the role.
	//
	// If set to true, scope is to search the entire subtree.
	// Experimental.
	RoleSearchSubtree *bool `field:"optional" json:"roleSearchSubtree" yaml:"roleSearchSubtree"`
	// The directory search scope for the user.
	//
	// If set to true, scope is to search the entire subtree.
	// Experimental.
	UserSearchSubtree *bool `field:"optional" json:"userSearchSubtree" yaml:"userSearchSubtree"`
}

Experimental.

type MaintenanceWindowStartTime

type MaintenanceWindowStartTime struct {
	// The day of the week.
	// Experimental.
	DayOfWeek DayOfWeek `field:"required" json:"dayOfWeek" yaml:"dayOfWeek"`
	// The time, in 24-hour format.
	// Experimental.
	TimeOfDay *string `field:"required" json:"timeOfDay" yaml:"timeOfDay"`
	// The time zone.
	// Experimental.
	TimeZone awscdk.TimeZone `field:"required" json:"timeZone" yaml:"timeZone"`
}

Start time of the weekly, 2-hours time window to apply pending updates or patches to the broker. Experimental.

type RabbitMqApiCall added in v0.1.1

type RabbitMqApiCall struct {
	// The RabbitMQ Management HTTP API call path.
	// Experimental.
	Path *string `field:"required" json:"path" yaml:"path"`
	// A property used to configure logging during lambda function execution.
	//
	// Note: The default Logging configuration is all. This configuration will enable logging on all logged data
	// in the lambda handler. This includes:
	//  - The event object that is received by the lambda handler
	//  - The response received after making a API call
	//  - The response object that the lambda handler will return
	//  - SDK versioning information
	// - Caught and uncaught errors.
	// Default: Logging.all()
	//
	// Experimental.
	Logging customresources.Logging `field:"optional" json:"logging" yaml:"logging"`
	// The HTTP Method used when invoking the RabbitMQ Management HTTP API call.
	// Default: GET.
	//
	// Experimental.
	Method HttpMethods `field:"optional" json:"method" yaml:"method"`
	// Restrict the data returned by the custom resource to specific paths in the API response.
	//
	// Use this to limit the data returned by the custom resource if working with API calls that could potentially result in custom response objects exceeding the hard limit of 4096 bytes.
	// Experimental.
	OutputPaths *[]*string `field:"optional" json:"outputPaths" yaml:"outputPaths"`
	// The payload expected by the RabbitMQ Management HTTP API call.
	// Experimental.
	Payload *map[string]interface{} `field:"optional" json:"payload" yaml:"payload"`
	// The physical resource id of the custom resource for this call.
	//
	// Mandatory for onCreate call.
	// In onUpdate, you can omit this to passthrough it from request.
	// Default: - no physical resource id.
	//
	// Experimental.
	PhysicalResourceId customresources.PhysicalResourceId `field:"optional" json:"physicalResourceId" yaml:"physicalResourceId"`
}

A RabbitMQ Management HTTP API call. Experimental.

type RabbitMqBrokerCluster

type RabbitMqBrokerCluster interface {
	RabbitMqBrokerDeploymentBase
	IRabbitMqBroker
	// Experimental.
	Arn() *string
	// Manages connections for the cluster.
	// Experimental.
	Connections() awsec2.Connections
	// Experimental.
	Endpoints() *RabbitMqBrokerEndpoints
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	// Experimental.
	Env() *awscdk.ResourceEnvironment
	// Experimental.
	Id() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	AssignConfigurationIdProperty(configuration *awsamazonmq.CfnBroker_ConfigurationIdProperty)
	// Experimental.
	ConfigureLogRetention()
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Experimental.
	Metric(metricName *string, options *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricAckRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricChannelCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConfirmRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConnectionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricExchangeCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageReadyCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageUnacknowledgedCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricPublishRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricQueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQDiskFree(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQDiskFreeLimit(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQFdUsed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQIOReadAverageTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQIOWriteAverageTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQMemLimit(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQMemUsed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricSystemCpuUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

A representation of a RabbitMQ cluster deployment is a logical grouping of three RabbitMQ broker nodes behind a Network Load Balancer, each sharing users, queues, and a distributed state across multiple Availability Zones (AZ). Experimental.

func NewRabbitMqBrokerCluster

func NewRabbitMqBrokerCluster(scope constructs.Construct, id *string, props *RabbitMqBrokerClusterProps) RabbitMqBrokerCluster

Experimental.

type RabbitMqBrokerClusterProps

type RabbitMqBrokerClusterProps struct {
	// 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
	//
	// Experimental.
	InstanceType awsec2.InstanceType `field:"required" json:"instanceType" yaml:"instanceType"`
	// Specifies whether the broker is open to public Internet or deployed with endpoints in own VPC.
	// Experimental.
	PubliclyAccessible *bool `field:"required" json:"publiclyAccessible" yaml:"publiclyAccessible"`
	// 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.
	//
	// Experimental.
	AutoMinorVersionUpgrade *bool `field:"optional" json:"autoMinorVersionUpgrade" yaml:"autoMinorVersionUpgrade"`
	// Experimental.
	BrokerName *string `field:"optional" json:"brokerName" yaml:"brokerName"`
	// Sets the retention days for the broker's CloudWatch LogGroups.
	// Default: - undefined; CloudWatch Log Groups retention is set to never expire.
	//
	// Experimental.
	CloudwatchLogsRetention awslogs.RetentionDays `field:"optional" json:"cloudwatchLogsRetention" yaml:"cloudwatchLogsRetention"`
	// Experimental.
	CloudwatchLogsRetentionRole awsiam.IRole `field:"optional" json:"cloudwatchLogsRetentionRole" yaml:"cloudwatchLogsRetentionRole"`
	// Experimental.
	Key awskms.IKey `field:"optional" json:"key" yaml:"key"`
	// Experimental.
	MaintenanceWindowStartTime *MaintenanceWindowStartTime `field:"optional" json:"maintenanceWindowStartTime" yaml:"maintenanceWindowStartTime"`
	// 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.
	//
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
	// The VPC in which create the communication endpoints for a private broker.
	// Default: - undefined. A default VPC will be used
	//
	// Experimental.
	Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
	// vpcSubnets and vpc are optional.
	//
	// But when present - publiclyAccessible attribute must equal false.
	// Default: - undefined. If vpc is present - this attribute must be present.
	//
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
	// Sets the credentials of the broker administrative user.
	// Experimental.
	Admin *Admin `field:"required" json:"admin" yaml:"admin"`
	// Sets the version of the broker engine.
	// Experimental.
	Version RabbitMqBrokerEngineVersion `field:"required" json:"version" yaml:"version"`
	// Sets the CloudWatch logs exports for the broker.
	// Experimental.
	CloudwatchLogsExports *RabbitMqCloudwatchLogsExports `field:"optional" json:"cloudwatchLogsExports" yaml:"cloudwatchLogsExports"`
	// Sets the configuration of the broker.
	// Experimental.
	Configuration IRabbitMqBrokerConfiguration `field:"optional" json:"configuration" yaml:"configuration"`
}

Experimental.

type RabbitMqBrokerConfiguration

type RabbitMqBrokerConfiguration interface {
	BrokerConfiguration
	// Experimental.
	Arn() *string
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	// Experimental.
	Env() *awscdk.ResourceEnvironment
	// Experimental.
	Id() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// Experimental.
	Revision() *float64
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	AssociateWith(broker IRabbitMqBrokerDeployment) ConfigurationAssociation
	// Experimental.
	CreateRevision(options *RabbitMqBrokerConfigurationOptions) IRabbitMqBrokerConfiguration
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Experimental.

func NewRabbitMqBrokerConfiguration

func NewRabbitMqBrokerConfiguration(scope constructs.Construct, id *string, props *RabbitMqBrokerConfigurationProps) RabbitMqBrokerConfiguration

Experimental.

type RabbitMqBrokerConfigurationDefinition

type RabbitMqBrokerConfigurationDefinition interface {
	// Experimental.
	ToString() *string
}

Experimental.

func NewRabbitMqBrokerConfigurationDefinition

func NewRabbitMqBrokerConfigurationDefinition(data *string) RabbitMqBrokerConfigurationDefinition

Experimental.

func RabbitMqBrokerConfigurationDefinition_Data

func RabbitMqBrokerConfigurationDefinition_Data(data *string) RabbitMqBrokerConfigurationDefinition

Experimental.

func RabbitMqBrokerConfigurationDefinition_Parameters

func RabbitMqBrokerConfigurationDefinition_Parameters(parameters *RabbitMqBrokerConfigurationParameters) RabbitMqBrokerConfigurationDefinition

Experimental.

type RabbitMqBrokerConfigurationOptions

type RabbitMqBrokerConfigurationOptions struct {
	// Experimental.
	Definition RabbitMqBrokerConfigurationDefinition `field:"required" json:"definition" yaml:"definition"`
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
}

Experimental.

type RabbitMqBrokerConfigurationParameters

type RabbitMqBrokerConfigurationParameters struct {
	// Experimental.
	ConsumerTimeout awscdk.Duration `field:"required" json:"consumerTimeout" yaml:"consumerTimeout"`
}

Experimental.

type RabbitMqBrokerConfigurationProps

type RabbitMqBrokerConfigurationProps struct {
	// Experimental.
	Definition RabbitMqBrokerConfigurationDefinition `field:"required" json:"definition" yaml:"definition"`
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Experimental.
	EngineVersion RabbitMqBrokerEngineVersion `field:"required" json:"engineVersion" yaml:"engineVersion"`
	// Experimental.
	ConfigurationName *string `field:"optional" json:"configurationName" yaml:"configurationName"`
}

Experimental.

type RabbitMqBrokerDeploymentBase

type RabbitMqBrokerDeploymentBase interface {
	BrokerDeploymentBase
	IRabbitMqBroker
	IRabbitMqBrokerDeployment
	// Experimental.
	Arn() *string
	// Manages connections for the cluster.
	// Experimental.
	Connections() awsec2.Connections
	// Experimental.
	Endpoints() *RabbitMqBrokerEndpoints
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	// Experimental.
	Env() *awscdk.ResourceEnvironment
	// Experimental.
	Id() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	AssignConfigurationIdProperty(configuration *awsamazonmq.CfnBroker_ConfigurationIdProperty)
	// Experimental.
	ConfigureLogRetention()
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Experimental.
	Metric(metricName *string, options *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricAckRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricChannelCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConfirmRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConnectionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricExchangeCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageReadyCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageUnacknowledgedCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricPublishRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricQueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQDiskFree(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQDiskFreeLimit(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQFdUsed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQIOReadAverageTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQIOWriteAverageTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQMemLimit(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQMemUsed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricSystemCpuUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Experimental.

type RabbitMqBrokerDeploymentBaseProps

type RabbitMqBrokerDeploymentBaseProps struct {
	// 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
	//
	// Experimental.
	InstanceType awsec2.InstanceType `field:"required" json:"instanceType" yaml:"instanceType"`
	// Specifies whether the broker is open to public Internet or deployed with endpoints in own VPC.
	// Experimental.
	PubliclyAccessible *bool `field:"required" json:"publiclyAccessible" yaml:"publiclyAccessible"`
	// 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.
	//
	// Experimental.
	AutoMinorVersionUpgrade *bool `field:"optional" json:"autoMinorVersionUpgrade" yaml:"autoMinorVersionUpgrade"`
	// Experimental.
	BrokerName *string `field:"optional" json:"brokerName" yaml:"brokerName"`
	// Sets the retention days for the broker's CloudWatch LogGroups.
	// Default: - undefined; CloudWatch Log Groups retention is set to never expire.
	//
	// Experimental.
	CloudwatchLogsRetention awslogs.RetentionDays `field:"optional" json:"cloudwatchLogsRetention" yaml:"cloudwatchLogsRetention"`
	// Experimental.
	CloudwatchLogsRetentionRole awsiam.IRole `field:"optional" json:"cloudwatchLogsRetentionRole" yaml:"cloudwatchLogsRetentionRole"`
	// Experimental.
	Key awskms.IKey `field:"optional" json:"key" yaml:"key"`
	// Experimental.
	MaintenanceWindowStartTime *MaintenanceWindowStartTime `field:"optional" json:"maintenanceWindowStartTime" yaml:"maintenanceWindowStartTime"`
	// 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.
	//
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
	// The VPC in which create the communication endpoints for a private broker.
	// Default: - undefined. A default VPC will be used
	//
	// Experimental.
	Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
	// vpcSubnets and vpc are optional.
	//
	// But when present - publiclyAccessible attribute must equal false.
	// Default: - undefined. If vpc is present - this attribute must be present.
	//
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
	// Sets the credentials of the broker administrative user.
	// Experimental.
	Admin *Admin `field:"required" json:"admin" yaml:"admin"`
	// Sets the version of the broker engine.
	// Experimental.
	Version RabbitMqBrokerEngineVersion `field:"required" json:"version" yaml:"version"`
	// Sets the CloudWatch logs exports for the broker.
	// Experimental.
	CloudwatchLogsExports *RabbitMqCloudwatchLogsExports `field:"optional" json:"cloudwatchLogsExports" yaml:"cloudwatchLogsExports"`
	// Sets the configuration of the broker.
	// Experimental.
	Configuration IRabbitMqBrokerConfiguration `field:"optional" json:"configuration" yaml:"configuration"`
	// Experimental.
	DeploymentMode BrokerDeploymentMode `field:"required" json:"deploymentMode" yaml:"deploymentMode"`
}

Experimental.

type RabbitMqBrokerDeploymentProps

type RabbitMqBrokerDeploymentProps struct {
	// 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
	//
	// Experimental.
	InstanceType awsec2.InstanceType `field:"required" json:"instanceType" yaml:"instanceType"`
	// Specifies whether the broker is open to public Internet or deployed with endpoints in own VPC.
	// Experimental.
	PubliclyAccessible *bool `field:"required" json:"publiclyAccessible" yaml:"publiclyAccessible"`
	// 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.
	//
	// Experimental.
	AutoMinorVersionUpgrade *bool `field:"optional" json:"autoMinorVersionUpgrade" yaml:"autoMinorVersionUpgrade"`
	// Experimental.
	BrokerName *string `field:"optional" json:"brokerName" yaml:"brokerName"`
	// Sets the retention days for the broker's CloudWatch LogGroups.
	// Default: - undefined; CloudWatch Log Groups retention is set to never expire.
	//
	// Experimental.
	CloudwatchLogsRetention awslogs.RetentionDays `field:"optional" json:"cloudwatchLogsRetention" yaml:"cloudwatchLogsRetention"`
	// Experimental.
	CloudwatchLogsRetentionRole awsiam.IRole `field:"optional" json:"cloudwatchLogsRetentionRole" yaml:"cloudwatchLogsRetentionRole"`
	// Experimental.
	Key awskms.IKey `field:"optional" json:"key" yaml:"key"`
	// Experimental.
	MaintenanceWindowStartTime *MaintenanceWindowStartTime `field:"optional" json:"maintenanceWindowStartTime" yaml:"maintenanceWindowStartTime"`
	// 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.
	//
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
	// The VPC in which create the communication endpoints for a private broker.
	// Default: - undefined. A default VPC will be used
	//
	// Experimental.
	Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
	// vpcSubnets and vpc are optional.
	//
	// But when present - publiclyAccessible attribute must equal false.
	// Default: - undefined. If vpc is present - this attribute must be present.
	//
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
	// Sets the credentials of the broker administrative user.
	// Experimental.
	Admin *Admin `field:"required" json:"admin" yaml:"admin"`
	// Sets the version of the broker engine.
	// Experimental.
	Version RabbitMqBrokerEngineVersion `field:"required" json:"version" yaml:"version"`
	// Sets the CloudWatch logs exports for the broker.
	// Experimental.
	CloudwatchLogsExports *RabbitMqCloudwatchLogsExports `field:"optional" json:"cloudwatchLogsExports" yaml:"cloudwatchLogsExports"`
	// Sets the configuration of the broker.
	// Experimental.
	Configuration IRabbitMqBrokerConfiguration `field:"optional" json:"configuration" yaml:"configuration"`
}

Experimental.

type RabbitMqBrokerEndpoints

type RabbitMqBrokerEndpoints struct {
	// Experimental.
	Amqp *BrokerEndpoint `field:"required" json:"amqp" yaml:"amqp"`
	// Experimental.
	Console *BrokerEndpoint `field:"required" json:"console" yaml:"console"`
}

Experimental.

type RabbitMqBrokerEngineVersion

type RabbitMqBrokerEngineVersion interface {
	// Experimental.
	ToString() *string
}

The Amazon RabbitMQ Broker Engine version. See: https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/rabbitmq-version-management.html

Experimental.

func NewRabbitMqBrokerEngineVersion

func NewRabbitMqBrokerEngineVersion(version *string) RabbitMqBrokerEngineVersion

Experimental.

func RabbitMqBrokerEngineVersion_Of

func RabbitMqBrokerEngineVersion_Of(version *string) RabbitMqBrokerEngineVersion

Experimental.

func RabbitMqBrokerEngineVersion_V3_11_16 added in v0.1.0

func RabbitMqBrokerEngineVersion_V3_11_16() RabbitMqBrokerEngineVersion

func RabbitMqBrokerEngineVersion_V3_11_20

func RabbitMqBrokerEngineVersion_V3_11_20() RabbitMqBrokerEngineVersion

func RabbitMqBrokerEngineVersion_V3_11_28 added in v0.1.0

func RabbitMqBrokerEngineVersion_V3_11_28() RabbitMqBrokerEngineVersion

func RabbitMqBrokerEngineVersion_V3_12_13

func RabbitMqBrokerEngineVersion_V3_12_13() RabbitMqBrokerEngineVersion

func RabbitMqBrokerEngineVersion_V3_13

func RabbitMqBrokerEngineVersion_V3_13() RabbitMqBrokerEngineVersion

type RabbitMqBrokerInstance

type RabbitMqBrokerInstance interface {
	RabbitMqBrokerDeploymentBase
	IRabbitMqBroker
	// Experimental.
	Arn() *string
	// Manages connections for the cluster.
	// Experimental.
	Connections() awsec2.Connections
	// Experimental.
	Endpoints() *RabbitMqBrokerEndpoints
	// The environment this resource belongs to.
	//
	// For resources that are created and managed by the CDK
	// (generally, those created by creating new class instances like Role, Bucket, etc.),
	// this is always the same as the environment of the stack they belong to;
	// however, for imported resources
	// (those obtained from static methods like fromRoleArn, fromBucketName, etc.),
	// that might be different than the stack they were imported into.
	// Experimental.
	Env() *awscdk.ResourceEnvironment
	// Experimental.
	Id() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
	//
	// This value will resolve to one of the following:
	// - a concrete value (e.g. `"my-awesome-bucket"`)
	// - `undefined`, when a name should be generated by CloudFormation
	// - a concrete name generated automatically during synthesis, in
	//   cross-environment scenarios.
	// Experimental.
	PhysicalName() *string
	// The stack in which this resource is defined.
	// Experimental.
	Stack() awscdk.Stack
	// Apply the given removal policy to this resource.
	//
	// The Removal Policy controls what happens to this resource when it stops
	// being managed by CloudFormation, either because you've removed it from the
	// CDK application or because you've made a change that requires the resource
	// to be replaced.
	//
	// The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
	// account for data recovery and cleanup later (`RemovalPolicy.RETAIN`).
	// Experimental.
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	// Experimental.
	AssignConfigurationIdProperty(configuration *awsamazonmq.CfnBroker_ConfigurationIdProperty)
	// Experimental.
	ConfigureLogRetention()
	// Experimental.
	GeneratePhysicalName() *string
	// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
	//
	// Normally, this token will resolve to `arnAttr`, but if the resource is
	// referenced across environments, `arnComponents` will be used to synthesize
	// a concrete ARN with the resource's physical name. Make sure to reference
	// `this.physicalName` in `arnComponents`.
	// Experimental.
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
	//
	// Normally, this token will resolve to `nameAttr`, but if the resource is
	// referenced across environments, it will be resolved to `this.physicalName`,
	// which will be a concrete name.
	// Experimental.
	GetResourceNameAttribute(nameAttr *string) *string
	// Experimental.
	Metric(metricName *string, options *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricAckRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricChannelCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConfirmRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConnectionCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricConsumerCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricExchangeCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageReadyCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricMessageUnacknowledgedCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricPublishRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricQueueCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQDiskFree(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQDiskFreeLimit(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQFdUsed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQIOReadAverageTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQIOWriteAverageTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQMemLimit(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricRabbitMQMemUsed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Experimental.
	MetricSystemCpuUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

A representation of a single-instance broker comprised of one broker in one Availability Zone behind a Network Load Balancer (NLB). Experimental.

func NewRabbitMqBrokerInstance

func NewRabbitMqBrokerInstance(scope constructs.Construct, id *string, props *RabbitMqBrokerInstanceProps) RabbitMqBrokerInstance

Experimental.

type RabbitMqBrokerInstanceProps

type RabbitMqBrokerInstanceProps struct {
	// 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
	//
	// Experimental.
	InstanceType awsec2.InstanceType `field:"required" json:"instanceType" yaml:"instanceType"`
	// Specifies whether the broker is open to public Internet or deployed with endpoints in own VPC.
	// Experimental.
	PubliclyAccessible *bool `field:"required" json:"publiclyAccessible" yaml:"publiclyAccessible"`
	// 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.
	//
	// Experimental.
	AutoMinorVersionUpgrade *bool `field:"optional" json:"autoMinorVersionUpgrade" yaml:"autoMinorVersionUpgrade"`
	// Experimental.
	BrokerName *string `field:"optional" json:"brokerName" yaml:"brokerName"`
	// Sets the retention days for the broker's CloudWatch LogGroups.
	// Default: - undefined; CloudWatch Log Groups retention is set to never expire.
	//
	// Experimental.
	CloudwatchLogsRetention awslogs.RetentionDays `field:"optional" json:"cloudwatchLogsRetention" yaml:"cloudwatchLogsRetention"`
	// Experimental.
	CloudwatchLogsRetentionRole awsiam.IRole `field:"optional" json:"cloudwatchLogsRetentionRole" yaml:"cloudwatchLogsRetentionRole"`
	// Experimental.
	Key awskms.IKey `field:"optional" json:"key" yaml:"key"`
	// Experimental.
	MaintenanceWindowStartTime *MaintenanceWindowStartTime `field:"optional" json:"maintenanceWindowStartTime" yaml:"maintenanceWindowStartTime"`
	// 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.
	//
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
	// The VPC in which create the communication endpoints for a private broker.
	// Default: - undefined. A default VPC will be used
	//
	// Experimental.
	Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
	// vpcSubnets and vpc are optional.
	//
	// But when present - publiclyAccessible attribute must equal false.
	// Default: - undefined. If vpc is present - this attribute must be present.
	//
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
	// Sets the credentials of the broker administrative user.
	// Experimental.
	Admin *Admin `field:"required" json:"admin" yaml:"admin"`
	// Sets the version of the broker engine.
	// Experimental.
	Version RabbitMqBrokerEngineVersion `field:"required" json:"version" yaml:"version"`
	// Sets the CloudWatch logs exports for the broker.
	// Experimental.
	CloudwatchLogsExports *RabbitMqCloudwatchLogsExports `field:"optional" json:"cloudwatchLogsExports" yaml:"cloudwatchLogsExports"`
	// Sets the configuration of the broker.
	// Experimental.
	Configuration IRabbitMqBrokerConfiguration `field:"optional" json:"configuration" yaml:"configuration"`
}

Experimental.

type RabbitMqCloudwatchLogsExports

type RabbitMqCloudwatchLogsExports struct {
	// Export general logs to CloudWatch.
	// Default: - undefined; do not export general logs.
	//
	// Experimental.
	General *bool `field:"optional" json:"general" yaml:"general"`
}

Experimental.

type RabbitMqCustomResource added in v0.1.1

type RabbitMqCustomResource interface {
	constructs.Construct
	awsec2.IConnectable
	awsiam.IGrantable
	// The network connections associated with this resource.
	// Experimental.
	Connections() awsec2.Connections
	// The principal to grant permissions to.
	// Experimental.
	GrantPrincipal() awsiam.IPrincipal
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	GetResponseField(key *string) *string
	// Experimental.
	GetResponseFieldReference(key *string) awscdk.Reference
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Experimental.

func NewRabbitMqCustomResource added in v0.1.1

func NewRabbitMqCustomResource(scope constructs.Construct, id *string, props *RabbitMqCustomResourceProps) RabbitMqCustomResource

Experimental.

type RabbitMqCustomResourcePolicy added in v0.1.1

type RabbitMqCustomResourcePolicy interface {
	// statements for explicit policy.
	// Experimental.
	Statements() *[]awsiam.PolicyStatement
}

The IAM Policy that will be applied to the calls. Experimental.

func RabbitMqCustomResourcePolicy_FromStatements added in v0.1.1

func RabbitMqCustomResourcePolicy_FromStatements(statements *[]awsiam.PolicyStatement) RabbitMqCustomResourcePolicy

Explicit IAM Policy Statements. Experimental.

type RabbitMqCustomResourceProps added in v0.1.1

type RabbitMqCustomResourceProps struct {
	// The broker to send requests to.
	// Experimental.
	Broker IRabbitMqBroker `field:"required" json:"broker" yaml:"broker"`
	// The secret containing the broker login credentials.
	// Experimental.
	Credentials awssecretsmanager.ISecret `field:"required" json:"credentials" yaml:"credentials"`
	// The logGroup to use for the function.
	// Experimental.
	LogGroup awslogs.LogGroup `field:"optional" json:"logGroup" yaml:"logGroup"`
	// LogGroup retention to use for the function.
	// Default: RetentionDays.INFINITE
	//
	// Deprecated: use logGroup instead.
	LogRetention awslogs.RetentionDays `field:"optional" json:"logRetention" yaml:"logRetention"`
	// The RabbitMQ Management HTTP API call to make when the resource is created.
	// Default: - the call when the resource is updated.
	//
	// Experimental.
	OnCreate *RabbitMqApiCall `field:"optional" json:"onCreate" yaml:"onCreate"`
	// The RabbitMQ Management HTTP API call to make when the resource is updated.
	// Default: - no call.
	//
	// Experimental.
	OnDelete *RabbitMqApiCall `field:"optional" json:"onDelete" yaml:"onDelete"`
	// The RabbitMQ Management HTTP API call to make when the resource is updated.
	// Default: - no call.
	//
	// Experimental.
	OnUpdate *RabbitMqApiCall `field:"optional" json:"onUpdate" yaml:"onUpdate"`
	// The policies to attach to the function's role.
	// Experimental.
	Policy RabbitMqCustomResourcePolicy `field:"optional" json:"policy" yaml:"policy"`
	// The execution role for the function.
	// Experimental.
	Role awsiam.IRole `field:"optional" json:"role" yaml:"role"`
	// The security groups to assign to the function.
	// Experimental.
	SecurityGroups *[]awsec2.SecurityGroup `field:"optional" json:"securityGroups" yaml:"securityGroups"`
	// The timeout for the custom resource.
	// Default: Duration.minutes(1)
	//
	// Experimental.
	Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"`
	// The vpc to connect to.
	// Experimental.
	Vpc awsec2.IVpc `field:"optional" json:"vpc" yaml:"vpc"`
	// The vpc subnets to connect to.
	// Experimental.
	VpcSubnets *awsec2.SubnetSelection `field:"optional" json:"vpcSubnets" yaml:"vpcSubnets"`
}

Properties for RabbitMqCustomResource.

Note that at least onCreate, onUpdate or onDelete must be specified. Experimental.

type RabbitMqEventSource

type RabbitMqEventSource interface {
	EventSourceBase
	awslambda.IEventSource
	// Experimental.
	MqType() *string
	// properties of the RabbitMQ event source.
	// Experimental.
	Props() *EventSourceBaseProps
	// Experimental.
	AddToSourceAccessConfigurations(config *awslambda.SourceAccessConfiguration)
	// Called by `lambda.addEventSource` to allow the event source to bind to this function.
	// Experimental.
	Bind(target awslambda.IFunction)
}

Represents an AWS Lambda Event Source Mapping for RabbitMQ.

This event source will add additional permissions to the AWS Lambda function's IAM Role following https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#events-mq-permissions Experimental.

func NewRabbitMqEventSource

func NewRabbitMqEventSource(props *RabbitMqEventSourceProps) RabbitMqEventSource

Instantiates an AWS Lambda Event Source Mapping for RabbitMQ.

This event source will add additional permissions to the AWS Lambda function's IAM Role following https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#events-mq-permissions Experimental.

type RabbitMqEventSourceProps

type RabbitMqEventSourceProps struct {
	// A secret with credentials of the user to use when receiving messages.
	//
	// The credentials in the secret have fields required:
	//  * username
	// * password.
	// Experimental.
	Credentials awssecretsmanager.ISecret `field:"required" json:"credentials" yaml:"credentials"`
	// The name of the queue that the function will receive messages from.
	// Experimental.
	QueueName *string `field:"required" json:"queueName" yaml:"queueName"`
	// If the default permissions should be added to the Lambda function's execution role.
	// Default: true.
	//
	// Experimental.
	AddPermissions *bool `field:"optional" json:"addPermissions" yaml:"addPermissions"`
	// source at the time of invoking your function.
	//
	// Your function receives an
	// The largest number of records that AWS Lambda will retrieve from your event
	// event with all the retrieved records.
	//
	// Valid Range:
	// * Minimum value of 1
	// * Maximum value of: 10000.
	// Default: 100.
	//
	// Experimental.
	BatchSize *float64 `field:"optional" json:"batchSize" yaml:"batchSize"`
	// If the stream event source mapping should be enabled.
	// Default: true.
	//
	// Experimental.
	Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"`
	// The maximum amount of time to gather records before invoking the function.
	//
	// Maximum of Duration.minutes(5).
	// See: https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#invocation-eventsourcemapping-batching
	//
	// Default: - Duration.millis(500) for Amazon MQ.
	//
	// Experimental.
	MaxBatchingWindow awscdk.Duration `field:"optional" json:"maxBatchingWindow" yaml:"maxBatchingWindow"`
	// The RabbitMQ broker deployment to receive messages from.
	// Experimental.
	Broker IRabbitMqBrokerDeployment `field:"required" json:"broker" yaml:"broker"`
	// he name of the RabbitMQ virtual host from which a queue will be the source of messages.
	// Default: - the default virtual host '/' will be used.
	//
	// Experimental.
	VirtualHost *string `field:"optional" json:"virtualHost" yaml:"virtualHost"`
}

Experimental.

type SimpleAuthenticationUserManagementOptions

type SimpleAuthenticationUserManagementOptions struct {
	// Experimental.
	Users *[]*ActiveMqUser `field:"required" json:"users" yaml:"users"`
}

Experimental.

type StorageType

type StorageType string

Experimental.

const (
	// Amazon Elastic Block Store.
	//
	// NOTE: Available only for single-instance ActiveMQ brokers.
	// Experimental.
	StorageType_EBS StorageType = "EBS"
	// Experimental.
	StorageType_EFS StorageType = "EFS"
)

Source Files

Directories

Path Synopsis
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL