github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/mq/broker.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package mq 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Provides an Amazon MQ broker resource. This resources also manages users for the broker. 16 // 17 // > For more information on Amazon MQ, see [Amazon MQ documentation](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html). 18 // 19 // > **NOTE:** Amazon MQ currently places limits on **RabbitMQ** brokers. For example, a RabbitMQ broker cannot have: instances with an associated IP address of an ENI attached to the broker, an associated LDAP server to authenticate and authorize broker connections, storage type `EFS`, or audit logging. Although this resource allows you to create RabbitMQ users, RabbitMQ users cannot have console access or groups. Also, Amazon MQ does not return information about RabbitMQ users so drift detection is not possible. 20 // 21 // > **NOTE:** Changes to an MQ Broker can occur when you change a parameter, such as `configuration` or `user`, and are reflected in the next maintenance window. Because of this, the provider may report a difference in its planning phase because a modification has not yet taken place. You can use the `applyImmediately` flag to instruct the service to apply the change immediately (see documentation below). Using `applyImmediately` can result in a brief downtime as the broker reboots. 22 // 23 // ## Example Usage 24 // 25 // ### Basic Example 26 // 27 // <!--Start PulumiCodeChooser --> 28 // ```go 29 // package main 30 // 31 // import ( 32 // 33 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/mq" 34 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 35 // 36 // ) 37 // 38 // func main() { 39 // pulumi.Run(func(ctx *pulumi.Context) error { 40 // _, err := mq.NewBroker(ctx, "example", &mq.BrokerArgs{ 41 // BrokerName: pulumi.String("example"), 42 // Configuration: &mq.BrokerConfigurationArgs{ 43 // Id: pulumi.Any(test.Id), 44 // Revision: pulumi.Any(test.LatestRevision), 45 // }, 46 // EngineType: pulumi.String("ActiveMQ"), 47 // EngineVersion: pulumi.String("5.17.6"), 48 // HostInstanceType: pulumi.String("mq.t2.micro"), 49 // SecurityGroups: pulumi.StringArray{ 50 // testAwsSecurityGroup.Id, 51 // }, 52 // Users: mq.BrokerUserArray{ 53 // &mq.BrokerUserArgs{ 54 // Username: pulumi.String("ExampleUser"), 55 // Password: pulumi.String("MindTheGap"), 56 // }, 57 // }, 58 // }) 59 // if err != nil { 60 // return err 61 // } 62 // return nil 63 // }) 64 // } 65 // 66 // ``` 67 // <!--End PulumiCodeChooser --> 68 // 69 // ### High-throughput Optimized Example 70 // 71 // This example shows the use of EBS storage for high-throughput optimized performance. 72 // 73 // <!--Start PulumiCodeChooser --> 74 // ```go 75 // package main 76 // 77 // import ( 78 // 79 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/mq" 80 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 81 // 82 // ) 83 // 84 // func main() { 85 // pulumi.Run(func(ctx *pulumi.Context) error { 86 // _, err := mq.NewBroker(ctx, "example", &mq.BrokerArgs{ 87 // BrokerName: pulumi.String("example"), 88 // Configuration: &mq.BrokerConfigurationArgs{ 89 // Id: pulumi.Any(test.Id), 90 // Revision: pulumi.Any(test.LatestRevision), 91 // }, 92 // EngineType: pulumi.String("ActiveMQ"), 93 // EngineVersion: pulumi.String("5.17.6"), 94 // StorageType: pulumi.String("ebs"), 95 // HostInstanceType: pulumi.String("mq.m5.large"), 96 // SecurityGroups: pulumi.StringArray{ 97 // testAwsSecurityGroup.Id, 98 // }, 99 // Users: mq.BrokerUserArray{ 100 // &mq.BrokerUserArgs{ 101 // Username: pulumi.String("ExampleUser"), 102 // Password: pulumi.String("MindTheGap"), 103 // }, 104 // }, 105 // }) 106 // if err != nil { 107 // return err 108 // } 109 // return nil 110 // }) 111 // } 112 // 113 // ``` 114 // <!--End PulumiCodeChooser --> 115 // 116 // ### Cross-Region Data Replication 117 // 118 // <!--Start PulumiCodeChooser --> 119 // ```go 120 // package main 121 // 122 // import ( 123 // 124 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/mq" 125 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 126 // 127 // ) 128 // 129 // func main() { 130 // pulumi.Run(func(ctx *pulumi.Context) error { 131 // _, err := mq.NewBroker(ctx, "example_primary", &mq.BrokerArgs{ 132 // ApplyImmediately: pulumi.Bool(true), 133 // BrokerName: pulumi.String("example_primary"), 134 // EngineType: pulumi.String("ActiveMQ"), 135 // EngineVersion: pulumi.String("5.17.6"), 136 // HostInstanceType: pulumi.String("mq.m5.large"), 137 // SecurityGroups: pulumi.StringArray{ 138 // examplePrimaryAwsSecurityGroup.Id, 139 // }, 140 // DeploymentMode: pulumi.String("ACTIVE_STANDBY_MULTI_AZ"), 141 // Users: mq.BrokerUserArray{ 142 // &mq.BrokerUserArgs{ 143 // Username: pulumi.String("ExampleUser"), 144 // Password: pulumi.String("MindTheGap"), 145 // }, 146 // &mq.BrokerUserArgs{ 147 // Username: pulumi.String("ExampleReplicationUser"), 148 // Password: pulumi.String("Example12345"), 149 // ReplicationUser: pulumi.Bool(true), 150 // }, 151 // }, 152 // }) 153 // if err != nil { 154 // return err 155 // } 156 // _, err = mq.NewBroker(ctx, "example", &mq.BrokerArgs{ 157 // ApplyImmediately: pulumi.Bool(true), 158 // BrokerName: pulumi.String("example"), 159 // EngineType: pulumi.String("ActiveMQ"), 160 // EngineVersion: pulumi.String("5.17.6"), 161 // HostInstanceType: pulumi.String("mq.m5.large"), 162 // SecurityGroups: pulumi.StringArray{ 163 // exampleAwsSecurityGroup.Id, 164 // }, 165 // DeploymentMode: pulumi.String("ACTIVE_STANDBY_MULTI_AZ"), 166 // DataReplicationMode: pulumi.String("CRDR"), 167 // DataReplicationPrimaryBrokerArn: pulumi.Any(primary.Arn), 168 // Users: mq.BrokerUserArray{ 169 // &mq.BrokerUserArgs{ 170 // Username: pulumi.String("ExampleUser"), 171 // Password: pulumi.String("MindTheGap"), 172 // }, 173 // &mq.BrokerUserArgs{ 174 // Username: pulumi.String("ExampleReplicationUser"), 175 // Password: pulumi.String("Example12345"), 176 // ReplicationUser: pulumi.Bool(true), 177 // }, 178 // }, 179 // }) 180 // if err != nil { 181 // return err 182 // } 183 // return nil 184 // }) 185 // } 186 // 187 // ``` 188 // <!--End PulumiCodeChooser --> 189 // 190 // See the [AWS MQ documentation](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/crdr-for-active-mq.html) on cross-region data replication for additional details. 191 // 192 // ## Import 193 // 194 // Using `pulumi import`, import MQ Brokers using their broker id. For example: 195 // 196 // ```sh 197 // $ pulumi import aws:mq/broker:Broker example a1b2c3d4-d5f6-7777-8888-9999aaaabbbbcccc 198 // ``` 199 type Broker struct { 200 pulumi.CustomResourceState 201 202 // Specifies whether any broker modifications are applied immediately, or during the next maintenance window. Default is `false`. 203 ApplyImmediately pulumi.BoolPtrOutput `pulumi:"applyImmediately"` 204 // ARN of the broker. 205 Arn pulumi.StringOutput `pulumi:"arn"` 206 // Authentication strategy used to secure the broker. Valid values are `simple` and `ldap`. `ldap` is not supported for `engineType` `RabbitMQ`. 207 AuthenticationStrategy pulumi.StringOutput `pulumi:"authenticationStrategy"` 208 // Whether to automatically upgrade to new minor versions of brokers as Amazon MQ makes releases available. 209 AutoMinorVersionUpgrade pulumi.BoolPtrOutput `pulumi:"autoMinorVersionUpgrade"` 210 // Name of the broker. 211 BrokerName pulumi.StringOutput `pulumi:"brokerName"` 212 // Configuration block for broker configuration. Applies to `engineType` of `ActiveMQ` and `RabbitMQ` only. Detailed below. 213 Configuration BrokerConfigurationOutput `pulumi:"configuration"` 214 // Defines whether this broker is a part of a data replication pair. Valid values are `CRDR` and `NONE`. 215 DataReplicationMode pulumi.StringOutput `pulumi:"dataReplicationMode"` 216 // 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 `CRDR`. 217 DataReplicationPrimaryBrokerArn pulumi.StringPtrOutput `pulumi:"dataReplicationPrimaryBrokerArn"` 218 // Deployment mode of the broker. Valid values are `SINGLE_INSTANCE`, `ACTIVE_STANDBY_MULTI_AZ`, and `CLUSTER_MULTI_AZ`. Default is `SINGLE_INSTANCE`. 219 DeploymentMode pulumi.StringPtrOutput `pulumi:"deploymentMode"` 220 // Configuration block containing encryption options. Detailed below. 221 EncryptionOptions BrokerEncryptionOptionsPtrOutput `pulumi:"encryptionOptions"` 222 // Type of broker engine. Valid values are `ActiveMQ` and `RabbitMQ`. 223 EngineType pulumi.StringOutput `pulumi:"engineType"` 224 // Version of the broker engine. See the [AmazonMQ Broker Engine docs](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) for supported versions. For example, `5.17.6`. 225 EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` 226 // Broker's instance type. For example, `mq.t3.micro`, `mq.m5.large`. 227 HostInstanceType pulumi.StringOutput `pulumi:"hostInstanceType"` 228 // List of information about allocated brokers (both active & standby). 229 Instances BrokerInstanceArrayOutput `pulumi:"instances"` 230 // Configuration block for the LDAP server used to authenticate and authorize connections to the broker. Not supported for `engineType` `RabbitMQ`. Detailed below. (Currently, AWS may not process changes to LDAP server metadata.) 231 LdapServerMetadata BrokerLdapServerMetadataPtrOutput `pulumi:"ldapServerMetadata"` 232 // Configuration block for the logging configuration of the broker. Detailed below. 233 Logs BrokerLogsPtrOutput `pulumi:"logs"` 234 // Configuration block for the maintenance window start time. Detailed below. 235 MaintenanceWindowStartTime BrokerMaintenanceWindowStartTimeOutput `pulumi:"maintenanceWindowStartTime"` 236 // (Optional) The data replication mode that will be applied after reboot. 237 PendingDataReplicationMode pulumi.StringOutput `pulumi:"pendingDataReplicationMode"` 238 // Whether to enable connections from applications outside of the VPC that hosts the broker's subnets. 239 PubliclyAccessible pulumi.BoolPtrOutput `pulumi:"publiclyAccessible"` 240 // List of security group IDs assigned to the broker. 241 SecurityGroups pulumi.StringArrayOutput `pulumi:"securityGroups"` 242 // Storage type of the broker. For `engineType` `ActiveMQ`, the valid values are `efs` and `ebs`, and the AWS-default is `efs`. For `engineType` `RabbitMQ`, only `ebs` is supported. When using `ebs`, only the `mq.m5` broker instance type family is supported. 243 StorageType pulumi.StringOutput `pulumi:"storageType"` 244 // List of subnet IDs in which to launch the broker. A `SINGLE_INSTANCE` deployment requires one subnet. An `ACTIVE_STANDBY_MULTI_AZ` deployment requires multiple subnets. 245 SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"` 246 // Map of tags to assign to the broker. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 247 Tags pulumi.StringMapOutput `pulumi:"tags"` 248 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 249 // 250 // Deprecated: Please use `tags` instead. 251 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 252 // Configuration block for broker users. For `engineType` of `RabbitMQ`, Amazon MQ does not return broker users preventing this resource from making user updates and drift detection. Detailed below. 253 // 254 // The following arguments are optional: 255 Users BrokerUserArrayOutput `pulumi:"users"` 256 } 257 258 // NewBroker registers a new resource with the given unique name, arguments, and options. 259 func NewBroker(ctx *pulumi.Context, 260 name string, args *BrokerArgs, opts ...pulumi.ResourceOption) (*Broker, error) { 261 if args == nil { 262 return nil, errors.New("missing one or more required arguments") 263 } 264 265 if args.EngineType == nil { 266 return nil, errors.New("invalid value for required argument 'EngineType'") 267 } 268 if args.EngineVersion == nil { 269 return nil, errors.New("invalid value for required argument 'EngineVersion'") 270 } 271 if args.HostInstanceType == nil { 272 return nil, errors.New("invalid value for required argument 'HostInstanceType'") 273 } 274 if args.Users == nil { 275 return nil, errors.New("invalid value for required argument 'Users'") 276 } 277 opts = internal.PkgResourceDefaultOpts(opts) 278 var resource Broker 279 err := ctx.RegisterResource("aws:mq/broker:Broker", name, args, &resource, opts...) 280 if err != nil { 281 return nil, err 282 } 283 return &resource, nil 284 } 285 286 // GetBroker gets an existing Broker resource's state with the given name, ID, and optional 287 // state properties that are used to uniquely qualify the lookup (nil if not required). 288 func GetBroker(ctx *pulumi.Context, 289 name string, id pulumi.IDInput, state *BrokerState, opts ...pulumi.ResourceOption) (*Broker, error) { 290 var resource Broker 291 err := ctx.ReadResource("aws:mq/broker:Broker", name, id, state, &resource, opts...) 292 if err != nil { 293 return nil, err 294 } 295 return &resource, nil 296 } 297 298 // Input properties used for looking up and filtering Broker resources. 299 type brokerState struct { 300 // Specifies whether any broker modifications are applied immediately, or during the next maintenance window. Default is `false`. 301 ApplyImmediately *bool `pulumi:"applyImmediately"` 302 // ARN of the broker. 303 Arn *string `pulumi:"arn"` 304 // Authentication strategy used to secure the broker. Valid values are `simple` and `ldap`. `ldap` is not supported for `engineType` `RabbitMQ`. 305 AuthenticationStrategy *string `pulumi:"authenticationStrategy"` 306 // Whether to automatically upgrade to new minor versions of brokers as Amazon MQ makes releases available. 307 AutoMinorVersionUpgrade *bool `pulumi:"autoMinorVersionUpgrade"` 308 // Name of the broker. 309 BrokerName *string `pulumi:"brokerName"` 310 // Configuration block for broker configuration. Applies to `engineType` of `ActiveMQ` and `RabbitMQ` only. Detailed below. 311 Configuration *BrokerConfiguration `pulumi:"configuration"` 312 // Defines whether this broker is a part of a data replication pair. Valid values are `CRDR` and `NONE`. 313 DataReplicationMode *string `pulumi:"dataReplicationMode"` 314 // 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 `CRDR`. 315 DataReplicationPrimaryBrokerArn *string `pulumi:"dataReplicationPrimaryBrokerArn"` 316 // Deployment mode of the broker. Valid values are `SINGLE_INSTANCE`, `ACTIVE_STANDBY_MULTI_AZ`, and `CLUSTER_MULTI_AZ`. Default is `SINGLE_INSTANCE`. 317 DeploymentMode *string `pulumi:"deploymentMode"` 318 // Configuration block containing encryption options. Detailed below. 319 EncryptionOptions *BrokerEncryptionOptions `pulumi:"encryptionOptions"` 320 // Type of broker engine. Valid values are `ActiveMQ` and `RabbitMQ`. 321 EngineType *string `pulumi:"engineType"` 322 // Version of the broker engine. See the [AmazonMQ Broker Engine docs](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) for supported versions. For example, `5.17.6`. 323 EngineVersion *string `pulumi:"engineVersion"` 324 // Broker's instance type. For example, `mq.t3.micro`, `mq.m5.large`. 325 HostInstanceType *string `pulumi:"hostInstanceType"` 326 // List of information about allocated brokers (both active & standby). 327 Instances []BrokerInstance `pulumi:"instances"` 328 // Configuration block for the LDAP server used to authenticate and authorize connections to the broker. Not supported for `engineType` `RabbitMQ`. Detailed below. (Currently, AWS may not process changes to LDAP server metadata.) 329 LdapServerMetadata *BrokerLdapServerMetadata `pulumi:"ldapServerMetadata"` 330 // Configuration block for the logging configuration of the broker. Detailed below. 331 Logs *BrokerLogs `pulumi:"logs"` 332 // Configuration block for the maintenance window start time. Detailed below. 333 MaintenanceWindowStartTime *BrokerMaintenanceWindowStartTime `pulumi:"maintenanceWindowStartTime"` 334 // (Optional) The data replication mode that will be applied after reboot. 335 PendingDataReplicationMode *string `pulumi:"pendingDataReplicationMode"` 336 // Whether to enable connections from applications outside of the VPC that hosts the broker's subnets. 337 PubliclyAccessible *bool `pulumi:"publiclyAccessible"` 338 // List of security group IDs assigned to the broker. 339 SecurityGroups []string `pulumi:"securityGroups"` 340 // Storage type of the broker. For `engineType` `ActiveMQ`, the valid values are `efs` and `ebs`, and the AWS-default is `efs`. For `engineType` `RabbitMQ`, only `ebs` is supported. When using `ebs`, only the `mq.m5` broker instance type family is supported. 341 StorageType *string `pulumi:"storageType"` 342 // List of subnet IDs in which to launch the broker. A `SINGLE_INSTANCE` deployment requires one subnet. An `ACTIVE_STANDBY_MULTI_AZ` deployment requires multiple subnets. 343 SubnetIds []string `pulumi:"subnetIds"` 344 // Map of tags to assign to the broker. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 345 Tags map[string]string `pulumi:"tags"` 346 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 347 // 348 // Deprecated: Please use `tags` instead. 349 TagsAll map[string]string `pulumi:"tagsAll"` 350 // Configuration block for broker users. For `engineType` of `RabbitMQ`, Amazon MQ does not return broker users preventing this resource from making user updates and drift detection. Detailed below. 351 // 352 // The following arguments are optional: 353 Users []BrokerUser `pulumi:"users"` 354 } 355 356 type BrokerState struct { 357 // Specifies whether any broker modifications are applied immediately, or during the next maintenance window. Default is `false`. 358 ApplyImmediately pulumi.BoolPtrInput 359 // ARN of the broker. 360 Arn pulumi.StringPtrInput 361 // Authentication strategy used to secure the broker. Valid values are `simple` and `ldap`. `ldap` is not supported for `engineType` `RabbitMQ`. 362 AuthenticationStrategy pulumi.StringPtrInput 363 // Whether to automatically upgrade to new minor versions of brokers as Amazon MQ makes releases available. 364 AutoMinorVersionUpgrade pulumi.BoolPtrInput 365 // Name of the broker. 366 BrokerName pulumi.StringPtrInput 367 // Configuration block for broker configuration. Applies to `engineType` of `ActiveMQ` and `RabbitMQ` only. Detailed below. 368 Configuration BrokerConfigurationPtrInput 369 // Defines whether this broker is a part of a data replication pair. Valid values are `CRDR` and `NONE`. 370 DataReplicationMode pulumi.StringPtrInput 371 // 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 `CRDR`. 372 DataReplicationPrimaryBrokerArn pulumi.StringPtrInput 373 // Deployment mode of the broker. Valid values are `SINGLE_INSTANCE`, `ACTIVE_STANDBY_MULTI_AZ`, and `CLUSTER_MULTI_AZ`. Default is `SINGLE_INSTANCE`. 374 DeploymentMode pulumi.StringPtrInput 375 // Configuration block containing encryption options. Detailed below. 376 EncryptionOptions BrokerEncryptionOptionsPtrInput 377 // Type of broker engine. Valid values are `ActiveMQ` and `RabbitMQ`. 378 EngineType pulumi.StringPtrInput 379 // Version of the broker engine. See the [AmazonMQ Broker Engine docs](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) for supported versions. For example, `5.17.6`. 380 EngineVersion pulumi.StringPtrInput 381 // Broker's instance type. For example, `mq.t3.micro`, `mq.m5.large`. 382 HostInstanceType pulumi.StringPtrInput 383 // List of information about allocated brokers (both active & standby). 384 Instances BrokerInstanceArrayInput 385 // Configuration block for the LDAP server used to authenticate and authorize connections to the broker. Not supported for `engineType` `RabbitMQ`. Detailed below. (Currently, AWS may not process changes to LDAP server metadata.) 386 LdapServerMetadata BrokerLdapServerMetadataPtrInput 387 // Configuration block for the logging configuration of the broker. Detailed below. 388 Logs BrokerLogsPtrInput 389 // Configuration block for the maintenance window start time. Detailed below. 390 MaintenanceWindowStartTime BrokerMaintenanceWindowStartTimePtrInput 391 // (Optional) The data replication mode that will be applied after reboot. 392 PendingDataReplicationMode pulumi.StringPtrInput 393 // Whether to enable connections from applications outside of the VPC that hosts the broker's subnets. 394 PubliclyAccessible pulumi.BoolPtrInput 395 // List of security group IDs assigned to the broker. 396 SecurityGroups pulumi.StringArrayInput 397 // Storage type of the broker. For `engineType` `ActiveMQ`, the valid values are `efs` and `ebs`, and the AWS-default is `efs`. For `engineType` `RabbitMQ`, only `ebs` is supported. When using `ebs`, only the `mq.m5` broker instance type family is supported. 398 StorageType pulumi.StringPtrInput 399 // List of subnet IDs in which to launch the broker. A `SINGLE_INSTANCE` deployment requires one subnet. An `ACTIVE_STANDBY_MULTI_AZ` deployment requires multiple subnets. 400 SubnetIds pulumi.StringArrayInput 401 // Map of tags to assign to the broker. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 402 Tags pulumi.StringMapInput 403 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 404 // 405 // Deprecated: Please use `tags` instead. 406 TagsAll pulumi.StringMapInput 407 // Configuration block for broker users. For `engineType` of `RabbitMQ`, Amazon MQ does not return broker users preventing this resource from making user updates and drift detection. Detailed below. 408 // 409 // The following arguments are optional: 410 Users BrokerUserArrayInput 411 } 412 413 func (BrokerState) ElementType() reflect.Type { 414 return reflect.TypeOf((*brokerState)(nil)).Elem() 415 } 416 417 type brokerArgs struct { 418 // Specifies whether any broker modifications are applied immediately, or during the next maintenance window. Default is `false`. 419 ApplyImmediately *bool `pulumi:"applyImmediately"` 420 // Authentication strategy used to secure the broker. Valid values are `simple` and `ldap`. `ldap` is not supported for `engineType` `RabbitMQ`. 421 AuthenticationStrategy *string `pulumi:"authenticationStrategy"` 422 // Whether to automatically upgrade to new minor versions of brokers as Amazon MQ makes releases available. 423 AutoMinorVersionUpgrade *bool `pulumi:"autoMinorVersionUpgrade"` 424 // Name of the broker. 425 BrokerName *string `pulumi:"brokerName"` 426 // Configuration block for broker configuration. Applies to `engineType` of `ActiveMQ` and `RabbitMQ` only. Detailed below. 427 Configuration *BrokerConfiguration `pulumi:"configuration"` 428 // Defines whether this broker is a part of a data replication pair. Valid values are `CRDR` and `NONE`. 429 DataReplicationMode *string `pulumi:"dataReplicationMode"` 430 // 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 `CRDR`. 431 DataReplicationPrimaryBrokerArn *string `pulumi:"dataReplicationPrimaryBrokerArn"` 432 // Deployment mode of the broker. Valid values are `SINGLE_INSTANCE`, `ACTIVE_STANDBY_MULTI_AZ`, and `CLUSTER_MULTI_AZ`. Default is `SINGLE_INSTANCE`. 433 DeploymentMode *string `pulumi:"deploymentMode"` 434 // Configuration block containing encryption options. Detailed below. 435 EncryptionOptions *BrokerEncryptionOptions `pulumi:"encryptionOptions"` 436 // Type of broker engine. Valid values are `ActiveMQ` and `RabbitMQ`. 437 EngineType string `pulumi:"engineType"` 438 // Version of the broker engine. See the [AmazonMQ Broker Engine docs](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) for supported versions. For example, `5.17.6`. 439 EngineVersion string `pulumi:"engineVersion"` 440 // Broker's instance type. For example, `mq.t3.micro`, `mq.m5.large`. 441 HostInstanceType string `pulumi:"hostInstanceType"` 442 // Configuration block for the LDAP server used to authenticate and authorize connections to the broker. Not supported for `engineType` `RabbitMQ`. Detailed below. (Currently, AWS may not process changes to LDAP server metadata.) 443 LdapServerMetadata *BrokerLdapServerMetadata `pulumi:"ldapServerMetadata"` 444 // Configuration block for the logging configuration of the broker. Detailed below. 445 Logs *BrokerLogs `pulumi:"logs"` 446 // Configuration block for the maintenance window start time. Detailed below. 447 MaintenanceWindowStartTime *BrokerMaintenanceWindowStartTime `pulumi:"maintenanceWindowStartTime"` 448 // Whether to enable connections from applications outside of the VPC that hosts the broker's subnets. 449 PubliclyAccessible *bool `pulumi:"publiclyAccessible"` 450 // List of security group IDs assigned to the broker. 451 SecurityGroups []string `pulumi:"securityGroups"` 452 // Storage type of the broker. For `engineType` `ActiveMQ`, the valid values are `efs` and `ebs`, and the AWS-default is `efs`. For `engineType` `RabbitMQ`, only `ebs` is supported. When using `ebs`, only the `mq.m5` broker instance type family is supported. 453 StorageType *string `pulumi:"storageType"` 454 // List of subnet IDs in which to launch the broker. A `SINGLE_INSTANCE` deployment requires one subnet. An `ACTIVE_STANDBY_MULTI_AZ` deployment requires multiple subnets. 455 SubnetIds []string `pulumi:"subnetIds"` 456 // Map of tags to assign to the broker. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 457 Tags map[string]string `pulumi:"tags"` 458 // Configuration block for broker users. For `engineType` of `RabbitMQ`, Amazon MQ does not return broker users preventing this resource from making user updates and drift detection. Detailed below. 459 // 460 // The following arguments are optional: 461 Users []BrokerUser `pulumi:"users"` 462 } 463 464 // The set of arguments for constructing a Broker resource. 465 type BrokerArgs struct { 466 // Specifies whether any broker modifications are applied immediately, or during the next maintenance window. Default is `false`. 467 ApplyImmediately pulumi.BoolPtrInput 468 // Authentication strategy used to secure the broker. Valid values are `simple` and `ldap`. `ldap` is not supported for `engineType` `RabbitMQ`. 469 AuthenticationStrategy pulumi.StringPtrInput 470 // Whether to automatically upgrade to new minor versions of brokers as Amazon MQ makes releases available. 471 AutoMinorVersionUpgrade pulumi.BoolPtrInput 472 // Name of the broker. 473 BrokerName pulumi.StringPtrInput 474 // Configuration block for broker configuration. Applies to `engineType` of `ActiveMQ` and `RabbitMQ` only. Detailed below. 475 Configuration BrokerConfigurationPtrInput 476 // Defines whether this broker is a part of a data replication pair. Valid values are `CRDR` and `NONE`. 477 DataReplicationMode pulumi.StringPtrInput 478 // 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 `CRDR`. 479 DataReplicationPrimaryBrokerArn pulumi.StringPtrInput 480 // Deployment mode of the broker. Valid values are `SINGLE_INSTANCE`, `ACTIVE_STANDBY_MULTI_AZ`, and `CLUSTER_MULTI_AZ`. Default is `SINGLE_INSTANCE`. 481 DeploymentMode pulumi.StringPtrInput 482 // Configuration block containing encryption options. Detailed below. 483 EncryptionOptions BrokerEncryptionOptionsPtrInput 484 // Type of broker engine. Valid values are `ActiveMQ` and `RabbitMQ`. 485 EngineType pulumi.StringInput 486 // Version of the broker engine. See the [AmazonMQ Broker Engine docs](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) for supported versions. For example, `5.17.6`. 487 EngineVersion pulumi.StringInput 488 // Broker's instance type. For example, `mq.t3.micro`, `mq.m5.large`. 489 HostInstanceType pulumi.StringInput 490 // Configuration block for the LDAP server used to authenticate and authorize connections to the broker. Not supported for `engineType` `RabbitMQ`. Detailed below. (Currently, AWS may not process changes to LDAP server metadata.) 491 LdapServerMetadata BrokerLdapServerMetadataPtrInput 492 // Configuration block for the logging configuration of the broker. Detailed below. 493 Logs BrokerLogsPtrInput 494 // Configuration block for the maintenance window start time. Detailed below. 495 MaintenanceWindowStartTime BrokerMaintenanceWindowStartTimePtrInput 496 // Whether to enable connections from applications outside of the VPC that hosts the broker's subnets. 497 PubliclyAccessible pulumi.BoolPtrInput 498 // List of security group IDs assigned to the broker. 499 SecurityGroups pulumi.StringArrayInput 500 // Storage type of the broker. For `engineType` `ActiveMQ`, the valid values are `efs` and `ebs`, and the AWS-default is `efs`. For `engineType` `RabbitMQ`, only `ebs` is supported. When using `ebs`, only the `mq.m5` broker instance type family is supported. 501 StorageType pulumi.StringPtrInput 502 // List of subnet IDs in which to launch the broker. A `SINGLE_INSTANCE` deployment requires one subnet. An `ACTIVE_STANDBY_MULTI_AZ` deployment requires multiple subnets. 503 SubnetIds pulumi.StringArrayInput 504 // Map of tags to assign to the broker. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 505 Tags pulumi.StringMapInput 506 // Configuration block for broker users. For `engineType` of `RabbitMQ`, Amazon MQ does not return broker users preventing this resource from making user updates and drift detection. Detailed below. 507 // 508 // The following arguments are optional: 509 Users BrokerUserArrayInput 510 } 511 512 func (BrokerArgs) ElementType() reflect.Type { 513 return reflect.TypeOf((*brokerArgs)(nil)).Elem() 514 } 515 516 type BrokerInput interface { 517 pulumi.Input 518 519 ToBrokerOutput() BrokerOutput 520 ToBrokerOutputWithContext(ctx context.Context) BrokerOutput 521 } 522 523 func (*Broker) ElementType() reflect.Type { 524 return reflect.TypeOf((**Broker)(nil)).Elem() 525 } 526 527 func (i *Broker) ToBrokerOutput() BrokerOutput { 528 return i.ToBrokerOutputWithContext(context.Background()) 529 } 530 531 func (i *Broker) ToBrokerOutputWithContext(ctx context.Context) BrokerOutput { 532 return pulumi.ToOutputWithContext(ctx, i).(BrokerOutput) 533 } 534 535 // BrokerArrayInput is an input type that accepts BrokerArray and BrokerArrayOutput values. 536 // You can construct a concrete instance of `BrokerArrayInput` via: 537 // 538 // BrokerArray{ BrokerArgs{...} } 539 type BrokerArrayInput interface { 540 pulumi.Input 541 542 ToBrokerArrayOutput() BrokerArrayOutput 543 ToBrokerArrayOutputWithContext(context.Context) BrokerArrayOutput 544 } 545 546 type BrokerArray []BrokerInput 547 548 func (BrokerArray) ElementType() reflect.Type { 549 return reflect.TypeOf((*[]*Broker)(nil)).Elem() 550 } 551 552 func (i BrokerArray) ToBrokerArrayOutput() BrokerArrayOutput { 553 return i.ToBrokerArrayOutputWithContext(context.Background()) 554 } 555 556 func (i BrokerArray) ToBrokerArrayOutputWithContext(ctx context.Context) BrokerArrayOutput { 557 return pulumi.ToOutputWithContext(ctx, i).(BrokerArrayOutput) 558 } 559 560 // BrokerMapInput is an input type that accepts BrokerMap and BrokerMapOutput values. 561 // You can construct a concrete instance of `BrokerMapInput` via: 562 // 563 // BrokerMap{ "key": BrokerArgs{...} } 564 type BrokerMapInput interface { 565 pulumi.Input 566 567 ToBrokerMapOutput() BrokerMapOutput 568 ToBrokerMapOutputWithContext(context.Context) BrokerMapOutput 569 } 570 571 type BrokerMap map[string]BrokerInput 572 573 func (BrokerMap) ElementType() reflect.Type { 574 return reflect.TypeOf((*map[string]*Broker)(nil)).Elem() 575 } 576 577 func (i BrokerMap) ToBrokerMapOutput() BrokerMapOutput { 578 return i.ToBrokerMapOutputWithContext(context.Background()) 579 } 580 581 func (i BrokerMap) ToBrokerMapOutputWithContext(ctx context.Context) BrokerMapOutput { 582 return pulumi.ToOutputWithContext(ctx, i).(BrokerMapOutput) 583 } 584 585 type BrokerOutput struct{ *pulumi.OutputState } 586 587 func (BrokerOutput) ElementType() reflect.Type { 588 return reflect.TypeOf((**Broker)(nil)).Elem() 589 } 590 591 func (o BrokerOutput) ToBrokerOutput() BrokerOutput { 592 return o 593 } 594 595 func (o BrokerOutput) ToBrokerOutputWithContext(ctx context.Context) BrokerOutput { 596 return o 597 } 598 599 // Specifies whether any broker modifications are applied immediately, or during the next maintenance window. Default is `false`. 600 func (o BrokerOutput) ApplyImmediately() pulumi.BoolPtrOutput { 601 return o.ApplyT(func(v *Broker) pulumi.BoolPtrOutput { return v.ApplyImmediately }).(pulumi.BoolPtrOutput) 602 } 603 604 // ARN of the broker. 605 func (o BrokerOutput) Arn() pulumi.StringOutput { 606 return o.ApplyT(func(v *Broker) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 607 } 608 609 // Authentication strategy used to secure the broker. Valid values are `simple` and `ldap`. `ldap` is not supported for `engineType` `RabbitMQ`. 610 func (o BrokerOutput) AuthenticationStrategy() pulumi.StringOutput { 611 return o.ApplyT(func(v *Broker) pulumi.StringOutput { return v.AuthenticationStrategy }).(pulumi.StringOutput) 612 } 613 614 // Whether to automatically upgrade to new minor versions of brokers as Amazon MQ makes releases available. 615 func (o BrokerOutput) AutoMinorVersionUpgrade() pulumi.BoolPtrOutput { 616 return o.ApplyT(func(v *Broker) pulumi.BoolPtrOutput { return v.AutoMinorVersionUpgrade }).(pulumi.BoolPtrOutput) 617 } 618 619 // Name of the broker. 620 func (o BrokerOutput) BrokerName() pulumi.StringOutput { 621 return o.ApplyT(func(v *Broker) pulumi.StringOutput { return v.BrokerName }).(pulumi.StringOutput) 622 } 623 624 // Configuration block for broker configuration. Applies to `engineType` of `ActiveMQ` and `RabbitMQ` only. Detailed below. 625 func (o BrokerOutput) Configuration() BrokerConfigurationOutput { 626 return o.ApplyT(func(v *Broker) BrokerConfigurationOutput { return v.Configuration }).(BrokerConfigurationOutput) 627 } 628 629 // Defines whether this broker is a part of a data replication pair. Valid values are `CRDR` and `NONE`. 630 func (o BrokerOutput) DataReplicationMode() pulumi.StringOutput { 631 return o.ApplyT(func(v *Broker) pulumi.StringOutput { return v.DataReplicationMode }).(pulumi.StringOutput) 632 } 633 634 // 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 `CRDR`. 635 func (o BrokerOutput) DataReplicationPrimaryBrokerArn() pulumi.StringPtrOutput { 636 return o.ApplyT(func(v *Broker) pulumi.StringPtrOutput { return v.DataReplicationPrimaryBrokerArn }).(pulumi.StringPtrOutput) 637 } 638 639 // Deployment mode of the broker. Valid values are `SINGLE_INSTANCE`, `ACTIVE_STANDBY_MULTI_AZ`, and `CLUSTER_MULTI_AZ`. Default is `SINGLE_INSTANCE`. 640 func (o BrokerOutput) DeploymentMode() pulumi.StringPtrOutput { 641 return o.ApplyT(func(v *Broker) pulumi.StringPtrOutput { return v.DeploymentMode }).(pulumi.StringPtrOutput) 642 } 643 644 // Configuration block containing encryption options. Detailed below. 645 func (o BrokerOutput) EncryptionOptions() BrokerEncryptionOptionsPtrOutput { 646 return o.ApplyT(func(v *Broker) BrokerEncryptionOptionsPtrOutput { return v.EncryptionOptions }).(BrokerEncryptionOptionsPtrOutput) 647 } 648 649 // Type of broker engine. Valid values are `ActiveMQ` and `RabbitMQ`. 650 func (o BrokerOutput) EngineType() pulumi.StringOutput { 651 return o.ApplyT(func(v *Broker) pulumi.StringOutput { return v.EngineType }).(pulumi.StringOutput) 652 } 653 654 // Version of the broker engine. See the [AmazonMQ Broker Engine docs](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/broker-engine.html) for supported versions. For example, `5.17.6`. 655 func (o BrokerOutput) EngineVersion() pulumi.StringOutput { 656 return o.ApplyT(func(v *Broker) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput) 657 } 658 659 // Broker's instance type. For example, `mq.t3.micro`, `mq.m5.large`. 660 func (o BrokerOutput) HostInstanceType() pulumi.StringOutput { 661 return o.ApplyT(func(v *Broker) pulumi.StringOutput { return v.HostInstanceType }).(pulumi.StringOutput) 662 } 663 664 // List of information about allocated brokers (both active & standby). 665 func (o BrokerOutput) Instances() BrokerInstanceArrayOutput { 666 return o.ApplyT(func(v *Broker) BrokerInstanceArrayOutput { return v.Instances }).(BrokerInstanceArrayOutput) 667 } 668 669 // Configuration block for the LDAP server used to authenticate and authorize connections to the broker. Not supported for `engineType` `RabbitMQ`. Detailed below. (Currently, AWS may not process changes to LDAP server metadata.) 670 func (o BrokerOutput) LdapServerMetadata() BrokerLdapServerMetadataPtrOutput { 671 return o.ApplyT(func(v *Broker) BrokerLdapServerMetadataPtrOutput { return v.LdapServerMetadata }).(BrokerLdapServerMetadataPtrOutput) 672 } 673 674 // Configuration block for the logging configuration of the broker. Detailed below. 675 func (o BrokerOutput) Logs() BrokerLogsPtrOutput { 676 return o.ApplyT(func(v *Broker) BrokerLogsPtrOutput { return v.Logs }).(BrokerLogsPtrOutput) 677 } 678 679 // Configuration block for the maintenance window start time. Detailed below. 680 func (o BrokerOutput) MaintenanceWindowStartTime() BrokerMaintenanceWindowStartTimeOutput { 681 return o.ApplyT(func(v *Broker) BrokerMaintenanceWindowStartTimeOutput { return v.MaintenanceWindowStartTime }).(BrokerMaintenanceWindowStartTimeOutput) 682 } 683 684 // (Optional) The data replication mode that will be applied after reboot. 685 func (o BrokerOutput) PendingDataReplicationMode() pulumi.StringOutput { 686 return o.ApplyT(func(v *Broker) pulumi.StringOutput { return v.PendingDataReplicationMode }).(pulumi.StringOutput) 687 } 688 689 // Whether to enable connections from applications outside of the VPC that hosts the broker's subnets. 690 func (o BrokerOutput) PubliclyAccessible() pulumi.BoolPtrOutput { 691 return o.ApplyT(func(v *Broker) pulumi.BoolPtrOutput { return v.PubliclyAccessible }).(pulumi.BoolPtrOutput) 692 } 693 694 // List of security group IDs assigned to the broker. 695 func (o BrokerOutput) SecurityGroups() pulumi.StringArrayOutput { 696 return o.ApplyT(func(v *Broker) pulumi.StringArrayOutput { return v.SecurityGroups }).(pulumi.StringArrayOutput) 697 } 698 699 // Storage type of the broker. For `engineType` `ActiveMQ`, the valid values are `efs` and `ebs`, and the AWS-default is `efs`. For `engineType` `RabbitMQ`, only `ebs` is supported. When using `ebs`, only the `mq.m5` broker instance type family is supported. 700 func (o BrokerOutput) StorageType() pulumi.StringOutput { 701 return o.ApplyT(func(v *Broker) pulumi.StringOutput { return v.StorageType }).(pulumi.StringOutput) 702 } 703 704 // List of subnet IDs in which to launch the broker. A `SINGLE_INSTANCE` deployment requires one subnet. An `ACTIVE_STANDBY_MULTI_AZ` deployment requires multiple subnets. 705 func (o BrokerOutput) SubnetIds() pulumi.StringArrayOutput { 706 return o.ApplyT(func(v *Broker) pulumi.StringArrayOutput { return v.SubnetIds }).(pulumi.StringArrayOutput) 707 } 708 709 // Map of tags to assign to the broker. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 710 func (o BrokerOutput) Tags() pulumi.StringMapOutput { 711 return o.ApplyT(func(v *Broker) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 712 } 713 714 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 715 // 716 // Deprecated: Please use `tags` instead. 717 func (o BrokerOutput) TagsAll() pulumi.StringMapOutput { 718 return o.ApplyT(func(v *Broker) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 719 } 720 721 // Configuration block for broker users. For `engineType` of `RabbitMQ`, Amazon MQ does not return broker users preventing this resource from making user updates and drift detection. Detailed below. 722 // 723 // The following arguments are optional: 724 func (o BrokerOutput) Users() BrokerUserArrayOutput { 725 return o.ApplyT(func(v *Broker) BrokerUserArrayOutput { return v.Users }).(BrokerUserArrayOutput) 726 } 727 728 type BrokerArrayOutput struct{ *pulumi.OutputState } 729 730 func (BrokerArrayOutput) ElementType() reflect.Type { 731 return reflect.TypeOf((*[]*Broker)(nil)).Elem() 732 } 733 734 func (o BrokerArrayOutput) ToBrokerArrayOutput() BrokerArrayOutput { 735 return o 736 } 737 738 func (o BrokerArrayOutput) ToBrokerArrayOutputWithContext(ctx context.Context) BrokerArrayOutput { 739 return o 740 } 741 742 func (o BrokerArrayOutput) Index(i pulumi.IntInput) BrokerOutput { 743 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Broker { 744 return vs[0].([]*Broker)[vs[1].(int)] 745 }).(BrokerOutput) 746 } 747 748 type BrokerMapOutput struct{ *pulumi.OutputState } 749 750 func (BrokerMapOutput) ElementType() reflect.Type { 751 return reflect.TypeOf((*map[string]*Broker)(nil)).Elem() 752 } 753 754 func (o BrokerMapOutput) ToBrokerMapOutput() BrokerMapOutput { 755 return o 756 } 757 758 func (o BrokerMapOutput) ToBrokerMapOutputWithContext(ctx context.Context) BrokerMapOutput { 759 return o 760 } 761 762 func (o BrokerMapOutput) MapIndex(k pulumi.StringInput) BrokerOutput { 763 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Broker { 764 return vs[0].(map[string]*Broker)[vs[1].(string)] 765 }).(BrokerOutput) 766 } 767 768 func init() { 769 pulumi.RegisterInputType(reflect.TypeOf((*BrokerInput)(nil)).Elem(), &Broker{}) 770 pulumi.RegisterInputType(reflect.TypeOf((*BrokerArrayInput)(nil)).Elem(), BrokerArray{}) 771 pulumi.RegisterInputType(reflect.TypeOf((*BrokerMapInput)(nil)).Elem(), BrokerMap{}) 772 pulumi.RegisterOutputType(BrokerOutput{}) 773 pulumi.RegisterOutputType(BrokerArrayOutput{}) 774 pulumi.RegisterOutputType(BrokerMapOutput{}) 775 }