com.pulumi.azure.compute.outputs.LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure Show documentation
Show all versions of azure Show documentation
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.
// *** 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;
}
}
}