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

com.pulumi.aws.msk.inputs.ClusterBrokerNodeGroupInfoArgs Maven / Gradle / Ivy

Go to download

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

The 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.inputs;

import com.pulumi.aws.msk.inputs.ClusterBrokerNodeGroupInfoConnectivityInfoArgs;
import com.pulumi.aws.msk.inputs.ClusterBrokerNodeGroupInfoStorageInfoArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
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;


public final class ClusterBrokerNodeGroupInfoArgs extends com.pulumi.resources.ResourceArgs {

    public static final ClusterBrokerNodeGroupInfoArgs Empty = new ClusterBrokerNodeGroupInfoArgs();

    /**
     * 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`.
     * 
     */
    @Import(name="azDistribution")
    private @Nullable Output azDistribution;

    /**
     * @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);
    }

    /**
     * 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)).
     * 
     */
    @Import(name="clientSubnets", required=true)
    private Output> clientSubnets;

    /**
     * @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 Output> clientSubnets() {
        return this.clientSubnets;
    }

    /**
     * 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)).
     * 
     */
    @Import(name="connectivityInfo")
    private @Nullable Output connectivityInfo;

    /**
     * @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);
    }

    /**
     * Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. ([Pricing info](https://aws.amazon.com/msk/pricing/))
     * 
     */
    @Import(name="instanceType", required=true)
    private Output instanceType;

    /**
     * @return Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. ([Pricing info](https://aws.amazon.com/msk/pricing/))
     * 
     */
    public Output instanceType() {
        return this.instanceType;
    }

    /**
     * A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
     * 
     */
    @Import(name="securityGroups", required=true)
    private Output> securityGroups;

    /**
     * @return A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
     * 
     */
    public Output> securityGroups() {
        return this.securityGroups;
    }

    /**
     * A block that contains information about storage volumes attached to MSK broker nodes. See below.
     * 
     */
    @Import(name="storageInfo")
    private @Nullable Output storageInfo;

    /**
     * @return A block that contains information about storage volumes attached to MSK broker nodes. See below.
     * 
     */
    public Optional> storageInfo() {
        return Optional.ofNullable(this.storageInfo);
    }

    private ClusterBrokerNodeGroupInfoArgs() {}

    private ClusterBrokerNodeGroupInfoArgs(ClusterBrokerNodeGroupInfoArgs $) {
        this.azDistribution = $.azDistribution;
        this.clientSubnets = $.clientSubnets;
        this.connectivityInfo = $.connectivityInfo;
        this.instanceType = $.instanceType;
        this.securityGroups = $.securityGroups;
        this.storageInfo = $.storageInfo;
    }

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

    public static final class Builder {
        private ClusterBrokerNodeGroupInfoArgs $;

        public Builder() {
            $ = new ClusterBrokerNodeGroupInfoArgs();
        }

        public Builder(ClusterBrokerNodeGroupInfoArgs defaults) {
            $ = new ClusterBrokerNodeGroupInfoArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param azDistribution 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`.
         * 
         * @return builder
         * 
         */
        public Builder azDistribution(@Nullable Output azDistribution) {
            $.azDistribution = azDistribution;
            return this;
        }

        /**
         * @param azDistribution 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`.
         * 
         * @return builder
         * 
         */
        public Builder azDistribution(String azDistribution) {
            return azDistribution(Output.of(azDistribution));
        }

        /**
         * @param clientSubnets 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)).
         * 
         * @return builder
         * 
         */
        public Builder clientSubnets(Output> clientSubnets) {
            $.clientSubnets = clientSubnets;
            return this;
        }

        /**
         * @param clientSubnets 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)).
         * 
         * @return builder
         * 
         */
        public Builder clientSubnets(List clientSubnets) {
            return clientSubnets(Output.of(clientSubnets));
        }

        /**
         * @param clientSubnets 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)).
         * 
         * @return builder
         * 
         */
        public Builder clientSubnets(String... clientSubnets) {
            return clientSubnets(List.of(clientSubnets));
        }

        /**
         * @param connectivityInfo 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)).
         * 
         * @return builder
         * 
         */
        public Builder connectivityInfo(@Nullable Output connectivityInfo) {
            $.connectivityInfo = connectivityInfo;
            return this;
        }

        /**
         * @param connectivityInfo 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)).
         * 
         * @return builder
         * 
         */
        public Builder connectivityInfo(ClusterBrokerNodeGroupInfoConnectivityInfoArgs connectivityInfo) {
            return connectivityInfo(Output.of(connectivityInfo));
        }

        /**
         * @param instanceType Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. ([Pricing info](https://aws.amazon.com/msk/pricing/))
         * 
         * @return builder
         * 
         */
        public Builder instanceType(Output instanceType) {
            $.instanceType = instanceType;
            return this;
        }

        /**
         * @param instanceType Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. ([Pricing info](https://aws.amazon.com/msk/pricing/))
         * 
         * @return builder
         * 
         */
        public Builder instanceType(String instanceType) {
            return instanceType(Output.of(instanceType));
        }

        /**
         * @param securityGroups A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
         * 
         * @return builder
         * 
         */
        public Builder securityGroups(Output> securityGroups) {
            $.securityGroups = securityGroups;
            return this;
        }

        /**
         * @param securityGroups A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
         * 
         * @return builder
         * 
         */
        public Builder securityGroups(List securityGroups) {
            return securityGroups(Output.of(securityGroups));
        }

        /**
         * @param securityGroups A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster.
         * 
         * @return builder
         * 
         */
        public Builder securityGroups(String... securityGroups) {
            return securityGroups(List.of(securityGroups));
        }

        /**
         * @param storageInfo A block that contains information about storage volumes attached to MSK broker nodes. See below.
         * 
         * @return builder
         * 
         */
        public Builder storageInfo(@Nullable Output storageInfo) {
            $.storageInfo = storageInfo;
            return this;
        }

        /**
         * @param storageInfo A block that contains information about storage volumes attached to MSK broker nodes. See below.
         * 
         * @return builder
         * 
         */
        public Builder storageInfo(ClusterBrokerNodeGroupInfoStorageInfoArgs storageInfo) {
            return storageInfo(Output.of(storageInfo));
        }

        public ClusterBrokerNodeGroupInfoArgs build() {
            if ($.clientSubnets == null) {
                throw new MissingRequiredPropertyException("ClusterBrokerNodeGroupInfoArgs", "clientSubnets");
            }
            if ($.instanceType == null) {
                throw new MissingRequiredPropertyException("ClusterBrokerNodeGroupInfoArgs", "instanceType");
            }
            if ($.securityGroups == null) {
                throw new MissingRequiredPropertyException("ClusterBrokerNodeGroupInfoArgs", "securityGroups");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy