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

com.pulumi.azure.compute.outputs.OrchestratedVirtualMachineScaleSetNetworkInterface 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.outputs;

import com.pulumi.azure.compute.outputs.OrchestratedVirtualMachineScaleSetNetworkInterfaceIpConfiguration;
import com.pulumi.core.annotations.CustomType;
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;

@CustomType
public final class OrchestratedVirtualMachineScaleSetNetworkInterface {
    /**
     * @return A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
     * 
     */
    private @Nullable List dnsServers;
    /**
     * @return Does this Network Interface support Accelerated Networking? Possible values are `true` and `false`. Defaults to `false`.
     * 
     */
    private @Nullable Boolean enableAcceleratedNetworking;
    /**
     * @return Does this Network Interface support IP Forwarding? Possible values are `true` and `false`. Defaults to `false`.
     * 
     */
    private @Nullable Boolean enableIpForwarding;
    /**
     * @return One or more `ip_configuration` blocks as defined above.
     * 
     */
    private List ipConfigurations;
    /**
     * @return The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
     * 
     */
    private String name;
    /**
     * @return The ID of a Network Security Group which should be assigned to this Network Interface.
     * 
     */
    private @Nullable String networkSecurityGroupId;
    /**
     * @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`.
     * 
     */
    private @Nullable Boolean primary;

    private OrchestratedVirtualMachineScaleSetNetworkInterface() {}
    /**
     * @return A list of IP Addresses of DNS Servers which should be assigned to the Network Interface.
     * 
     */
    public List dnsServers() {
        return this.dnsServers == null ? List.of() : this.dnsServers;
    }
    /**
     * @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);
    }
    /**
     * @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);
    }
    /**
     * @return One or more `ip_configuration` blocks as defined above.
     * 
     */
    public List ipConfigurations() {
        return this.ipConfigurations;
    }
    /**
     * @return The Name which should be used for this Network Interface. Changing this forces a new resource to be created.
     * 
     */
    public String name() {
        return this.name;
    }
    /**
     * @return The ID of a Network Security Group which should be assigned to this Network Interface.
     * 
     */
    public Optional networkSecurityGroupId() {
        return Optional.ofNullable(this.networkSecurityGroupId);
    }
    /**
     * @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);
    }

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

    public static Builder builder(OrchestratedVirtualMachineScaleSetNetworkInterface defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable List dnsServers;
        private @Nullable Boolean enableAcceleratedNetworking;
        private @Nullable Boolean enableIpForwarding;
        private List ipConfigurations;
        private String name;
        private @Nullable String networkSecurityGroupId;
        private @Nullable Boolean primary;
        public Builder() {}
        public Builder(OrchestratedVirtualMachineScaleSetNetworkInterface defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.dnsServers = defaults.dnsServers;
    	      this.enableAcceleratedNetworking = defaults.enableAcceleratedNetworking;
    	      this.enableIpForwarding = defaults.enableIpForwarding;
    	      this.ipConfigurations = defaults.ipConfigurations;
    	      this.name = defaults.name;
    	      this.networkSecurityGroupId = defaults.networkSecurityGroupId;
    	      this.primary = defaults.primary;
        }

        @CustomType.Setter
        public Builder dnsServers(@Nullable List dnsServers) {

            this.dnsServers = dnsServers;
            return this;
        }
        public Builder dnsServers(String... dnsServers) {
            return dnsServers(List.of(dnsServers));
        }
        @CustomType.Setter
        public Builder enableAcceleratedNetworking(@Nullable Boolean enableAcceleratedNetworking) {

            this.enableAcceleratedNetworking = enableAcceleratedNetworking;
            return this;
        }
        @CustomType.Setter
        public Builder enableIpForwarding(@Nullable Boolean enableIpForwarding) {

            this.enableIpForwarding = enableIpForwarding;
            return this;
        }
        @CustomType.Setter
        public Builder ipConfigurations(List ipConfigurations) {
            if (ipConfigurations == null) {
              throw new MissingRequiredPropertyException("OrchestratedVirtualMachineScaleSetNetworkInterface", "ipConfigurations");
            }
            this.ipConfigurations = ipConfigurations;
            return this;
        }
        public Builder ipConfigurations(OrchestratedVirtualMachineScaleSetNetworkInterfaceIpConfiguration... ipConfigurations) {
            return ipConfigurations(List.of(ipConfigurations));
        }
        @CustomType.Setter
        public Builder name(String name) {
            if (name == null) {
              throw new MissingRequiredPropertyException("OrchestratedVirtualMachineScaleSetNetworkInterface", "name");
            }
            this.name = name;
            return this;
        }
        @CustomType.Setter
        public Builder networkSecurityGroupId(@Nullable String networkSecurityGroupId) {

            this.networkSecurityGroupId = networkSecurityGroupId;
            return this;
        }
        @CustomType.Setter
        public Builder primary(@Nullable Boolean primary) {

            this.primary = primary;
            return this;
        }
        public OrchestratedVirtualMachineScaleSetNetworkInterface build() {
            final var _resultValue = new OrchestratedVirtualMachineScaleSetNetworkInterface();
            _resultValue.dnsServers = dnsServers;
            _resultValue.enableAcceleratedNetworking = enableAcceleratedNetworking;
            _resultValue.enableIpForwarding = enableIpForwarding;
            _resultValue.ipConfigurations = ipConfigurations;
            _resultValue.name = name;
            _resultValue.networkSecurityGroupId = networkSecurityGroupId;
            _resultValue.primary = primary;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy