Class: AWSCDK::AmazonMQ::CfnBrokerProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
amazon_mq/cfn_broker_props.rb

Overview

Properties for defining a CfnBroker.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(broker_name:, deployment_mode:, engine_type:, host_instance_type:, publicly_accessible:, authentication_strategy: nil, auto_minor_version_upgrade: nil, configuration: nil, data_replication_mode: nil, data_replication_primary_broker_arn: nil, encryption_options: nil, engine_version: nil, ldap_server_metadata: nil, logs: nil, maintenance_window_start_time: nil, resource_share_arns: nil, security_groups: nil, storage_type: nil, subnet_ids: nil, tags: nil, users: nil) ⇒ CfnBrokerProps

Returns a new instance of CfnBrokerProps.

Parameters:

  • broker_name (String)

    Required.

  • deployment_mode (String)

    Required.

  • engine_type (String)

    Required.

  • host_instance_type (String)

    Required.

  • publicly_accessible (Boolean, AWSCDK::IResolvable)

    Enables connections from applications outside of the VPC that hosts the broker's subnets.

  • authentication_strategy (String, nil) (defaults to: nil)

    Optional.

  • auto_minor_version_upgrade (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Enables automatic upgrades to new patch versions for brokers as new versions are released and supported by Amazon MQ.

  • configuration (AWSCDK::IResolvable, AWSCDK::AmazonMQ::CfnBroker::ConfigurationIdProperty, nil) (defaults to: nil)

    A list of information about the configuration.

  • data_replication_mode (String, nil) (defaults to: nil)

    Defines whether this broker is a part of a data replication pair.

  • data_replication_primary_broker_arn (String, nil) (defaults to: nil)

    The Amazon Resource Name (ARN) of the primary broker that is used to replicate data from in a data replication pair, and is applied to the replica broker.

  • encryption_options (AWSCDK::IResolvable, AWSCDK::AmazonMQ::CfnBroker::EncryptionOptionsProperty, nil) (defaults to: nil)

    Encryption options for the broker.

  • engine_version (String, nil) (defaults to: nil)

    The broker engine version.

  • ldap_server_metadata (AWSCDK::IResolvable, AWSCDK::AmazonMQ::CfnBroker::LdapServerMetadataProperty, nil) (defaults to: nil)

    Optional.

  • logs (AWSCDK::IResolvable, AWSCDK::AmazonMQ::CfnBroker::LogListProperty, nil) (defaults to: nil)

    Enables Amazon CloudWatch logging for brokers.

  • maintenance_window_start_time (AWSCDK::IResolvable, AWSCDK::AmazonMQ::CfnBroker::MaintenanceWindowProperty, nil) (defaults to: nil)

    The parameters that determine the WeeklyStartTime.

  • resource_share_arns (Array<String>, nil) (defaults to: nil)

    The ARNs of the resource shares to be associated with the broker.

  • security_groups (Array<String>, nil) (defaults to: nil)

    The list of rules (1 minimum, 125 maximum) that authorize connections to brokers.

  • storage_type (String, nil) (defaults to: nil)

    The broker's storage type.

  • subnet_ids (Array<String>, nil) (defaults to: nil)

    The list of groups that define which subnets and IP ranges the broker can use from different Availability Zones.

  • tags (Array<AWSCDK::AmazonMQ::CfnBroker::TagsEntryProperty>, nil) (defaults to: nil)

    Create tags when creating the broker.

  • users (AWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::AmazonMQ::CfnBroker::UserProperty>, nil) (defaults to: nil)

    The list of broker users (persons or applications) who can access queues and topics.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'amazon_mq/cfn_broker_props.rb', line 30

def initialize(broker_name:, deployment_mode:, engine_type:, host_instance_type:, publicly_accessible:, authentication_strategy: nil, auto_minor_version_upgrade: nil, configuration: nil, data_replication_mode: nil, data_replication_primary_broker_arn: nil, encryption_options: nil, engine_version: nil, ldap_server_metadata: nil, logs: nil, maintenance_window_start_time: nil, resource_share_arns: nil, security_groups: nil, storage_type: nil, subnet_ids: nil, tags: nil, users: nil)
  @broker_name = broker_name
  Jsii::Type.check_type(@broker_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "brokerName")
  @deployment_mode = deployment_mode
  Jsii::Type.check_type(@deployment_mode, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "deploymentMode")
  @engine_type = engine_type
  Jsii::Type.check_type(@engine_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "engineType")
  @host_instance_type = host_instance_type
  Jsii::Type.check_type(@host_instance_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "hostInstanceType")
  @publicly_accessible = publicly_accessible
  Jsii::Type.check_type(@publicly_accessible, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "publiclyAccessible")
  @authentication_strategy = authentication_strategy
  Jsii::Type.check_type(@authentication_strategy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "authenticationStrategy") unless @authentication_strategy.nil?
  @auto_minor_version_upgrade = auto_minor_version_upgrade
  Jsii::Type.check_type(@auto_minor_version_upgrade, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "autoMinorVersionUpgrade") unless @auto_minor_version_upgrade.nil?
  @configuration = configuration.is_a?(Hash) ? ::AWSCDK::AmazonMQ::CfnBroker::ConfigurationIdProperty.new(**configuration.transform_keys(&:to_sym)) : configuration
  Jsii::Type.check_type(@configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hbWF6b25tcS5DZm5Ccm9rZXIuQ29uZmlndXJhdGlvbklkUHJvcGVydHkifV19fQ==")), "configuration") unless @configuration.nil?
  @data_replication_mode = data_replication_mode
  Jsii::Type.check_type(@data_replication_mode, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dataReplicationMode") unless @data_replication_mode.nil?
  @data_replication_primary_broker_arn = data_replication_primary_broker_arn
  Jsii::Type.check_type(@data_replication_primary_broker_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dataReplicationPrimaryBrokerArn") unless @data_replication_primary_broker_arn.nil?
  @encryption_options = encryption_options.is_a?(Hash) ? ::AWSCDK::AmazonMQ::CfnBroker::EncryptionOptionsProperty.new(**encryption_options.transform_keys(&:to_sym)) : encryption_options
  Jsii::Type.check_type(@encryption_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hbWF6b25tcS5DZm5Ccm9rZXIuRW5jcnlwdGlvbk9wdGlvbnNQcm9wZXJ0eSJ9XX19")), "encryptionOptions") unless @encryption_options.nil?
  @engine_version = engine_version
  Jsii::Type.check_type(@engine_version, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "engineVersion") unless @engine_version.nil?
  @ldap_server_metadata = .is_a?(Hash) ? ::AWSCDK::AmazonMQ::CfnBroker::LdapServerMetadataProperty.new(**.transform_keys(&:to_sym)) : 
  Jsii::Type.check_type(@ldap_server_metadata, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hbWF6b25tcS5DZm5Ccm9rZXIuTGRhcFNlcnZlck1ldGFkYXRhUHJvcGVydHkifV19fQ==")), "ldapServerMetadata") unless @ldap_server_metadata.nil?
  @logs = logs.is_a?(Hash) ? ::AWSCDK::AmazonMQ::CfnBroker::LogListProperty.new(**logs.transform_keys(&:to_sym)) : logs
  Jsii::Type.check_type(@logs, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hbWF6b25tcS5DZm5Ccm9rZXIuTG9nTGlzdFByb3BlcnR5In1dfX0=")), "logs") unless @logs.nil?
  @maintenance_window_start_time = maintenance_window_start_time.is_a?(Hash) ? ::AWSCDK::AmazonMQ::CfnBroker::MaintenanceWindowProperty.new(**maintenance_window_start_time.transform_keys(&:to_sym)) : maintenance_window_start_time
  Jsii::Type.check_type(@maintenance_window_start_time, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hbWF6b25tcS5DZm5Ccm9rZXIuTWFpbnRlbmFuY2VXaW5kb3dQcm9wZXJ0eSJ9XX19")), "maintenanceWindowStartTime") unless @maintenance_window_start_time.nil?
  @resource_share_arns = resource_share_arns
  Jsii::Type.check_type(@resource_share_arns, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "resourceShareArns") unless @resource_share_arns.nil?
  @security_groups = security_groups
  Jsii::Type.check_type(@security_groups, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "securityGroups") unless @security_groups.nil?
  @storage_type = storage_type
  Jsii::Type.check_type(@storage_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "storageType") unless @storage_type.nil?
  @subnet_ids = subnet_ids
  Jsii::Type.check_type(@subnet_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "subnetIds") unless @subnet_ids.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::AmazonMQ::CfnBroker::TagsEntryProperty.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hbWF6b25tcS5DZm5Ccm9rZXIuVGFnc0VudHJ5UHJvcGVydHkifSwia2luZCI6ImFycmF5In19")), "tags") unless @tags.nil?
  @users = users
  Jsii::Type.check_type(@users, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYW1hem9ubXEuQ2ZuQnJva2VyLlVzZXJQcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "users") unless @users.nil?
end

Instance Attribute Details

#authentication_strategyString? (readonly)

Optional.

The authentication strategy used to secure the broker. The default is SIMPLE .



118
119
120
# File 'amazon_mq/cfn_broker_props.rb', line 118

def authentication_strategy
  @authentication_strategy
end

#auto_minor_version_upgradeBoolean, ... (readonly)

Enables automatic upgrades to new patch versions for brokers as new versions are released and supported by Amazon MQ.

Automatic upgrades occur during the scheduled maintenance window or after a manual broker reboot. Set to true by default, if no value is specified.

Must be set to true for ActiveMQ brokers version 5.18 and above and for RabbitMQ brokers version 3.13 and above.



127
128
129
# File 'amazon_mq/cfn_broker_props.rb', line 127

def auto_minor_version_upgrade
  @auto_minor_version_upgrade
end

#broker_nameString (readonly)

Required.

The broker's name. This value must be unique in your AWS account , 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain white spaces, brackets, wildcard characters, or special characters.

Do not add personally identifiable information (PII) or other confidential or sensitive information in broker names. Broker names are accessible to other AWS services, including CloudWatch Logs . Broker names are not intended to be used for private or sensitive data.



83
84
85
# File 'amazon_mq/cfn_broker_props.rb', line 83

def broker_name
  @broker_name
end

#configurationAWSCDK::IResolvable, ... (readonly)

A list of information about the configuration.



132
133
134
# File 'amazon_mq/cfn_broker_props.rb', line 132

def configuration
  @configuration
end

#data_replication_modeString? (readonly)

Defines whether this broker is a part of a data replication pair.



137
138
139
# File 'amazon_mq/cfn_broker_props.rb', line 137

def data_replication_mode
  @data_replication_mode
end

#data_replication_primary_broker_arnString? (readonly)

The Amazon Resource Name (ARN) of the primary broker that is used to replicate data from in a data replication pair, and is applied to the replica broker.

Must be set when dataReplicationMode is set to CRDR.



144
145
146
# File 'amazon_mq/cfn_broker_props.rb', line 144

def data_replication_primary_broker_arn
  @data_replication_primary_broker_arn
end

#deployment_modeString (readonly)

Required.

The broker's deployment mode.



90
91
92
# File 'amazon_mq/cfn_broker_props.rb', line 90

def deployment_mode
  @deployment_mode
end

#encryption_optionsAWSCDK::IResolvable, ... (readonly)

Encryption options for the broker.



149
150
151
# File 'amazon_mq/cfn_broker_props.rb', line 149

def encryption_options
  @encryption_options
end

#engine_typeString (readonly)

Required.

The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ and RABBITMQ .



97
98
99
# File 'amazon_mq/cfn_broker_props.rb', line 97

def engine_type
  @engine_type
end

#engine_versionString? (readonly)

The broker engine version.

Defaults to the latest available version for the specified broker engine type. For more information, see the ActiveMQ version management and the RabbitMQ version management sections in the Amazon MQ Developer Guide.



156
157
158
# File 'amazon_mq/cfn_broker_props.rb', line 156

def engine_version
  @engine_version
end

#host_instance_typeString (readonly)

Required.

The broker's instance type.



104
105
106
# File 'amazon_mq/cfn_broker_props.rb', line 104

def host_instance_type
  @host_instance_type
end

#ldap_server_metadataAWSCDK::IResolvable, ... (readonly)

Optional.

The metadata of the LDAP server used to authenticate and authorize connections to the broker. Does not apply to RabbitMQ brokers.



163
164
165
# File 'amazon_mq/cfn_broker_props.rb', line 163

def 
  @ldap_server_metadata
end

#logsAWSCDK::IResolvable, ... (readonly)

Enables Amazon CloudWatch logging for brokers.



168
169
170
# File 'amazon_mq/cfn_broker_props.rb', line 168

def logs
  @logs
end

#maintenance_window_start_timeAWSCDK::IResolvable, ... (readonly)

The parameters that determine the WeeklyStartTime.



173
174
175
# File 'amazon_mq/cfn_broker_props.rb', line 173

def maintenance_window_start_time
  @maintenance_window_start_time
end

#publicly_accessibleBoolean, AWSCDK::IResolvable (readonly)

Enables connections from applications outside of the VPC that hosts the broker's subnets.

Set to false by default, if no value is provided.



111
112
113
# File 'amazon_mq/cfn_broker_props.rb', line 111

def publicly_accessible
  @publicly_accessible
end

#resource_share_arnsArray<String>? (readonly)

The ARNs of the resource shares to be associated with the broker.



178
179
180
# File 'amazon_mq/cfn_broker_props.rb', line 178

def resource_share_arns
  @resource_share_arns
end

#security_groupsArray<String>? (readonly)

The list of rules (1 minimum, 125 maximum) that authorize connections to brokers.



183
184
185
# File 'amazon_mq/cfn_broker_props.rb', line 183

def security_groups
  @security_groups
end

#storage_typeString? (readonly)

The broker's storage type.



188
189
190
# File 'amazon_mq/cfn_broker_props.rb', line 188

def storage_type
  @storage_type
end

#subnet_idsArray<String>? (readonly)

The list of groups that define which subnets and IP ranges the broker can use from different Availability Zones.

If you specify more than one subnet, the subnets must be in different Availability Zones. Amazon MQ will not be able to create VPC endpoints for your broker with multiple subnets in the same Availability Zone. A SINGLE_INSTANCE deployment requires one subnet (for example, the default subnet). An ACTIVE_STANDBY_MULTI_AZ Amazon MQ for ActiveMQ deployment requires two subnets. A CLUSTER_MULTI_AZ Amazon MQ for RabbitMQ deployment has no subnet requirements when deployed with public accessibility. Deployment without public accessibility requires at least one subnet.

If you specify subnets in a shared VPC for a RabbitMQ broker, the associated VPC to which the specified subnets belong must be owned by your AWS account . Amazon MQ will not be able to create VPC endpoints in VPCs that are not owned by your AWS account .



197
198
199
# File 'amazon_mq/cfn_broker_props.rb', line 197

def subnet_ids
  @subnet_ids
end

#tagsArray<AWSCDK::AmazonMQ::CfnBroker::TagsEntryProperty>? (readonly)

Create tags when creating the broker.



202
203
204
# File 'amazon_mq/cfn_broker_props.rb', line 202

def tags
  @tags
end

#usersAWSCDK::IResolvable, ... (readonly)

The list of broker users (persons or applications) who can access queues and topics.

For Amazon MQ for RabbitMQ brokers, one and only one administrative user is accepted and created when a broker is first provisioned. All subsequent broker users are created by making RabbitMQ API calls directly to brokers or via the RabbitMQ web console.

When OAuth 2.0 is enabled, the broker accepts one or no users.



211
212
213
# File 'amazon_mq/cfn_broker_props.rb', line 211

def users
  @users
end

Class Method Details

.jsii_propertiesObject



213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
# File 'amazon_mq/cfn_broker_props.rb', line 213

def self.jsii_properties
  {
    :broker_name => "brokerName",
    :deployment_mode => "deploymentMode",
    :engine_type => "engineType",
    :host_instance_type => "hostInstanceType",
    :publicly_accessible => "publiclyAccessible",
    :authentication_strategy => "authenticationStrategy",
    :auto_minor_version_upgrade => "autoMinorVersionUpgrade",
    :configuration => "configuration",
    :data_replication_mode => "dataReplicationMode",
    :data_replication_primary_broker_arn => "dataReplicationPrimaryBrokerArn",
    :encryption_options => "encryptionOptions",
    :engine_version => "engineVersion",
    :ldap_server_metadata => "ldapServerMetadata",
    :logs => "logs",
    :maintenance_window_start_time => "maintenanceWindowStartTime",
    :resource_share_arns => "resourceShareArns",
    :security_groups => "securityGroups",
    :storage_type => "storageType",
    :subnet_ids => "subnetIds",
    :tags => "tags",
    :users => "users",
  }
end

Instance Method Details

#to_jsiiObject



239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
# File 'amazon_mq/cfn_broker_props.rb', line 239

def to_jsii
  result = {}
  result.merge!({
    "brokerName" => @broker_name,
    "deploymentMode" => @deployment_mode,
    "engineType" => @engine_type,
    "hostInstanceType" => @host_instance_type,
    "publiclyAccessible" => @publicly_accessible,
    "authenticationStrategy" => @authentication_strategy,
    "autoMinorVersionUpgrade" => @auto_minor_version_upgrade,
    "configuration" => @configuration,
    "dataReplicationMode" => @data_replication_mode,
    "dataReplicationPrimaryBrokerArn" => @data_replication_primary_broker_arn,
    "encryptionOptions" => @encryption_options,
    "engineVersion" => @engine_version,
    "ldapServerMetadata" => @ldap_server_metadata,
    "logs" => @logs,
    "maintenanceWindowStartTime" => @maintenance_window_start_time,
    "resourceShareArns" => @resource_share_arns,
    "securityGroups" => @security_groups,
    "storageType" => @storage_type,
    "subnetIds" => @subnet_ids,
    "tags" => @tags,
    "users" => @users,
  })
  result.compact
end