/**
* 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 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 be in Availability Zone us-east-1e.
*/ 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 be in Availability Zone us-east-1e.
*/ 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 be in Availability Zone us-east-1e.
*/ 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 be in Availability Zone us-east-1e.
*/ 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 be in Availability Zone us-east-1e.
*/ 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 be in Availability Zone us-east-1e.
*/ 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 be in Availability Zone us-east-1e.
*/ 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 be in Availability Zone us-east-1e.
*/ 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 be in Availability Zone us-east-1e.
*/ 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 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 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 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 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 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 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 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 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;} private: BrokerAZDistribution m_brokerAZDistribution; bool m_brokerAZDistributionHasBeenSet; Aws::Vector