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

com.pulumi.azure.compute.inputs.OrchestratedVirtualMachineScaleSetNetworkInterfaceArgs 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.compute.inputs;

import com.pulumi.azure.compute.inputs.OrchestratedVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs;
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.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final OrchestratedVirtualMachineScaleSetNetworkInterfaceArgs Empty = new OrchestratedVirtualMachineScaleSetNetworkInterfaceArgs();

    /**
     * A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
     * 
     */
    @Import(name="dnsServers")
    private @Nullable Output> dnsServers;

    /**
     * @return A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
     * 
     */
    public Optional>> dnsServers() {
        return Optional.ofNullable(this.dnsServers);
    }

    /**
     * Does this Network Interface support Accelerated Networking? Possible values are `true` and `false`. Defaults to `false`.
     * 
     */
    @Import(name="enableAcceleratedNetworking")
    private @Nullable Output enableAcceleratedNetworking;

    /**
     * @return Does this Network Interface support Accelerated Networking? Possible values are `true` and `false`. Defaults to `false`.
     * 
     */
    public Optional> enableAcceleratedNetworking() {
        return Optional.ofNullable(this.enableAcceleratedNetworking);
    }

    /**
     * Does this Network Interface support IP Forwarding? Possible values are `true` and `false`. Defaults to `false`.
     * 
     */
    @Import(name="enableIpForwarding")
    private @Nullable Output enableIpForwarding;

    /**
     * @return Does this Network Interface support IP Forwarding? Possible values are `true` and `false`. Defaults to `false`.
     * 
     */
    public Optional> enableIpForwarding() {
        return Optional.ofNullable(this.enableIpForwarding);
    }

    /**
     * One or more `ip_configuration` blocks as defined above.
     * 
     */
    @Import(name="ipConfigurations", required=true)
    private Output> ipConfigurations;

    /**
     * @return One or more `ip_configuration` blocks as defined above.
     * 
     */
    public Output> ipConfigurations() {
        return this.ipConfigurations;
    }

    /**
     * The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * The ID of a Network Security Group which should be assigned to this Network Interface.
     * 
     */
    @Import(name="networkSecurityGroupId")
    private @Nullable Output networkSecurityGroupId;

    /**
     * @return The ID of a Network Security Group which should be assigned to this Network Interface.
     * 
     */
    public Optional> networkSecurityGroupId() {
        return Optional.ofNullable(this.networkSecurityGroupId);
    }

    /**
     * Is this the Primary IP Configuration? Possible values are `true` and `false`. Defaults to `false`.
     * 
     * > **Note:** If multiple `network_interface` blocks are specified, one must be set to `primary`.
     * 
     */
    @Import(name="primary")
    private @Nullable Output primary;

    /**
     * @return Is this the Primary IP Configuration? Possible values are `true` and `false`. Defaults to `false`.
     * 
     * > **Note:** If multiple `network_interface` blocks are specified, one must be set to `primary`.
     * 
     */
    public Optional> primary() {
        return Optional.ofNullable(this.primary);
    }

    private OrchestratedVirtualMachineScaleSetNetworkInterfaceArgs() {}

    private OrchestratedVirtualMachineScaleSetNetworkInterfaceArgs(OrchestratedVirtualMachineScaleSetNetworkInterfaceArgs $) {
        this.dnsServers = $.dnsServers;
        this.enableAcceleratedNetworking = $.enableAcceleratedNetworking;
        this.enableIpForwarding = $.enableIpForwarding;
        this.ipConfigurations = $.ipConfigurations;
        this.name = $.name;
        this.networkSecurityGroupId = $.networkSecurityGroupId;
        this.primary = $.primary;
    }

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

    public static final class Builder {
        private OrchestratedVirtualMachineScaleSetNetworkInterfaceArgs $;

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

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

        /**
         * @param dnsServers A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
         * 
         * @return builder
         * 
         */
        public Builder dnsServers(@Nullable Output> dnsServers) {
            $.dnsServers = dnsServers;
            return this;
        }

        /**
         * @param dnsServers A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
         * 
         * @return builder
         * 
         */
        public Builder dnsServers(List dnsServers) {
            return dnsServers(Output.of(dnsServers));
        }

        /**
         * @param dnsServers A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
         * 
         * @return builder
         * 
         */
        public Builder dnsServers(String... dnsServers) {
            return dnsServers(List.of(dnsServers));
        }

        /**
         * @param enableAcceleratedNetworking Does this Network Interface support Accelerated Networking? Possible values are `true` and `false`. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder enableAcceleratedNetworking(@Nullable Output enableAcceleratedNetworking) {
            $.enableAcceleratedNetworking = enableAcceleratedNetworking;
            return this;
        }

        /**
         * @param enableAcceleratedNetworking Does this Network Interface support Accelerated Networking? Possible values are `true` and `false`. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder enableAcceleratedNetworking(Boolean enableAcceleratedNetworking) {
            return enableAcceleratedNetworking(Output.of(enableAcceleratedNetworking));
        }

        /**
         * @param enableIpForwarding Does this Network Interface support IP Forwarding? Possible values are `true` and `false`. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder enableIpForwarding(@Nullable Output enableIpForwarding) {
            $.enableIpForwarding = enableIpForwarding;
            return this;
        }

        /**
         * @param enableIpForwarding Does this Network Interface support IP Forwarding? Possible values are `true` and `false`. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder enableIpForwarding(Boolean enableIpForwarding) {
            return enableIpForwarding(Output.of(enableIpForwarding));
        }

        /**
         * @param ipConfigurations One or more `ip_configuration` blocks as defined above.
         * 
         * @return builder
         * 
         */
        public Builder ipConfigurations(Output> ipConfigurations) {
            $.ipConfigurations = ipConfigurations;
            return this;
        }

        /**
         * @param ipConfigurations One or more `ip_configuration` blocks as defined above.
         * 
         * @return builder
         * 
         */
        public Builder ipConfigurations(List ipConfigurations) {
            return ipConfigurations(Output.of(ipConfigurations));
        }

        /**
         * @param ipConfigurations One or more `ip_configuration` blocks as defined above.
         * 
         * @return builder
         * 
         */
        public Builder ipConfigurations(OrchestratedVirtualMachineScaleSetNetworkInterfaceIpConfigurationArgs... ipConfigurations) {
            return ipConfigurations(List.of(ipConfigurations));
        }

        /**
         * @param name The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param networkSecurityGroupId The ID of a Network Security Group which should be assigned to this Network Interface.
         * 
         * @return builder
         * 
         */
        public Builder networkSecurityGroupId(@Nullable Output networkSecurityGroupId) {
            $.networkSecurityGroupId = networkSecurityGroupId;
            return this;
        }

        /**
         * @param networkSecurityGroupId The ID of a Network Security Group which should be assigned to this Network Interface.
         * 
         * @return builder
         * 
         */
        public Builder networkSecurityGroupId(String networkSecurityGroupId) {
            return networkSecurityGroupId(Output.of(networkSecurityGroupId));
        }

        /**
         * @param primary Is this the Primary IP Configuration? Possible values are `true` and `false`. Defaults to `false`.
         * 
         * > **Note:** If multiple `network_interface` blocks are specified, one must be set to `primary`.
         * 
         * @return builder
         * 
         */
        public Builder primary(@Nullable Output primary) {
            $.primary = primary;
            return this;
        }

        /**
         * @param primary Is this the Primary IP Configuration? Possible values are `true` and `false`. Defaults to `false`.
         * 
         * > **Note:** If multiple `network_interface` blocks are specified, one must be set to `primary`.
         * 
         * @return builder
         * 
         */
        public Builder primary(Boolean primary) {
            return primary(Output.of(primary));
        }

        public OrchestratedVirtualMachineScaleSetNetworkInterfaceArgs build() {
            if ($.ipConfigurations == null) {
                throw new MissingRequiredPropertyException("OrchestratedVirtualMachineScaleSetNetworkInterfaceArgs", "ipConfigurations");
            }
            if ($.name == null) {
                throw new MissingRequiredPropertyException("OrchestratedVirtualMachineScaleSetNetworkInterfaceArgs", "name");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy