/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the mq-2017-11-27.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.MQ.Model { /// /// Container for the parameters to the CreateBroker operation. /// Creates a broker. Note: This API is asynchronous. /// /// /// /// To create a broker, you must either use the AmazonMQFullAccess IAM policy or include /// the following EC2 permissions in your IAM policy. /// /// /// /// For more information, see Create /// an IAM User and Get Your Amazon Web Services Credentials and Never /// Modify or Delete the Amazon MQ Elastic Network Interface in the Amazon MQ Developer /// Guide. /// /// public partial class CreateBrokerRequest : AmazonMQRequest { private AuthenticationStrategy _authenticationStrategy; private bool? _autoMinorVersionUpgrade; private string _brokerName; private ConfigurationId _configuration; private string _creatorRequestId; private DataReplicationMode _dataReplicationMode; private string _dataReplicationPrimaryBrokerArn; private DeploymentMode _deploymentMode; private EncryptionOptions _encryptionOptions; private EngineType _engineType; private string _engineVersion; private string _hostInstanceType; private LdapServerMetadataInput _ldapServerMetadata; private Logs _logs; private WeeklyStartTime _maintenanceWindowStartTime; private bool? _publiclyAccessible; private List _securityGroups = new List(); private BrokerStorageType _storageType; private List _subnetIds = new List(); private Dictionary _tags = new Dictionary(); private List _users = new List(); /// /// Gets and sets the property AuthenticationStrategy. /// /// Optional. The authentication strategy used to secure the broker. The default is SIMPLE. /// /// public AuthenticationStrategy AuthenticationStrategy { get { return this._authenticationStrategy; } set { this._authenticationStrategy = value; } } // Check to see if AuthenticationStrategy property is set internal bool IsSetAuthenticationStrategy() { return this._authenticationStrategy != null; } /// /// Gets and sets the property 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. /// /// [AWSProperty(Required=true)] public bool AutoMinorVersionUpgrade { get { return this._autoMinorVersionUpgrade.GetValueOrDefault(); } set { this._autoMinorVersionUpgrade = value; } } // Check to see if AutoMinorVersionUpgrade property is set internal bool IsSetAutoMinorVersionUpgrade() { return this._autoMinorVersionUpgrade.HasValue; } /// /// Gets and sets the property 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. /// /// /// [AWSProperty(Required=true)] public string BrokerName { get { return this._brokerName; } set { this._brokerName = value; } } // Check to see if BrokerName property is set internal bool IsSetBrokerName() { return this._brokerName != null; } /// /// Gets and sets the property Configuration. /// /// A list of information about the configuration. /// /// public ConfigurationId Configuration { get { return this._configuration; } set { this._configuration = value; } } // Check to see if Configuration property is set internal bool IsSetConfiguration() { return this._configuration != null; } /// /// Gets and sets the property 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. /// /// /// public string CreatorRequestId { get { return this._creatorRequestId; } set { this._creatorRequestId = value; } } // Check to see if CreatorRequestId property is set internal bool IsSetCreatorRequestId() { return this._creatorRequestId != null; } /// /// Gets and sets the property DataReplicationMode. /// /// Defines whether this broker is a part of a data replication pair. /// /// public DataReplicationMode DataReplicationMode { get { return this._dataReplicationMode; } set { this._dataReplicationMode = value; } } // Check to see if DataReplicationMode property is set internal bool IsSetDataReplicationMode() { return this._dataReplicationMode != null; } /// /// Gets and sets the property 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. /// /// public string DataReplicationPrimaryBrokerArn { get { return this._dataReplicationPrimaryBrokerArn; } set { this._dataReplicationPrimaryBrokerArn = value; } } // Check to see if DataReplicationPrimaryBrokerArn property is set internal bool IsSetDataReplicationPrimaryBrokerArn() { return this._dataReplicationPrimaryBrokerArn != null; } /// /// Gets and sets the property DeploymentMode. /// /// Required. The broker's deployment mode. /// /// [AWSProperty(Required=true)] public DeploymentMode DeploymentMode { get { return this._deploymentMode; } set { this._deploymentMode = value; } } // Check to see if DeploymentMode property is set internal bool IsSetDeploymentMode() { return this._deploymentMode != null; } /// /// Gets and sets the property EncryptionOptions. /// /// Encryption options for the broker. /// /// public EncryptionOptions EncryptionOptions { get { return this._encryptionOptions; } set { this._encryptionOptions = value; } } // Check to see if EncryptionOptions property is set internal bool IsSetEncryptionOptions() { return this._encryptionOptions != null; } /// /// Gets and sets the property EngineType. /// /// Required. The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ and RABBITMQ. /// /// [AWSProperty(Required=true)] public EngineType EngineType { get { return this._engineType; } set { this._engineType = value; } } // Check to see if EngineType property is set internal bool IsSetEngineType() { return this._engineType != null; } /// /// Gets and sets the property EngineVersion. /// /// Required. The broker engine's version. For a list of supported engine versions, see /// Supported /// engines. /// /// [AWSProperty(Required=true)] public string EngineVersion { get { return this._engineVersion; } set { this._engineVersion = value; } } // Check to see if EngineVersion property is set internal bool IsSetEngineVersion() { return this._engineVersion != null; } /// /// Gets and sets the property HostInstanceType. /// /// Required. The broker's instance type. /// /// [AWSProperty(Required=true)] public string HostInstanceType { get { return this._hostInstanceType; } set { this._hostInstanceType = value; } } // Check to see if HostInstanceType property is set internal bool IsSetHostInstanceType() { return this._hostInstanceType != null; } /// /// Gets and sets the property LdapServerMetadata. /// /// Optional. The metadata of the LDAP server used to authenticate and authorize connections /// to the broker. Does not apply to RabbitMQ brokers. /// /// public LdapServerMetadataInput LdapServerMetadata { get { return this._ldapServerMetadata; } set { this._ldapServerMetadata = value; } } // Check to see if LdapServerMetadata property is set internal bool IsSetLdapServerMetadata() { return this._ldapServerMetadata != null; } /// /// Gets and sets the property Logs. /// /// Enables Amazon CloudWatch logging for brokers. /// /// public Logs Logs { get { return this._logs; } set { this._logs = value; } } // Check to see if Logs property is set internal bool IsSetLogs() { return this._logs != null; } /// /// Gets and sets the property MaintenanceWindowStartTime. /// /// The parameters that determine the WeeklyStartTime. /// /// public WeeklyStartTime MaintenanceWindowStartTime { get { return this._maintenanceWindowStartTime; } set { this._maintenanceWindowStartTime = value; } } // Check to see if MaintenanceWindowStartTime property is set internal bool IsSetMaintenanceWindowStartTime() { return this._maintenanceWindowStartTime != null; } /// /// Gets and sets the property 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. /// /// [AWSProperty(Required=true)] public bool PubliclyAccessible { get { return this._publiclyAccessible.GetValueOrDefault(); } set { this._publiclyAccessible = value; } } // Check to see if PubliclyAccessible property is set internal bool IsSetPubliclyAccessible() { return this._publiclyAccessible.HasValue; } /// /// Gets and sets the property SecurityGroups. /// /// The list of rules (1 minimum, 125 maximum) that authorize connections to brokers. /// /// public List SecurityGroups { get { return this._securityGroups; } set { this._securityGroups = value; } } // Check to see if SecurityGroups property is set internal bool IsSetSecurityGroups() { return this._securityGroups != null && this._securityGroups.Count > 0; } /// /// Gets and sets the property StorageType. /// /// The broker's storage type. /// /// public BrokerStorageType StorageType { get { return this._storageType; } set { this._storageType = value; } } // Check to see if StorageType property is set internal bool IsSetStorageType() { return this._storageType != null; } /// /// Gets and sets the property 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. /// /// /// public List SubnetIds { get { return this._subnetIds; } set { this._subnetIds = value; } } // Check to see if SubnetIds property is set internal bool IsSetSubnetIds() { return this._subnetIds != null && this._subnetIds.Count > 0; } /// /// Gets and sets the property Tags. /// /// Create tags when creating the broker. /// /// public Dictionary Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } /// /// Gets and sets the property 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. /// /// [AWSProperty(Required=true)] public List Users { get { return this._users; } set { this._users = value; } } // Check to see if Users property is set internal bool IsSetUsers() { return this._users != null && this._users.Count > 0; } } }