/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Kafka { namespace Model { /** *

Describes the setup to be used for Apache Kafka broker nodes in * the cluster.

See Also:

AWS * API Reference

*/ class BrokerNodeGroupInfo { public: AWS_KAFKA_API BrokerNodeGroupInfo(); AWS_KAFKA_API BrokerNodeGroupInfo(Aws::Utils::Json::JsonView jsonValue); AWS_KAFKA_API BrokerNodeGroupInfo& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_KAFKA_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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::Vector& GetClientSubnets() const{ return m_clientSubnets; } /** *

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 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::Vector& value) { m_clientSubnetsHasBeenSet = true; m_clientSubnets = value; } /** *

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(Aws::Vector&& value) { m_clientSubnetsHasBeenSet = true; m_clientSubnets = std::move(value); } /** *

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& WithClientSubnets(const Aws::Vector& value) { SetClientSubnets(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& WithClientSubnets(Aws::Vector&& value) { SetClientSubnets(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 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::Vector& GetSecurityGroups() const{ return m_securityGroups; } /** *

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 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::Vector& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = value; } /** *

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(Aws::Vector&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = std::move(value); } /** *

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& WithSecurityGroups(const Aws::Vector& value) { SetSecurityGroups(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& WithSecurityGroups(Aws::Vector&& value) { SetSecurityGroups(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 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::Vector& GetZoneIds() const{ return m_zoneIds; } /** *

The 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::Vector& value) { m_zoneIdsHasBeenSet = true; m_zoneIds = value; } /** *

The list of zoneIds for the cluster in the virtual private cloud * (VPC).

*/ inline void SetZoneIds(Aws::Vector&& value) { m_zoneIdsHasBeenSet = true; m_zoneIds = std::move(value); } /** *

The list of zoneIds for the cluster in the virtual private cloud * (VPC).

*/ inline BrokerNodeGroupInfo& WithZoneIds(const Aws::Vector& value) { SetZoneIds(value); return *this;} /** *

The list of zoneIds for the cluster in the virtual private cloud * (VPC).

*/ inline BrokerNodeGroupInfo& WithZoneIds(Aws::Vector&& value) { SetZoneIds(std::move(value)); return *this;} /** *

The 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 m_clientSubnets; bool m_clientSubnetsHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::Vector m_securityGroups; bool m_securityGroupsHasBeenSet = false; StorageInfo m_storageInfo; bool m_storageInfoHasBeenSet = false; ConnectivityInfo m_connectivityInfo; bool m_connectivityInfoHasBeenSet = false; Aws::Vector m_zoneIds; bool m_zoneIdsHasBeenSet = false; }; } // namespace Model } // namespace Kafka } // namespace Aws