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

com.pulumi.azure.network.inputs.ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs Maven / Gradle / Ivy

// *** 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.azure.network.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs Empty = new ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs();

    /**
     * The name of the IP configuration.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return The name of the IP configuration.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * Is this the Primary IP Configuration?
     * 
     */
    @Import(name="primary", required=true)
    private Output primary;

    /**
     * @return Is this the Primary IP Configuration?
     * 
     */
    public Output primary() {
        return this.primary;
    }

    /**
     * The Static IP Address which should be used.
     * 
     */
    @Import(name="privateIpAddress")
    private @Nullable Output privateIpAddress;

    /**
     * @return The Static IP Address which should be used.
     * 
     */
    public Optional> privateIpAddress() {
        return Optional.ofNullable(this.privateIpAddress);
    }

    /**
     * The allocation method used for the Private IP Address. Possible values are `Dynamic` and `Static`.
     * 
     */
    @Import(name="privateIpAddressAllocation", required=true)
    private Output privateIpAddressAllocation;

    /**
     * @return The allocation method used for the Private IP Address. Possible values are `Dynamic` and `Static`.
     * 
     */
    public Output privateIpAddressAllocation() {
        return this.privateIpAddressAllocation;
    }

    /**
     * The ID of the subnet the private link configuration should connect to.
     * 
     */
    @Import(name="subnetId", required=true)
    private Output subnetId;

    /**
     * @return The ID of the subnet the private link configuration should connect to.
     * 
     */
    public Output subnetId() {
        return this.subnetId;
    }

    private ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs() {}

    private ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs(ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs $) {
        this.name = $.name;
        this.primary = $.primary;
        this.privateIpAddress = $.privateIpAddress;
        this.privateIpAddressAllocation = $.privateIpAddressAllocation;
        this.subnetId = $.subnetId;
    }

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

    public static final class Builder {
        private ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs $;

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

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

        /**
         * @param name The name of the IP configuration.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the IP configuration.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param primary Is this the Primary IP Configuration?
         * 
         * @return builder
         * 
         */
        public Builder primary(Output primary) {
            $.primary = primary;
            return this;
        }

        /**
         * @param primary Is this the Primary IP Configuration?
         * 
         * @return builder
         * 
         */
        public Builder primary(Boolean primary) {
            return primary(Output.of(primary));
        }

        /**
         * @param privateIpAddress The Static IP Address which should be used.
         * 
         * @return builder
         * 
         */
        public Builder privateIpAddress(@Nullable Output privateIpAddress) {
            $.privateIpAddress = privateIpAddress;
            return this;
        }

        /**
         * @param privateIpAddress The Static IP Address which should be used.
         * 
         * @return builder
         * 
         */
        public Builder privateIpAddress(String privateIpAddress) {
            return privateIpAddress(Output.of(privateIpAddress));
        }

        /**
         * @param privateIpAddressAllocation The allocation method used for the Private IP Address. Possible values are `Dynamic` and `Static`.
         * 
         * @return builder
         * 
         */
        public Builder privateIpAddressAllocation(Output privateIpAddressAllocation) {
            $.privateIpAddressAllocation = privateIpAddressAllocation;
            return this;
        }

        /**
         * @param privateIpAddressAllocation The allocation method used for the Private IP Address. Possible values are `Dynamic` and `Static`.
         * 
         * @return builder
         * 
         */
        public Builder privateIpAddressAllocation(String privateIpAddressAllocation) {
            return privateIpAddressAllocation(Output.of(privateIpAddressAllocation));
        }

        /**
         * @param subnetId The ID of the subnet the private link configuration should connect to.
         * 
         * @return builder
         * 
         */
        public Builder subnetId(Output subnetId) {
            $.subnetId = subnetId;
            return this;
        }

        /**
         * @param subnetId The ID of the subnet the private link configuration should connect to.
         * 
         * @return builder
         * 
         */
        public Builder subnetId(String subnetId) {
            return subnetId(Output.of(subnetId));
        }

        public ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs build() {
            if ($.name == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs", "name");
            }
            if ($.primary == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs", "primary");
            }
            if ($.privateIpAddressAllocation == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs", "privateIpAddressAllocation");
            }
            if ($.subnetId == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayPrivateLinkConfigurationIpConfigurationArgs", "subnetId");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy