/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #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 Kafka broker nodes in the * cluster.

See Also:

AWS * API Reference

*/ class AWS_KAFKA_API BrokerNodeGroupInfo { public: BrokerNodeGroupInfo(); BrokerNodeGroupInfo(Aws::Utils::Json::JsonView jsonValue); BrokerNodeGroupInfo& operator=(Aws::Utils::Json::JsonView jsonValue); 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 be in Availability Zone us-east-1e.

*/ 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 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::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 be in Availability Zone us-east-1e.

*/ 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 be in Availability Zone us-east-1e.

*/ 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 be in Availability Zone us-east-1e.

*/ 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 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::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;} private: BrokerAZDistribution m_brokerAZDistribution; bool m_brokerAZDistributionHasBeenSet; Aws::Vector m_clientSubnets; bool m_clientSubnetsHasBeenSet; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet; Aws::Vector m_securityGroups; bool m_securityGroupsHasBeenSet; StorageInfo m_storageInfo; bool m_storageInfoHasBeenSet; }; } // namespace Model } // namespace Kafka } // namespace Aws