/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace MQ { namespace Model { /** *

Creates a broker using the specified properties.

See Also:

* AWS * API Reference

*/ class CreateBrokerRequest : public MQRequest { public: AWS_MQ_API CreateBrokerRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateBroker"; } AWS_MQ_API Aws::String SerializePayload() const override; /** *

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

*/ inline const AuthenticationStrategy& GetAuthenticationStrategy() const{ return m_authenticationStrategy; } /** *

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

*/ inline bool AuthenticationStrategyHasBeenSet() const { return m_authenticationStrategyHasBeenSet; } /** *

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

*/ inline void SetAuthenticationStrategy(const AuthenticationStrategy& value) { m_authenticationStrategyHasBeenSet = true; m_authenticationStrategy = value; } /** *

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

*/ inline void SetAuthenticationStrategy(AuthenticationStrategy&& value) { m_authenticationStrategyHasBeenSet = true; m_authenticationStrategy = std::move(value); } /** *

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

*/ inline CreateBrokerRequest& WithAuthenticationStrategy(const AuthenticationStrategy& value) { SetAuthenticationStrategy(value); return *this;} /** *

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

*/ inline CreateBrokerRequest& WithAuthenticationStrategy(AuthenticationStrategy&& value) { SetAuthenticationStrategy(std::move(value)); return *this;} /** *

Enables automatic upgrades to new minor versions for brokers, as new versions * are released and supported by Amazon MQ. Automatic upgrades occur during the * scheduled maintenance window of the broker or after a manual broker reboot. Set * to true by default, if no value is specified.

*/ inline bool GetAutoMinorVersionUpgrade() const{ return m_autoMinorVersionUpgrade; } /** *

Enables automatic upgrades to new minor versions for brokers, as new versions * are released and supported by Amazon MQ. Automatic upgrades occur during the * scheduled maintenance window of the broker or after a manual broker reboot. Set * to true by default, if no value is specified.

*/ inline bool AutoMinorVersionUpgradeHasBeenSet() const { return m_autoMinorVersionUpgradeHasBeenSet; } /** *

Enables automatic upgrades to new minor versions for brokers, as new versions * are released and supported by Amazon MQ. Automatic upgrades occur during the * scheduled maintenance window of the broker or after a manual broker reboot. Set * to true by default, if no value is specified.

*/ inline void SetAutoMinorVersionUpgrade(bool value) { m_autoMinorVersionUpgradeHasBeenSet = true; m_autoMinorVersionUpgrade = value; } /** *

Enables automatic upgrades to new minor versions for brokers, as new versions * are released and supported by Amazon MQ. Automatic upgrades occur during the * scheduled maintenance window of the broker or after a manual broker reboot. Set * to true by default, if no value is specified.

*/ inline CreateBrokerRequest& WithAutoMinorVersionUpgrade(bool value) { SetAutoMinorVersionUpgrade(value); return *this;} /** *

Required. The broker's name. This value must be unique in your Amazon Web * Services 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 Amazon Web Services services, * including CloudWatch Logs. Broker names are not intended to be used for private * or sensitive data.

*/ inline const Aws::String& GetBrokerName() const{ return m_brokerName; } /** *

Required. The broker's name. This value must be unique in your Amazon Web * Services 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 Amazon Web Services services, * including CloudWatch Logs. Broker names are not intended to be used for private * or sensitive data.

*/ inline bool BrokerNameHasBeenSet() const { return m_brokerNameHasBeenSet; } /** *

Required. The broker's name. This value must be unique in your Amazon Web * Services 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 Amazon Web Services services, * including CloudWatch Logs. Broker names are not intended to be used for private * or sensitive data.

*/ inline void SetBrokerName(const Aws::String& value) { m_brokerNameHasBeenSet = true; m_brokerName = value; } /** *

Required. The broker's name. This value must be unique in your Amazon Web * Services 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 Amazon Web Services services, * including CloudWatch Logs. Broker names are not intended to be used for private * or sensitive data.

*/ inline void SetBrokerName(Aws::String&& value) { m_brokerNameHasBeenSet = true; m_brokerName = std::move(value); } /** *

Required. The broker's name. This value must be unique in your Amazon Web * Services 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 Amazon Web Services services, * including CloudWatch Logs. Broker names are not intended to be used for private * or sensitive data.

*/ inline void SetBrokerName(const char* value) { m_brokerNameHasBeenSet = true; m_brokerName.assign(value); } /** *

Required. The broker's name. This value must be unique in your Amazon Web * Services 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 Amazon Web Services services, * including CloudWatch Logs. Broker names are not intended to be used for private * or sensitive data.

*/ inline CreateBrokerRequest& WithBrokerName(const Aws::String& value) { SetBrokerName(value); return *this;} /** *

Required. The broker's name. This value must be unique in your Amazon Web * Services 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 Amazon Web Services services, * including CloudWatch Logs. Broker names are not intended to be used for private * or sensitive data.

*/ inline CreateBrokerRequest& WithBrokerName(Aws::String&& value) { SetBrokerName(std::move(value)); return *this;} /** *

Required. The broker's name. This value must be unique in your Amazon Web * Services 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 Amazon Web Services services, * including CloudWatch Logs. Broker names are not intended to be used for private * or sensitive data.

*/ inline CreateBrokerRequest& WithBrokerName(const char* value) { SetBrokerName(value); return *this;} /** *

A list of information about the configuration.

*/ inline const ConfigurationId& GetConfiguration() const{ return m_configuration; } /** *

A list of information about the configuration.

*/ inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; } /** *

A list of information about the configuration.

*/ inline void SetConfiguration(const ConfigurationId& value) { m_configurationHasBeenSet = true; m_configuration = value; } /** *

A list of information about the configuration.

*/ inline void SetConfiguration(ConfigurationId&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); } /** *

A list of information about the configuration.

*/ inline CreateBrokerRequest& WithConfiguration(const ConfigurationId& value) { SetConfiguration(value); return *this;} /** *

A list of information about the configuration.

*/ inline CreateBrokerRequest& WithConfiguration(ConfigurationId&& value) { SetConfiguration(std::move(value)); return *this;} /** *

The unique ID that the requester receives for the created broker. Amazon MQ * passes your ID with the API action.

We recommend using a * Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the * creatorRequestId if your application doesn't require idempotency.

*/ inline const Aws::String& GetCreatorRequestId() const{ return m_creatorRequestId; } /** *

The unique ID that the requester receives for the created broker. Amazon MQ * passes your ID with the API action.

We recommend using a * Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the * creatorRequestId if your application doesn't require idempotency.

*/ inline bool CreatorRequestIdHasBeenSet() const { return m_creatorRequestIdHasBeenSet; } /** *

The unique ID that the requester receives for the created broker. Amazon MQ * passes your ID with the API action.

We recommend using a * Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the * creatorRequestId if your application doesn't require idempotency.

*/ inline void SetCreatorRequestId(const Aws::String& value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId = value; } /** *

The unique ID that the requester receives for the created broker. Amazon MQ * passes your ID with the API action.

We recommend using a * Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the * creatorRequestId if your application doesn't require idempotency.

*/ inline void SetCreatorRequestId(Aws::String&& value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId = std::move(value); } /** *

The unique ID that the requester receives for the created broker. Amazon MQ * passes your ID with the API action.

We recommend using a * Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the * creatorRequestId if your application doesn't require idempotency.

*/ inline void SetCreatorRequestId(const char* value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId.assign(value); } /** *

The unique ID that the requester receives for the created broker. Amazon MQ * passes your ID with the API action.

We recommend using a * Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the * creatorRequestId if your application doesn't require idempotency.

*/ inline CreateBrokerRequest& WithCreatorRequestId(const Aws::String& value) { SetCreatorRequestId(value); return *this;} /** *

The unique ID that the requester receives for the created broker. Amazon MQ * passes your ID with the API action.

We recommend using a * Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the * creatorRequestId if your application doesn't require idempotency.

*/ inline CreateBrokerRequest& WithCreatorRequestId(Aws::String&& value) { SetCreatorRequestId(std::move(value)); return *this;} /** *

The unique ID that the requester receives for the created broker. Amazon MQ * passes your ID with the API action.

We recommend using a * Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the * creatorRequestId if your application doesn't require idempotency.

*/ inline CreateBrokerRequest& WithCreatorRequestId(const char* value) { SetCreatorRequestId(value); return *this;} /** *

Required. The broker's deployment mode.

*/ inline const DeploymentMode& GetDeploymentMode() const{ return m_deploymentMode; } /** *

Required. The broker's deployment mode.

*/ inline bool DeploymentModeHasBeenSet() const { return m_deploymentModeHasBeenSet; } /** *

Required. The broker's deployment mode.

*/ inline void SetDeploymentMode(const DeploymentMode& value) { m_deploymentModeHasBeenSet = true; m_deploymentMode = value; } /** *

Required. The broker's deployment mode.

*/ inline void SetDeploymentMode(DeploymentMode&& value) { m_deploymentModeHasBeenSet = true; m_deploymentMode = std::move(value); } /** *

Required. The broker's deployment mode.

*/ inline CreateBrokerRequest& WithDeploymentMode(const DeploymentMode& value) { SetDeploymentMode(value); return *this;} /** *

Required. The broker's deployment mode.

*/ inline CreateBrokerRequest& WithDeploymentMode(DeploymentMode&& value) { SetDeploymentMode(std::move(value)); return *this;} /** *

Encryption options for the broker.

*/ inline const EncryptionOptions& GetEncryptionOptions() const{ return m_encryptionOptions; } /** *

Encryption options for the broker.

*/ inline bool EncryptionOptionsHasBeenSet() const { return m_encryptionOptionsHasBeenSet; } /** *

Encryption options for the broker.

*/ inline void SetEncryptionOptions(const EncryptionOptions& value) { m_encryptionOptionsHasBeenSet = true; m_encryptionOptions = value; } /** *

Encryption options for the broker.

*/ inline void SetEncryptionOptions(EncryptionOptions&& value) { m_encryptionOptionsHasBeenSet = true; m_encryptionOptions = std::move(value); } /** *

Encryption options for the broker.

*/ inline CreateBrokerRequest& WithEncryptionOptions(const EncryptionOptions& value) { SetEncryptionOptions(value); return *this;} /** *

Encryption options for the broker.

*/ inline CreateBrokerRequest& WithEncryptionOptions(EncryptionOptions&& value) { SetEncryptionOptions(std::move(value)); return *this;} /** *

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

*/ inline const EngineType& GetEngineType() const{ return m_engineType; } /** *

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

*/ inline bool EngineTypeHasBeenSet() const { return m_engineTypeHasBeenSet; } /** *

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

*/ inline void SetEngineType(const EngineType& value) { m_engineTypeHasBeenSet = true; m_engineType = value; } /** *

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

*/ inline void SetEngineType(EngineType&& value) { m_engineTypeHasBeenSet = true; m_engineType = std::move(value); } /** *

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

*/ inline CreateBrokerRequest& WithEngineType(const EngineType& value) { SetEngineType(value); return *this;} /** *

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

*/ inline CreateBrokerRequest& WithEngineType(EngineType&& value) { SetEngineType(std::move(value)); return *this;} /** *

Required. The broker engine's version. For a list of supported engine * versions, see Supported * engines.

*/ inline const Aws::String& GetEngineVersion() const{ return m_engineVersion; } /** *

Required. The broker engine's version. For a list of supported engine * versions, see Supported * engines.

*/ inline bool EngineVersionHasBeenSet() const { return m_engineVersionHasBeenSet; } /** *

Required. The broker engine's version. For a list of supported engine * versions, see Supported * engines.

*/ inline void SetEngineVersion(const Aws::String& value) { m_engineVersionHasBeenSet = true; m_engineVersion = value; } /** *

Required. The broker engine's version. For a list of supported engine * versions, see Supported * engines.

*/ inline void SetEngineVersion(Aws::String&& value) { m_engineVersionHasBeenSet = true; m_engineVersion = std::move(value); } /** *

Required. The broker engine's version. For a list of supported engine * versions, see Supported * engines.

*/ inline void SetEngineVersion(const char* value) { m_engineVersionHasBeenSet = true; m_engineVersion.assign(value); } /** *

Required. The broker engine's version. For a list of supported engine * versions, see Supported * engines.

*/ inline CreateBrokerRequest& WithEngineVersion(const Aws::String& value) { SetEngineVersion(value); return *this;} /** *

Required. The broker engine's version. For a list of supported engine * versions, see Supported * engines.

*/ inline CreateBrokerRequest& WithEngineVersion(Aws::String&& value) { SetEngineVersion(std::move(value)); return *this;} /** *

Required. The broker engine's version. For a list of supported engine * versions, see Supported * engines.

*/ inline CreateBrokerRequest& WithEngineVersion(const char* value) { SetEngineVersion(value); return *this;} /** *

Required. The broker's instance type.

*/ inline const Aws::String& GetHostInstanceType() const{ return m_hostInstanceType; } /** *

Required. The broker's instance type.

*/ inline bool HostInstanceTypeHasBeenSet() const { return m_hostInstanceTypeHasBeenSet; } /** *

Required. The broker's instance type.

*/ inline void SetHostInstanceType(const Aws::String& value) { m_hostInstanceTypeHasBeenSet = true; m_hostInstanceType = value; } /** *

Required. The broker's instance type.

*/ inline void SetHostInstanceType(Aws::String&& value) { m_hostInstanceTypeHasBeenSet = true; m_hostInstanceType = std::move(value); } /** *

Required. The broker's instance type.

*/ inline void SetHostInstanceType(const char* value) { m_hostInstanceTypeHasBeenSet = true; m_hostInstanceType.assign(value); } /** *

Required. The broker's instance type.

*/ inline CreateBrokerRequest& WithHostInstanceType(const Aws::String& value) { SetHostInstanceType(value); return *this;} /** *

Required. The broker's instance type.

*/ inline CreateBrokerRequest& WithHostInstanceType(Aws::String&& value) { SetHostInstanceType(std::move(value)); return *this;} /** *

Required. The broker's instance type.

*/ inline CreateBrokerRequest& WithHostInstanceType(const char* value) { SetHostInstanceType(value); return *this;} /** *

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

*/ inline const LdapServerMetadataInput& GetLdapServerMetadata() const{ return m_ldapServerMetadata; } /** *

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

*/ inline bool LdapServerMetadataHasBeenSet() const { return m_ldapServerMetadataHasBeenSet; } /** *

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

*/ inline void SetLdapServerMetadata(const LdapServerMetadataInput& value) { m_ldapServerMetadataHasBeenSet = true; m_ldapServerMetadata = value; } /** *

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

*/ inline void SetLdapServerMetadata(LdapServerMetadataInput&& value) { m_ldapServerMetadataHasBeenSet = true; m_ldapServerMetadata = std::move(value); } /** *

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

*/ inline CreateBrokerRequest& WithLdapServerMetadata(const LdapServerMetadataInput& value) { SetLdapServerMetadata(value); return *this;} /** *

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

*/ inline CreateBrokerRequest& WithLdapServerMetadata(LdapServerMetadataInput&& value) { SetLdapServerMetadata(std::move(value)); return *this;} /** *

Enables Amazon CloudWatch logging for brokers.

*/ inline const Logs& GetLogs() const{ return m_logs; } /** *

Enables Amazon CloudWatch logging for brokers.

*/ inline bool LogsHasBeenSet() const { return m_logsHasBeenSet; } /** *

Enables Amazon CloudWatch logging for brokers.

*/ inline void SetLogs(const Logs& value) { m_logsHasBeenSet = true; m_logs = value; } /** *

Enables Amazon CloudWatch logging for brokers.

*/ inline void SetLogs(Logs&& value) { m_logsHasBeenSet = true; m_logs = std::move(value); } /** *

Enables Amazon CloudWatch logging for brokers.

*/ inline CreateBrokerRequest& WithLogs(const Logs& value) { SetLogs(value); return *this;} /** *

Enables Amazon CloudWatch logging for brokers.

*/ inline CreateBrokerRequest& WithLogs(Logs&& value) { SetLogs(std::move(value)); return *this;} /** *

The parameters that determine the WeeklyStartTime.

*/ inline const WeeklyStartTime& GetMaintenanceWindowStartTime() const{ return m_maintenanceWindowStartTime; } /** *

The parameters that determine the WeeklyStartTime.

*/ inline bool MaintenanceWindowStartTimeHasBeenSet() const { return m_maintenanceWindowStartTimeHasBeenSet; } /** *

The parameters that determine the WeeklyStartTime.

*/ inline void SetMaintenanceWindowStartTime(const WeeklyStartTime& value) { m_maintenanceWindowStartTimeHasBeenSet = true; m_maintenanceWindowStartTime = value; } /** *

The parameters that determine the WeeklyStartTime.

*/ inline void SetMaintenanceWindowStartTime(WeeklyStartTime&& value) { m_maintenanceWindowStartTimeHasBeenSet = true; m_maintenanceWindowStartTime = std::move(value); } /** *

The parameters that determine the WeeklyStartTime.

*/ inline CreateBrokerRequest& WithMaintenanceWindowStartTime(const WeeklyStartTime& value) { SetMaintenanceWindowStartTime(value); return *this;} /** *

The parameters that determine the WeeklyStartTime.

*/ inline CreateBrokerRequest& WithMaintenanceWindowStartTime(WeeklyStartTime&& value) { SetMaintenanceWindowStartTime(std::move(value)); return *this;} /** *

Enables connections from applications outside of the VPC that hosts the * broker's subnets. Set to false by default, if no value is provided.

*/ inline bool GetPubliclyAccessible() const{ return m_publiclyAccessible; } /** *

Enables connections from applications outside of the VPC that hosts the * broker's subnets. Set to false by default, if no value is provided.

*/ inline bool PubliclyAccessibleHasBeenSet() const { return m_publiclyAccessibleHasBeenSet; } /** *

Enables connections from applications outside of the VPC that hosts the * broker's subnets. Set to false by default, if no value is provided.

*/ inline void SetPubliclyAccessible(bool value) { m_publiclyAccessibleHasBeenSet = true; m_publiclyAccessible = value; } /** *

Enables connections from applications outside of the VPC that hosts the * broker's subnets. Set to false by default, if no value is provided.

*/ inline CreateBrokerRequest& WithPubliclyAccessible(bool value) { SetPubliclyAccessible(value); return *this;} /** *

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

*/ inline const Aws::Vector& GetSecurityGroups() const{ return m_securityGroups; } /** *

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

*/ inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; } /** *

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

*/ inline void SetSecurityGroups(const Aws::Vector& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = value; } /** *

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

*/ inline void SetSecurityGroups(Aws::Vector&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = std::move(value); } /** *

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

*/ inline CreateBrokerRequest& WithSecurityGroups(const Aws::Vector& value) { SetSecurityGroups(value); return *this;} /** *

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

*/ inline CreateBrokerRequest& WithSecurityGroups(Aws::Vector&& value) { SetSecurityGroups(std::move(value)); return *this;} /** *

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

*/ inline CreateBrokerRequest& AddSecurityGroups(const Aws::String& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } /** *

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

*/ inline CreateBrokerRequest& AddSecurityGroups(Aws::String&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(std::move(value)); return *this; } /** *

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

*/ inline CreateBrokerRequest& AddSecurityGroups(const char* value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } /** *

The broker's storage type.

*/ inline const BrokerStorageType& GetStorageType() const{ return m_storageType; } /** *

The broker's storage type.

*/ inline bool StorageTypeHasBeenSet() const { return m_storageTypeHasBeenSet; } /** *

The broker's storage type.

*/ inline void SetStorageType(const BrokerStorageType& value) { m_storageTypeHasBeenSet = true; m_storageType = value; } /** *

The broker's storage type.

*/ inline void SetStorageType(BrokerStorageType&& value) { m_storageTypeHasBeenSet = true; m_storageType = std::move(value); } /** *

The broker's storage type.

*/ inline CreateBrokerRequest& WithStorageType(const BrokerStorageType& value) { SetStorageType(value); return *this;} /** *

The broker's storage type.

*/ inline CreateBrokerRequest& WithStorageType(BrokerStorageType&& value) { SetStorageType(std::move(value)); return *this;} /** *

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 Amazon Web Services account. Amazon MQ will not be * able to create VPC endpoints in VPCs that are not owned by your Amazon Web * Services account.

*/ inline const Aws::Vector& GetSubnetIds() const{ return m_subnetIds; } /** *

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 Amazon Web Services account. Amazon MQ will not be * able to create VPC endpoints in VPCs that are not owned by your Amazon Web * Services account.

*/ inline bool SubnetIdsHasBeenSet() const { return m_subnetIdsHasBeenSet; } /** *

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 Amazon Web Services account. Amazon MQ will not be * able to create VPC endpoints in VPCs that are not owned by your Amazon Web * Services account.

*/ inline void SetSubnetIds(const Aws::Vector& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = value; } /** *

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 Amazon Web Services account. Amazon MQ will not be * able to create VPC endpoints in VPCs that are not owned by your Amazon Web * Services account.

*/ inline void SetSubnetIds(Aws::Vector&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = std::move(value); } /** *

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 Amazon Web Services account. Amazon MQ will not be * able to create VPC endpoints in VPCs that are not owned by your Amazon Web * Services account.

*/ inline CreateBrokerRequest& WithSubnetIds(const Aws::Vector& value) { SetSubnetIds(value); return *this;} /** *

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 Amazon Web Services account. Amazon MQ will not be * able to create VPC endpoints in VPCs that are not owned by your Amazon Web * Services account.

*/ inline CreateBrokerRequest& WithSubnetIds(Aws::Vector&& value) { SetSubnetIds(std::move(value)); return *this;} /** *

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 Amazon Web Services account. Amazon MQ will not be * able to create VPC endpoints in VPCs that are not owned by your Amazon Web * Services account.

*/ inline CreateBrokerRequest& AddSubnetIds(const Aws::String& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } /** *

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 Amazon Web Services account. Amazon MQ will not be * able to create VPC endpoints in VPCs that are not owned by your Amazon Web * Services account.

*/ inline CreateBrokerRequest& AddSubnetIds(Aws::String&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(std::move(value)); return *this; } /** *

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 Amazon Web Services account. Amazon MQ will not be * able to create VPC endpoints in VPCs that are not owned by your Amazon Web * Services account.

*/ inline CreateBrokerRequest& AddSubnetIds(const char* value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } /** *

Create tags when creating the broker.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

Create tags when creating the broker.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Create tags when creating the broker.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Create tags when creating the broker.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Create tags when creating the broker.

*/ inline CreateBrokerRequest& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

Create tags when creating the broker.

*/ inline CreateBrokerRequest& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

Create tags when creating the broker.

*/ inline CreateBrokerRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

Create tags when creating the broker.

*/ inline CreateBrokerRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

Create tags when creating the broker.

*/ inline CreateBrokerRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

Create tags when creating the broker.

*/ inline CreateBrokerRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

Create tags when creating the broker.

*/ inline CreateBrokerRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

Create tags when creating the broker.

*/ inline CreateBrokerRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

Create tags when creating the broker.

*/ inline CreateBrokerRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

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.

*/ inline const Aws::Vector& GetUsers() const{ return m_users; } /** *

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.

*/ inline bool UsersHasBeenSet() const { return m_usersHasBeenSet; } /** *

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.

*/ inline void SetUsers(const Aws::Vector& value) { m_usersHasBeenSet = true; m_users = value; } /** *

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.

*/ inline void SetUsers(Aws::Vector&& value) { m_usersHasBeenSet = true; m_users = std::move(value); } /** *

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.

*/ inline CreateBrokerRequest& WithUsers(const Aws::Vector& value) { SetUsers(value); return *this;} /** *

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.

*/ inline CreateBrokerRequest& WithUsers(Aws::Vector&& value) { SetUsers(std::move(value)); return *this;} /** *

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.

*/ inline CreateBrokerRequest& AddUsers(const User& value) { m_usersHasBeenSet = true; m_users.push_back(value); return *this; } /** *

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.

*/ inline CreateBrokerRequest& AddUsers(User&& value) { m_usersHasBeenSet = true; m_users.push_back(std::move(value)); return *this; } /** *

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

*/ inline const DataReplicationMode& GetDataReplicationMode() const{ return m_dataReplicationMode; } /** *

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

*/ inline bool DataReplicationModeHasBeenSet() const { return m_dataReplicationModeHasBeenSet; } /** *

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

*/ inline void SetDataReplicationMode(const DataReplicationMode& value) { m_dataReplicationModeHasBeenSet = true; m_dataReplicationMode = value; } /** *

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

*/ inline void SetDataReplicationMode(DataReplicationMode&& value) { m_dataReplicationModeHasBeenSet = true; m_dataReplicationMode = std::move(value); } /** *

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

*/ inline CreateBrokerRequest& WithDataReplicationMode(const DataReplicationMode& value) { SetDataReplicationMode(value); return *this;} /** *

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

*/ inline CreateBrokerRequest& WithDataReplicationMode(DataReplicationMode&& value) { SetDataReplicationMode(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::String& GetDataReplicationPrimaryBrokerArn() const{ return m_dataReplicationPrimaryBrokerArn; } /** *

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.

*/ inline bool DataReplicationPrimaryBrokerArnHasBeenSet() const { return m_dataReplicationPrimaryBrokerArnHasBeenSet; } /** *

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.

*/ inline void SetDataReplicationPrimaryBrokerArn(const Aws::String& value) { m_dataReplicationPrimaryBrokerArnHasBeenSet = true; m_dataReplicationPrimaryBrokerArn = value; } /** *

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.

*/ inline void SetDataReplicationPrimaryBrokerArn(Aws::String&& value) { m_dataReplicationPrimaryBrokerArnHasBeenSet = true; m_dataReplicationPrimaryBrokerArn = std::move(value); } /** *

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.

*/ inline void SetDataReplicationPrimaryBrokerArn(const char* value) { m_dataReplicationPrimaryBrokerArnHasBeenSet = true; m_dataReplicationPrimaryBrokerArn.assign(value); } /** *

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.

*/ inline CreateBrokerRequest& WithDataReplicationPrimaryBrokerArn(const Aws::String& value) { SetDataReplicationPrimaryBrokerArn(value); return *this;} /** *

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.

*/ inline CreateBrokerRequest& WithDataReplicationPrimaryBrokerArn(Aws::String&& value) { SetDataReplicationPrimaryBrokerArn(std::move(value)); return *this;} /** *

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.

*/ inline CreateBrokerRequest& WithDataReplicationPrimaryBrokerArn(const char* value) { SetDataReplicationPrimaryBrokerArn(value); return *this;} private: AuthenticationStrategy m_authenticationStrategy; bool m_authenticationStrategyHasBeenSet = false; bool m_autoMinorVersionUpgrade; bool m_autoMinorVersionUpgradeHasBeenSet = false; Aws::String m_brokerName; bool m_brokerNameHasBeenSet = false; ConfigurationId m_configuration; bool m_configurationHasBeenSet = false; Aws::String m_creatorRequestId; bool m_creatorRequestIdHasBeenSet = false; DeploymentMode m_deploymentMode; bool m_deploymentModeHasBeenSet = false; EncryptionOptions m_encryptionOptions; bool m_encryptionOptionsHasBeenSet = false; EngineType m_engineType; bool m_engineTypeHasBeenSet = false; Aws::String m_engineVersion; bool m_engineVersionHasBeenSet = false; Aws::String m_hostInstanceType; bool m_hostInstanceTypeHasBeenSet = false; LdapServerMetadataInput m_ldapServerMetadata; bool m_ldapServerMetadataHasBeenSet = false; Logs m_logs; bool m_logsHasBeenSet = false; WeeklyStartTime m_maintenanceWindowStartTime; bool m_maintenanceWindowStartTimeHasBeenSet = false; bool m_publiclyAccessible; bool m_publiclyAccessibleHasBeenSet = false; Aws::Vector m_securityGroups; bool m_securityGroupsHasBeenSet = false; BrokerStorageType m_storageType; bool m_storageTypeHasBeenSet = false; Aws::Vector m_subnetIds; bool m_subnetIdsHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_users; bool m_usersHasBeenSet = false; DataReplicationMode m_dataReplicationMode; bool m_dataReplicationModeHasBeenSet = false; Aws::String m_dataReplicationPrimaryBrokerArn; bool m_dataReplicationPrimaryBrokerArnHasBeenSet = false; }; } // namespace Model } // namespace MQ } // namespace Aws