All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.msk.outputs.ClusterBrokerNodeGroupInfo Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.60.0-alpha.1731982519
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.msk.outputs;

import com.pulumi.aws.msk.outputs.ClusterBrokerNodeGroupInfoConnectivityInfo;
import com.pulumi.aws.msk.outputs.ClusterBrokerNodeGroupInfoStorageInfo;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class ClusterBrokerNodeGroupInfo {
    /**
     * @return The distribution of broker nodes across availability zones ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-model-brokerazdistribution)). Currently the only valid value is `DEFAULT`.
     * 
     */
    private @Nullable String azDistribution;
    /**
     * @return A list of subnets to connect to in client VPC ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-prop-brokernodegroupinfo-clientsubnets)).
     * 
     */
    private List clientSubnets;
    /**
     * @return Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible ([documentation](https://docs.aws.amazon.com/msk/latest/developerguide/public-access.html)).
     * 
     */
    private @Nullable ClusterBrokerNodeGroupInfoConnectivityInfo connectivityInfo;
    /**
     * @return Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. ([Pricing info](https://aws.amazon.com/msk/pricing/))
     * 
     */
    private String instanceType;
    /**
     * @return A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
     * 
     */
    private List securityGroups;
    /**
     * @return A block that contains information about storage volumes attached to MSK broker nodes. See below.
     * 
     */
    private @Nullable ClusterBrokerNodeGroupInfoStorageInfo storageInfo;

    private ClusterBrokerNodeGroupInfo() {}
    /**
     * @return The distribution of broker nodes across availability zones ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-model-brokerazdistribution)). Currently the only valid value is `DEFAULT`.
     * 
     */
    public Optional azDistribution() {
        return Optional.ofNullable(this.azDistribution);
    }
    /**
     * @return A list of subnets to connect to in client VPC ([documentation](https://docs.aws.amazon.com/msk/1.0/apireference/clusters.html#clusters-prop-brokernodegroupinfo-clientsubnets)).
     * 
     */
    public List clientSubnets() {
        return this.clientSubnets;
    }
    /**
     * @return Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible ([documentation](https://docs.aws.amazon.com/msk/latest/developerguide/public-access.html)).
     * 
     */
    public Optional connectivityInfo() {
        return Optional.ofNullable(this.connectivityInfo);
    }
    /**
     * @return Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. ([Pricing info](https://aws.amazon.com/msk/pricing/))
     * 
     */
    public String instanceType() {
        return this.instanceType;
    }
    /**
     * @return A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
     * 
     */
    public List securityGroups() {
        return this.securityGroups;
    }
    /**
     * @return A block that contains information about storage volumes attached to MSK broker nodes. See below.
     * 
     */
    public Optional storageInfo() {
        return Optional.ofNullable(this.storageInfo);
    }

    public static Builder builder() {
        return new Builder();
    }

    public static Builder builder(ClusterBrokerNodeGroupInfo defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable String azDistribution;
        private List clientSubnets;
        private @Nullable ClusterBrokerNodeGroupInfoConnectivityInfo connectivityInfo;
        private String instanceType;
        private List securityGroups;
        private @Nullable ClusterBrokerNodeGroupInfoStorageInfo storageInfo;
        public Builder() {}
        public Builder(ClusterBrokerNodeGroupInfo defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.azDistribution = defaults.azDistribution;
    	      this.clientSubnets = defaults.clientSubnets;
    	      this.connectivityInfo = defaults.connectivityInfo;
    	      this.instanceType = defaults.instanceType;
    	      this.securityGroups = defaults.securityGroups;
    	      this.storageInfo = defaults.storageInfo;
        }

        @CustomType.Setter
        public Builder azDistribution(@Nullable String azDistribution) {

            this.azDistribution = azDistribution;
            return this;
        }
        @CustomType.Setter
        public Builder clientSubnets(List clientSubnets) {
            if (clientSubnets == null) {
              throw new MissingRequiredPropertyException("ClusterBrokerNodeGroupInfo", "clientSubnets");
            }
            this.clientSubnets = clientSubnets;
            return this;
        }
        public Builder clientSubnets(String... clientSubnets) {
            return clientSubnets(List.of(clientSubnets));
        }
        @CustomType.Setter
        public Builder connectivityInfo(@Nullable ClusterBrokerNodeGroupInfoConnectivityInfo connectivityInfo) {

            this.connectivityInfo = connectivityInfo;
            return this;
        }
        @CustomType.Setter
        public Builder instanceType(String instanceType) {
            if (instanceType == null) {
              throw new MissingRequiredPropertyException("ClusterBrokerNodeGroupInfo", "instanceType");
            }
            this.instanceType = instanceType;
            return this;
        }
        @CustomType.Setter
        public Builder securityGroups(List securityGroups) {
            if (securityGroups == null) {
              throw new MissingRequiredPropertyException("ClusterBrokerNodeGroupInfo", "securityGroups");
            }
            this.securityGroups = securityGroups;
            return this;
        }
        public Builder securityGroups(String... securityGroups) {
            return securityGroups(List.of(securityGroups));
        }
        @CustomType.Setter
        public Builder storageInfo(@Nullable ClusterBrokerNodeGroupInfoStorageInfo storageInfo) {

            this.storageInfo = storageInfo;
            return this;
        }
        public ClusterBrokerNodeGroupInfo build() {
            final var _resultValue = new ClusterBrokerNodeGroupInfo();
            _resultValue.azDistribution = azDistribution;
            _resultValue.clientSubnets = clientSubnets;
            _resultValue.connectivityInfo = connectivityInfo;
            _resultValue.instanceType = instanceType;
            _resultValue.securityGroups = securityGroups;
            _resultValue.storageInfo = storageInfo;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy