/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Describes the setup to be used for Apache Kafka broker nodes in
* the cluster.See Also:
AWS
* API Reference
The distribution of broker nodes across Availability Zones. This * is an optional parameter. If you don't specify it, Amazon MSK gives it the value * DEFAULT. You can also explicitly set this parameter to the value DEFAULT. No * other values are currently allowed.
Amazon MSK distributes the * broker nodes evenly across the Availability Zones that correspond to the subnets * you provide when you create the cluster.
*/ inline const BrokerAZDistribution& GetBrokerAZDistribution() const{ return m_brokerAZDistribution; } /** *The distribution of broker nodes across Availability Zones. This * is an optional parameter. If you don't specify it, Amazon MSK gives it the value * DEFAULT. You can also explicitly set this parameter to the value DEFAULT. No * other values are currently allowed.
Amazon MSK distributes the * broker nodes evenly across the Availability Zones that correspond to the subnets * you provide when you create the cluster.
*/ inline bool BrokerAZDistributionHasBeenSet() const { return m_brokerAZDistributionHasBeenSet; } /** *The distribution of broker nodes across Availability Zones. This * is an optional parameter. If you don't specify it, Amazon MSK gives it the value * DEFAULT. You can also explicitly set this parameter to the value DEFAULT. No * other values are currently allowed.
Amazon MSK distributes the * broker nodes evenly across the Availability Zones that correspond to the subnets * you provide when you create the cluster.
*/ inline void SetBrokerAZDistribution(const BrokerAZDistribution& value) { m_brokerAZDistributionHasBeenSet = true; m_brokerAZDistribution = value; } /** *The distribution of broker nodes across Availability Zones. This * is an optional parameter. If you don't specify it, Amazon MSK gives it the value * DEFAULT. You can also explicitly set this parameter to the value DEFAULT. No * other values are currently allowed.
Amazon MSK distributes the * broker nodes evenly across the Availability Zones that correspond to the subnets * you provide when you create the cluster.
*/ inline void SetBrokerAZDistribution(BrokerAZDistribution&& value) { m_brokerAZDistributionHasBeenSet = true; m_brokerAZDistribution = std::move(value); } /** *The distribution of broker nodes across Availability Zones. This * is an optional parameter. If you don't specify it, Amazon MSK gives it the value * DEFAULT. You can also explicitly set this parameter to the value DEFAULT. No * other values are currently allowed.
Amazon MSK distributes the * broker nodes evenly across the Availability Zones that correspond to the subnets * you provide when you create the cluster.
*/ inline BrokerNodeGroupInfo& WithBrokerAZDistribution(const BrokerAZDistribution& value) { SetBrokerAZDistribution(value); return *this;} /** *The distribution of broker nodes across Availability Zones. This * is an optional parameter. If you don't specify it, Amazon MSK gives it the value * DEFAULT. You can also explicitly set this parameter to the value DEFAULT. No * other values are currently allowed.
Amazon MSK distributes the * broker nodes evenly across the Availability Zones that correspond to the subnets * you provide when you create the cluster.
*/ inline BrokerNodeGroupInfo& WithBrokerAZDistribution(BrokerAZDistribution&& value) { SetBrokerAZDistribution(std::move(value)); return *this;} /** *The list of subnets to connect to in the client virtual private * cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client * applications use elastic network interfaces to produce and consume data. Client * subnets can't occupy the Availability Zone with ID use use1-az3.
*/ inline const Aws::VectorThe list of subnets to connect to in the client virtual private * cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client * applications use elastic network interfaces to produce and consume data. Client * subnets can't occupy the Availability Zone with ID use use1-az3.
*/ inline bool ClientSubnetsHasBeenSet() const { return m_clientSubnetsHasBeenSet; } /** *The list of subnets to connect to in the client virtual private * cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client * applications use elastic network interfaces to produce and consume data. Client * subnets can't occupy the Availability Zone with ID use use1-az3.
*/ inline void SetClientSubnets(const Aws::VectorThe list of subnets to connect to in the client virtual private * cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client * applications use elastic network interfaces to produce and consume data. Client * subnets can't occupy the Availability Zone with ID use use1-az3.
*/ inline void SetClientSubnets(Aws::VectorThe list of subnets to connect to in the client virtual private * cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client * applications use elastic network interfaces to produce and consume data. Client * subnets can't occupy the Availability Zone with ID use use1-az3.
*/ inline BrokerNodeGroupInfo& WithClientSubnets(const Aws::VectorThe list of subnets to connect to in the client virtual private * cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client * applications use elastic network interfaces to produce and consume data. Client * subnets can't occupy the Availability Zone with ID use use1-az3.
*/ inline BrokerNodeGroupInfo& WithClientSubnets(Aws::VectorThe list of subnets to connect to in the client virtual private * cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client * applications use elastic network interfaces to produce and consume data. Client * subnets can't occupy the Availability Zone with ID use use1-az3.
*/ inline BrokerNodeGroupInfo& AddClientSubnets(const Aws::String& value) { m_clientSubnetsHasBeenSet = true; m_clientSubnets.push_back(value); return *this; } /** *The list of subnets to connect to in the client virtual private * cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client * applications use elastic network interfaces to produce and consume data. Client * subnets can't occupy the Availability Zone with ID use use1-az3.
*/ inline BrokerNodeGroupInfo& AddClientSubnets(Aws::String&& value) { m_clientSubnetsHasBeenSet = true; m_clientSubnets.push_back(std::move(value)); return *this; } /** *The list of subnets to connect to in the client virtual private * cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client * applications use elastic network interfaces to produce and consume data. Client * subnets can't occupy the Availability Zone with ID use use1-az3.
*/ inline BrokerNodeGroupInfo& AddClientSubnets(const char* value) { m_clientSubnetsHasBeenSet = true; m_clientSubnets.push_back(value); return *this; } /** *The type of Amazon EC2 instances to use for Apache Kafka * brokers. The following instance types are allowed: kafka.m5.large, * kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.12xlarge, and * kafka.m5.24xlarge.
*/ inline const Aws::String& GetInstanceType() const{ return m_instanceType; } /** *The type of Amazon EC2 instances to use for Apache Kafka * brokers. The following instance types are allowed: kafka.m5.large, * kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.12xlarge, and * kafka.m5.24xlarge.
*/ inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } /** *The type of Amazon EC2 instances to use for Apache Kafka * brokers. The following instance types are allowed: kafka.m5.large, * kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.12xlarge, and * kafka.m5.24xlarge.
*/ inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } /** *The type of Amazon EC2 instances to use for Apache Kafka * brokers. The following instance types are allowed: kafka.m5.large, * kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.12xlarge, and * kafka.m5.24xlarge.
*/ inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } /** *The type of Amazon EC2 instances to use for Apache Kafka * brokers. The following instance types are allowed: kafka.m5.large, * kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.12xlarge, and * kafka.m5.24xlarge.
*/ inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); } /** *The type of Amazon EC2 instances to use for Apache Kafka * brokers. The following instance types are allowed: kafka.m5.large, * kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.12xlarge, and * kafka.m5.24xlarge.
*/ inline BrokerNodeGroupInfo& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;} /** *The type of Amazon EC2 instances to use for Apache Kafka * brokers. The following instance types are allowed: kafka.m5.large, * kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.12xlarge, and * kafka.m5.24xlarge.
*/ inline BrokerNodeGroupInfo& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;} /** *The type of Amazon EC2 instances to use for Apache Kafka * brokers. The following instance types are allowed: kafka.m5.large, * kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.12xlarge, and * kafka.m5.24xlarge.
*/ inline BrokerNodeGroupInfo& WithInstanceType(const char* value) { SetInstanceType(value); return *this;} /** *The AWS security groups to associate with the elastic network * interfaces in order to specify who can connect to and communicate with the * Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the * default security group associated with the VPC.
*/ inline const Aws::VectorThe AWS security groups to associate with the elastic network * interfaces in order to specify who can connect to and communicate with the * Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the * default security group associated with the VPC.
*/ inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; } /** *The AWS security groups to associate with the elastic network * interfaces in order to specify who can connect to and communicate with the * Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the * default security group associated with the VPC.
*/ inline void SetSecurityGroups(const Aws::VectorThe AWS security groups to associate with the elastic network * interfaces in order to specify who can connect to and communicate with the * Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the * default security group associated with the VPC.
*/ inline void SetSecurityGroups(Aws::VectorThe AWS security groups to associate with the elastic network * interfaces in order to specify who can connect to and communicate with the * Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the * default security group associated with the VPC.
*/ inline BrokerNodeGroupInfo& WithSecurityGroups(const Aws::VectorThe AWS security groups to associate with the elastic network * interfaces in order to specify who can connect to and communicate with the * Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the * default security group associated with the VPC.
*/ inline BrokerNodeGroupInfo& WithSecurityGroups(Aws::VectorThe AWS security groups to associate with the elastic network * interfaces in order to specify who can connect to and communicate with the * Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the * default security group associated with the VPC.
*/ inline BrokerNodeGroupInfo& AddSecurityGroups(const Aws::String& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } /** *The AWS security groups to associate with the elastic network * interfaces in order to specify who can connect to and communicate with the * Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the * default security group associated with the VPC.
*/ inline BrokerNodeGroupInfo& AddSecurityGroups(Aws::String&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(std::move(value)); return *this; } /** *The AWS security groups to associate with the elastic network * interfaces in order to specify who can connect to and communicate with the * Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the * default security group associated with the VPC.
*/ inline BrokerNodeGroupInfo& AddSecurityGroups(const char* value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } /** *Contains information about storage volumes attached to MSK * broker nodes.
*/ inline const StorageInfo& GetStorageInfo() const{ return m_storageInfo; } /** *Contains information about storage volumes attached to MSK * broker nodes.
*/ inline bool StorageInfoHasBeenSet() const { return m_storageInfoHasBeenSet; } /** *Contains information about storage volumes attached to MSK * broker nodes.
*/ inline void SetStorageInfo(const StorageInfo& value) { m_storageInfoHasBeenSet = true; m_storageInfo = value; } /** *Contains information about storage volumes attached to MSK * broker nodes.
*/ inline void SetStorageInfo(StorageInfo&& value) { m_storageInfoHasBeenSet = true; m_storageInfo = std::move(value); } /** *Contains information about storage volumes attached to MSK * broker nodes.
*/ inline BrokerNodeGroupInfo& WithStorageInfo(const StorageInfo& value) { SetStorageInfo(value); return *this;} /** *Contains information about storage volumes attached to MSK * broker nodes.
*/ inline BrokerNodeGroupInfo& WithStorageInfo(StorageInfo&& value) { SetStorageInfo(std::move(value)); return *this;} /** *Information about the broker access configuration.
*/ inline const ConnectivityInfo& GetConnectivityInfo() const{ return m_connectivityInfo; } /** *Information about the broker access configuration.
*/ inline bool ConnectivityInfoHasBeenSet() const { return m_connectivityInfoHasBeenSet; } /** *Information about the broker access configuration.
*/ inline void SetConnectivityInfo(const ConnectivityInfo& value) { m_connectivityInfoHasBeenSet = true; m_connectivityInfo = value; } /** *Information about the broker access configuration.
*/ inline void SetConnectivityInfo(ConnectivityInfo&& value) { m_connectivityInfoHasBeenSet = true; m_connectivityInfo = std::move(value); } /** *Information about the broker access configuration.
*/ inline BrokerNodeGroupInfo& WithConnectivityInfo(const ConnectivityInfo& value) { SetConnectivityInfo(value); return *this;} /** *Information about the broker access configuration.
*/ inline BrokerNodeGroupInfo& WithConnectivityInfo(ConnectivityInfo&& value) { SetConnectivityInfo(std::move(value)); return *this;} /** *The list of zoneIds for the cluster in the virtual private cloud * (VPC).
*/ inline const Aws::VectorThe list of zoneIds for the cluster in the virtual private cloud * (VPC).
*/ inline bool ZoneIdsHasBeenSet() const { return m_zoneIdsHasBeenSet; } /** *The list of zoneIds for the cluster in the virtual private cloud * (VPC).
*/ inline void SetZoneIds(const Aws::VectorThe list of zoneIds for the cluster in the virtual private cloud * (VPC).
*/ inline void SetZoneIds(Aws::VectorThe list of zoneIds for the cluster in the virtual private cloud * (VPC).
*/ inline BrokerNodeGroupInfo& WithZoneIds(const Aws::VectorThe list of zoneIds for the cluster in the virtual private cloud * (VPC).
*/ inline BrokerNodeGroupInfo& WithZoneIds(Aws::VectorThe list of zoneIds for the cluster in the virtual private cloud * (VPC).
*/ inline BrokerNodeGroupInfo& AddZoneIds(const Aws::String& value) { m_zoneIdsHasBeenSet = true; m_zoneIds.push_back(value); return *this; } /** *The list of zoneIds for the cluster in the virtual private cloud * (VPC).
*/ inline BrokerNodeGroupInfo& AddZoneIds(Aws::String&& value) { m_zoneIdsHasBeenSet = true; m_zoneIds.push_back(std::move(value)); return *this; } /** *The list of zoneIds for the cluster in the virtual private cloud * (VPC).
*/ inline BrokerNodeGroupInfo& AddZoneIds(const char* value) { m_zoneIdsHasBeenSet = true; m_zoneIds.push_back(value); return *this; } private: BrokerAZDistribution m_brokerAZDistribution; bool m_brokerAZDistributionHasBeenSet = false; Aws::Vector