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

com.pulumi.azure.compute.outputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.

There is a newer version: 6.10.0-alpha.1731737215
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.azure.compute.outputs;

import com.pulumi.azure.compute.outputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress;
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 LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration {
    /**
     * @return A list of Backend Address Pools ID's from a Application Gateway which this Virtual Machine Scale Set should be connected to.
     * 
     */
    private @Nullable List applicationGatewayBackendAddressPoolIds;
    /**
     * @return A list of Application Security Group ID's which this Virtual Machine Scale Set should be connected to.
     * 
     */
    private @Nullable List applicationSecurityGroupIds;
    /**
     * @return A list of Backend Address Pools ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.
     * 
     * > **Note:**  When the Virtual Machine Scale Set is configured to have public IPs per instance are created with a load balancer, the SKU of the Virtual Machine instance IPs is determined by the SKU of the Virtual Machine Scale Sets Load Balancer (e.g. `Basic` or `Standard`). Alternatively, you may use the `public_ip_prefix_id` field to generate instance-level IPs in a virtual machine scale set as well. The zonal properties of the prefix will be passed to the Virtual Machine instance IPs, though they will not be shown in the output. To view the public IP addresses assigned to the Virtual Machine Scale Sets Virtual Machine instances use the **az vmss list-instance-public-ips --resource-group `ResourceGroupName` --name `VirtualMachineScaleSetName`** CLI command.
     * 
     * > **Note:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     * 
     */
    private @Nullable List loadBalancerBackendAddressPoolIds;
    /**
     * @return A list of NAT Rule ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.
     * 
     * > **Note:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     * 
     */
    private @Nullable List loadBalancerInboundNatRulesIds;
    /**
     * @return The Name which should be used for this IP Configuration.
     * 
     */
    private String name;
    /**
     * @return Is this the Primary IP Configuration for this Network Interface? Defaults to `false`.
     * 
     * > **Note:** One `ip_configuration` block must be marked as Primary for each Network Interface.
     * 
     */
    private @Nullable Boolean primary;
    /**
     * @return A `public_ip_address` block as defined below.
     * 
     */
    private @Nullable List publicIpAddresses;
    /**
     * @return The ID of the Subnet which this IP Configuration should be connected to.
     * 
     * > `subnet_id` is required if `version` is set to `IPv4`.
     * 
     */
    private @Nullable String subnetId;
    /**
     * @return The Internet Protocol Version which should be used for this IP Configuration. Possible values are `IPv4` and `IPv6`. Defaults to `IPv4`.
     * 
     */
    private @Nullable String version;

    private LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration() {}
    /**
     * @return A list of Backend Address Pools ID's from a Application Gateway which this Virtual Machine Scale Set should be connected to.
     * 
     */
    public List applicationGatewayBackendAddressPoolIds() {
        return this.applicationGatewayBackendAddressPoolIds == null ? List.of() : this.applicationGatewayBackendAddressPoolIds;
    }
    /**
     * @return A list of Application Security Group ID's which this Virtual Machine Scale Set should be connected to.
     * 
     */
    public List applicationSecurityGroupIds() {
        return this.applicationSecurityGroupIds == null ? List.of() : this.applicationSecurityGroupIds;
    }
    /**
     * @return A list of Backend Address Pools ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.
     * 
     * > **Note:**  When the Virtual Machine Scale Set is configured to have public IPs per instance are created with a load balancer, the SKU of the Virtual Machine instance IPs is determined by the SKU of the Virtual Machine Scale Sets Load Balancer (e.g. `Basic` or `Standard`). Alternatively, you may use the `public_ip_prefix_id` field to generate instance-level IPs in a virtual machine scale set as well. The zonal properties of the prefix will be passed to the Virtual Machine instance IPs, though they will not be shown in the output. To view the public IP addresses assigned to the Virtual Machine Scale Sets Virtual Machine instances use the **az vmss list-instance-public-ips --resource-group `ResourceGroupName` --name `VirtualMachineScaleSetName`** CLI command.
     * 
     * > **Note:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     * 
     */
    public List loadBalancerBackendAddressPoolIds() {
        return this.loadBalancerBackendAddressPoolIds == null ? List.of() : this.loadBalancerBackendAddressPoolIds;
    }
    /**
     * @return A list of NAT Rule ID's from a Load Balancer which this Virtual Machine Scale Set should be connected to.
     * 
     * > **Note:** When using this field you'll also need to configure a Rule for the Load Balancer, and use a `depends_on` between this resource and the Load Balancer Rule.
     * 
     */
    public List loadBalancerInboundNatRulesIds() {
        return this.loadBalancerInboundNatRulesIds == null ? List.of() : this.loadBalancerInboundNatRulesIds;
    }
    /**
     * @return The Name which should be used for this IP Configuration.
     * 
     */
    public String name() {
        return this.name;
    }
    /**
     * @return Is this the Primary IP Configuration for this Network Interface? Defaults to `false`.
     * 
     * > **Note:** One `ip_configuration` block must be marked as Primary for each Network Interface.
     * 
     */
    public Optional primary() {
        return Optional.ofNullable(this.primary);
    }
    /**
     * @return A `public_ip_address` block as defined below.
     * 
     */
    public List publicIpAddresses() {
        return this.publicIpAddresses == null ? List.of() : this.publicIpAddresses;
    }
    /**
     * @return The ID of the Subnet which this IP Configuration should be connected to.
     * 
     * > `subnet_id` is required if `version` is set to `IPv4`.
     * 
     */
    public Optional subnetId() {
        return Optional.ofNullable(this.subnetId);
    }
    /**
     * @return The Internet Protocol Version which should be used for this IP Configuration. Possible values are `IPv4` and `IPv6`. Defaults to `IPv4`.
     * 
     */
    public Optional version() {
        return Optional.ofNullable(this.version);
    }

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

    public static Builder builder(LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable List applicationGatewayBackendAddressPoolIds;
        private @Nullable List applicationSecurityGroupIds;
        private @Nullable List loadBalancerBackendAddressPoolIds;
        private @Nullable List loadBalancerInboundNatRulesIds;
        private String name;
        private @Nullable Boolean primary;
        private @Nullable List publicIpAddresses;
        private @Nullable String subnetId;
        private @Nullable String version;
        public Builder() {}
        public Builder(LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.applicationGatewayBackendAddressPoolIds = defaults.applicationGatewayBackendAddressPoolIds;
    	      this.applicationSecurityGroupIds = defaults.applicationSecurityGroupIds;
    	      this.loadBalancerBackendAddressPoolIds = defaults.loadBalancerBackendAddressPoolIds;
    	      this.loadBalancerInboundNatRulesIds = defaults.loadBalancerInboundNatRulesIds;
    	      this.name = defaults.name;
    	      this.primary = defaults.primary;
    	      this.publicIpAddresses = defaults.publicIpAddresses;
    	      this.subnetId = defaults.subnetId;
    	      this.version = defaults.version;
        }

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

            this.applicationGatewayBackendAddressPoolIds = applicationGatewayBackendAddressPoolIds;
            return this;
        }
        public Builder applicationGatewayBackendAddressPoolIds(String... applicationGatewayBackendAddressPoolIds) {
            return applicationGatewayBackendAddressPoolIds(List.of(applicationGatewayBackendAddressPoolIds));
        }
        @CustomType.Setter
        public Builder applicationSecurityGroupIds(@Nullable List applicationSecurityGroupIds) {

            this.applicationSecurityGroupIds = applicationSecurityGroupIds;
            return this;
        }
        public Builder applicationSecurityGroupIds(String... applicationSecurityGroupIds) {
            return applicationSecurityGroupIds(List.of(applicationSecurityGroupIds));
        }
        @CustomType.Setter
        public Builder loadBalancerBackendAddressPoolIds(@Nullable List loadBalancerBackendAddressPoolIds) {

            this.loadBalancerBackendAddressPoolIds = loadBalancerBackendAddressPoolIds;
            return this;
        }
        public Builder loadBalancerBackendAddressPoolIds(String... loadBalancerBackendAddressPoolIds) {
            return loadBalancerBackendAddressPoolIds(List.of(loadBalancerBackendAddressPoolIds));
        }
        @CustomType.Setter
        public Builder loadBalancerInboundNatRulesIds(@Nullable List loadBalancerInboundNatRulesIds) {

            this.loadBalancerInboundNatRulesIds = loadBalancerInboundNatRulesIds;
            return this;
        }
        public Builder loadBalancerInboundNatRulesIds(String... loadBalancerInboundNatRulesIds) {
            return loadBalancerInboundNatRulesIds(List.of(loadBalancerInboundNatRulesIds));
        }
        @CustomType.Setter
        public Builder name(String name) {
            if (name == null) {
              throw new MissingRequiredPropertyException("LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration", "name");
            }
            this.name = name;
            return this;
        }
        @CustomType.Setter
        public Builder primary(@Nullable Boolean primary) {

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

            this.publicIpAddresses = publicIpAddresses;
            return this;
        }
        public Builder publicIpAddresses(LinuxVirtualMachineScaleSetNetworkInterfaceIpConfigurationPublicIpAddress... publicIpAddresses) {
            return publicIpAddresses(List.of(publicIpAddresses));
        }
        @CustomType.Setter
        public Builder subnetId(@Nullable String subnetId) {

            this.subnetId = subnetId;
            return this;
        }
        @CustomType.Setter
        public Builder version(@Nullable String version) {

            this.version = version;
            return this;
        }
        public LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration build() {
            final var _resultValue = new LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration();
            _resultValue.applicationGatewayBackendAddressPoolIds = applicationGatewayBackendAddressPoolIds;
            _resultValue.applicationSecurityGroupIds = applicationSecurityGroupIds;
            _resultValue.loadBalancerBackendAddressPoolIds = loadBalancerBackendAddressPoolIds;
            _resultValue.loadBalancerInboundNatRulesIds = loadBalancerInboundNatRulesIds;
            _resultValue.name = name;
            _resultValue.primary = primary;
            _resultValue.publicIpAddresses = publicIpAddresses;
            _resultValue.subnetId = subnetId;
            _resultValue.version = version;
            return _resultValue;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy