All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azure.network.PublicIpArgs 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.
// *** 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;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class PublicIpArgs extends com.pulumi.resources.ResourceArgs {
public static final PublicIpArgs Empty = new PublicIpArgs();
/**
* Defines the allocation method for this IP address. Possible values are `Static` or `Dynamic`.
*
* > **Note** `Dynamic` Public IP Addresses aren't allocated until they're assigned to a resource (such as a Virtual Machine or a Load Balancer) by design within Azure. See `ip_address` argument.
*
*/
@Import(name="allocationMethod", required=true)
private Output allocationMethod;
/**
* @return Defines the allocation method for this IP address. Possible values are `Static` or `Dynamic`.
*
* > **Note** `Dynamic` Public IP Addresses aren't allocated until they're assigned to a resource (such as a Virtual Machine or a Load Balancer) by design within Azure. See `ip_address` argument.
*
*/
public Output allocationMethod() {
return this.allocationMethod;
}
/**
* The DDoS protection mode of the public IP. Possible values are `Disabled`, `Enabled`, and `VirtualNetworkInherited`. Defaults to `VirtualNetworkInherited`.
*
*/
@Import(name="ddosProtectionMode")
private @Nullable Output ddosProtectionMode;
/**
* @return The DDoS protection mode of the public IP. Possible values are `Disabled`, `Enabled`, and `VirtualNetworkInherited`. Defaults to `VirtualNetworkInherited`.
*
*/
public Optional> ddosProtectionMode() {
return Optional.ofNullable(this.ddosProtectionMode);
}
/**
* The ID of DDoS protection plan associated with the public IP.
*
* > **Note:** `ddos_protection_plan_id` can only be set when `ddos_protection_mode` is `Enabled`.
*
*/
@Import(name="ddosProtectionPlanId")
private @Nullable Output ddosProtectionPlanId;
/**
* @return The ID of DDoS protection plan associated with the public IP.
*
* > **Note:** `ddos_protection_plan_id` can only be set when `ddos_protection_mode` is `Enabled`.
*
*/
public Optional> ddosProtectionPlanId() {
return Optional.ofNullable(this.ddosProtectionPlanId);
}
/**
* Label for the Domain Name. Will be used to make up the FQDN. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system.
*
*/
@Import(name="domainNameLabel")
private @Nullable Output domainNameLabel;
/**
* @return Label for the Domain Name. Will be used to make up the FQDN. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system.
*
*/
public Optional> domainNameLabel() {
return Optional.ofNullable(this.domainNameLabel);
}
/**
* Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created.
*
*/
@Import(name="edgeZone")
private @Nullable Output edgeZone;
/**
* @return Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created.
*
*/
public Optional> edgeZone() {
return Optional.ofNullable(this.edgeZone);
}
/**
* Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes.
*
*/
@Import(name="idleTimeoutInMinutes")
private @Nullable Output idleTimeoutInMinutes;
/**
* @return Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes.
*
*/
public Optional> idleTimeoutInMinutes() {
return Optional.ofNullable(this.idleTimeoutInMinutes);
}
/**
* A mapping of IP tags to assign to the public IP. Changing this forces a new resource to be created.
*
* > **Note** IP Tag `RoutingPreference` requires multiple `zones` and `Standard` SKU to be set.
*
*/
@Import(name="ipTags")
private @Nullable Output> ipTags;
/**
* @return A mapping of IP tags to assign to the public IP. Changing this forces a new resource to be created.
*
* > **Note** IP Tag `RoutingPreference` requires multiple `zones` and `Standard` SKU to be set.
*
*/
public Optional>> ipTags() {
return Optional.ofNullable(this.ipTags);
}
/**
* The IP Version to use, IPv6 or IPv4. Changing this forces a new resource to be created. Defaults to `IPv4`.
*
* > **Note** Only `static` IP address allocation is supported for IPv6.
*
*/
@Import(name="ipVersion")
private @Nullable Output ipVersion;
/**
* @return The IP Version to use, IPv6 or IPv4. Changing this forces a new resource to be created. Defaults to `IPv4`.
*
* > **Note** Only `static` IP address allocation is supported for IPv6.
*
*/
public Optional> ipVersion() {
return Optional.ofNullable(this.ipVersion);
}
/**
* Specifies the supported Azure location where the Public IP should exist. Changing this forces a new resource to be created.
*
*/
@Import(name="location")
private @Nullable Output location;
/**
* @return Specifies the supported Azure location where the Public IP should exist. Changing this forces a new resource to be created.
*
*/
public Optional> location() {
return Optional.ofNullable(this.location);
}
/**
* Specifies the name of the Public IP. Changing this forces a new Public IP to be created.
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return Specifies the name of the Public IP. Changing this forces a new Public IP to be created.
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* If specified then public IP address allocated will be provided from the public IP prefix resource. Changing this forces a new resource to be created.
*
*/
@Import(name="publicIpPrefixId")
private @Nullable Output publicIpPrefixId;
/**
* @return If specified then public IP address allocated will be provided from the public IP prefix resource. Changing this forces a new resource to be created.
*
*/
public Optional> publicIpPrefixId() {
return Optional.ofNullable(this.publicIpPrefixId);
}
/**
* The name of the Resource Group where this Public IP should exist. Changing this forces a new Public IP to be created.
*
*/
@Import(name="resourceGroupName", required=true)
private Output resourceGroupName;
/**
* @return The name of the Resource Group where this Public IP should exist. Changing this forces a new Public IP to be created.
*
*/
public Output resourceGroupName() {
return this.resourceGroupName;
}
/**
* A fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN.
*
*/
@Import(name="reverseFqdn")
private @Nullable Output reverseFqdn;
/**
* @return A fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN.
*
*/
public Optional> reverseFqdn() {
return Optional.ofNullable(this.reverseFqdn);
}
/**
* The SKU of the Public IP. Accepted values are `Basic` and `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created.
*
* > **Note** Public IP Standard SKUs require `allocation_method` to be set to `Static`.
*
*/
@Import(name="sku")
private @Nullable Output sku;
/**
* @return The SKU of the Public IP. Accepted values are `Basic` and `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created.
*
* > **Note** Public IP Standard SKUs require `allocation_method` to be set to `Static`.
*
*/
public Optional> sku() {
return Optional.ofNullable(this.sku);
}
/**
* The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`. Changing this forces a new resource to be created.
*
* > **Note** When `sku_tier` is set to `Global`, `sku` must be set to `Standard`.
*
*/
@Import(name="skuTier")
private @Nullable Output skuTier;
/**
* @return The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`. Changing this forces a new resource to be created.
*
* > **Note** When `sku_tier` is set to `Global`, `sku` must be set to `Standard`.
*
*/
public Optional> skuTier() {
return Optional.ofNullable(this.skuTier);
}
/**
* A mapping of tags to assign to the resource.
*
*/
@Import(name="tags")
private @Nullable Output> tags;
/**
* @return A mapping of tags to assign to the resource.
*
*/
public Optional>> tags() {
return Optional.ofNullable(this.tags);
}
/**
* A collection containing the availability zone to allocate the Public IP in. Changing this forces a new resource to be created.
*
* > **Note:** Availability Zones are only supported with a [Standard SKU](https://docs.microsoft.com/azure/virtual-network/virtual-network-ip-addresses-overview-arm#standard) and [in select regions](https://docs.microsoft.com/azure/availability-zones/az-overview) at this time. Standard SKU Public IP Addresses that do not specify a zone are **not** zone-redundant by default.
*
*/
@Import(name="zones")
private @Nullable Output> zones;
/**
* @return A collection containing the availability zone to allocate the Public IP in. Changing this forces a new resource to be created.
*
* > **Note:** Availability Zones are only supported with a [Standard SKU](https://docs.microsoft.com/azure/virtual-network/virtual-network-ip-addresses-overview-arm#standard) and [in select regions](https://docs.microsoft.com/azure/availability-zones/az-overview) at this time. Standard SKU Public IP Addresses that do not specify a zone are **not** zone-redundant by default.
*
*/
public Optional>> zones() {
return Optional.ofNullable(this.zones);
}
private PublicIpArgs() {}
private PublicIpArgs(PublicIpArgs $) {
this.allocationMethod = $.allocationMethod;
this.ddosProtectionMode = $.ddosProtectionMode;
this.ddosProtectionPlanId = $.ddosProtectionPlanId;
this.domainNameLabel = $.domainNameLabel;
this.edgeZone = $.edgeZone;
this.idleTimeoutInMinutes = $.idleTimeoutInMinutes;
this.ipTags = $.ipTags;
this.ipVersion = $.ipVersion;
this.location = $.location;
this.name = $.name;
this.publicIpPrefixId = $.publicIpPrefixId;
this.resourceGroupName = $.resourceGroupName;
this.reverseFqdn = $.reverseFqdn;
this.sku = $.sku;
this.skuTier = $.skuTier;
this.tags = $.tags;
this.zones = $.zones;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(PublicIpArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private PublicIpArgs $;
public Builder() {
$ = new PublicIpArgs();
}
public Builder(PublicIpArgs defaults) {
$ = new PublicIpArgs(Objects.requireNonNull(defaults));
}
/**
* @param allocationMethod Defines the allocation method for this IP address. Possible values are `Static` or `Dynamic`.
*
* > **Note** `Dynamic` Public IP Addresses aren't allocated until they're assigned to a resource (such as a Virtual Machine or a Load Balancer) by design within Azure. See `ip_address` argument.
*
* @return builder
*
*/
public Builder allocationMethod(Output allocationMethod) {
$.allocationMethod = allocationMethod;
return this;
}
/**
* @param allocationMethod Defines the allocation method for this IP address. Possible values are `Static` or `Dynamic`.
*
* > **Note** `Dynamic` Public IP Addresses aren't allocated until they're assigned to a resource (such as a Virtual Machine or a Load Balancer) by design within Azure. See `ip_address` argument.
*
* @return builder
*
*/
public Builder allocationMethod(String allocationMethod) {
return allocationMethod(Output.of(allocationMethod));
}
/**
* @param ddosProtectionMode The DDoS protection mode of the public IP. Possible values are `Disabled`, `Enabled`, and `VirtualNetworkInherited`. Defaults to `VirtualNetworkInherited`.
*
* @return builder
*
*/
public Builder ddosProtectionMode(@Nullable Output ddosProtectionMode) {
$.ddosProtectionMode = ddosProtectionMode;
return this;
}
/**
* @param ddosProtectionMode The DDoS protection mode of the public IP. Possible values are `Disabled`, `Enabled`, and `VirtualNetworkInherited`. Defaults to `VirtualNetworkInherited`.
*
* @return builder
*
*/
public Builder ddosProtectionMode(String ddosProtectionMode) {
return ddosProtectionMode(Output.of(ddosProtectionMode));
}
/**
* @param ddosProtectionPlanId The ID of DDoS protection plan associated with the public IP.
*
* > **Note:** `ddos_protection_plan_id` can only be set when `ddos_protection_mode` is `Enabled`.
*
* @return builder
*
*/
public Builder ddosProtectionPlanId(@Nullable Output ddosProtectionPlanId) {
$.ddosProtectionPlanId = ddosProtectionPlanId;
return this;
}
/**
* @param ddosProtectionPlanId The ID of DDoS protection plan associated with the public IP.
*
* > **Note:** `ddos_protection_plan_id` can only be set when `ddos_protection_mode` is `Enabled`.
*
* @return builder
*
*/
public Builder ddosProtectionPlanId(String ddosProtectionPlanId) {
return ddosProtectionPlanId(Output.of(ddosProtectionPlanId));
}
/**
* @param domainNameLabel Label for the Domain Name. Will be used to make up the FQDN. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system.
*
* @return builder
*
*/
public Builder domainNameLabel(@Nullable Output domainNameLabel) {
$.domainNameLabel = domainNameLabel;
return this;
}
/**
* @param domainNameLabel Label for the Domain Name. Will be used to make up the FQDN. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system.
*
* @return builder
*
*/
public Builder domainNameLabel(String domainNameLabel) {
return domainNameLabel(Output.of(domainNameLabel));
}
/**
* @param edgeZone Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created.
*
* @return builder
*
*/
public Builder edgeZone(@Nullable Output edgeZone) {
$.edgeZone = edgeZone;
return this;
}
/**
* @param edgeZone Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created.
*
* @return builder
*
*/
public Builder edgeZone(String edgeZone) {
return edgeZone(Output.of(edgeZone));
}
/**
* @param idleTimeoutInMinutes Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes.
*
* @return builder
*
*/
public Builder idleTimeoutInMinutes(@Nullable Output idleTimeoutInMinutes) {
$.idleTimeoutInMinutes = idleTimeoutInMinutes;
return this;
}
/**
* @param idleTimeoutInMinutes Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes.
*
* @return builder
*
*/
public Builder idleTimeoutInMinutes(Integer idleTimeoutInMinutes) {
return idleTimeoutInMinutes(Output.of(idleTimeoutInMinutes));
}
/**
* @param ipTags A mapping of IP tags to assign to the public IP. Changing this forces a new resource to be created.
*
* > **Note** IP Tag `RoutingPreference` requires multiple `zones` and `Standard` SKU to be set.
*
* @return builder
*
*/
public Builder ipTags(@Nullable Output> ipTags) {
$.ipTags = ipTags;
return this;
}
/**
* @param ipTags A mapping of IP tags to assign to the public IP. Changing this forces a new resource to be created.
*
* > **Note** IP Tag `RoutingPreference` requires multiple `zones` and `Standard` SKU to be set.
*
* @return builder
*
*/
public Builder ipTags(Map ipTags) {
return ipTags(Output.of(ipTags));
}
/**
* @param ipVersion The IP Version to use, IPv6 or IPv4. Changing this forces a new resource to be created. Defaults to `IPv4`.
*
* > **Note** Only `static` IP address allocation is supported for IPv6.
*
* @return builder
*
*/
public Builder ipVersion(@Nullable Output ipVersion) {
$.ipVersion = ipVersion;
return this;
}
/**
* @param ipVersion The IP Version to use, IPv6 or IPv4. Changing this forces a new resource to be created. Defaults to `IPv4`.
*
* > **Note** Only `static` IP address allocation is supported for IPv6.
*
* @return builder
*
*/
public Builder ipVersion(String ipVersion) {
return ipVersion(Output.of(ipVersion));
}
/**
* @param location Specifies the supported Azure location where the Public IP should exist. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder location(@Nullable Output location) {
$.location = location;
return this;
}
/**
* @param location Specifies the supported Azure location where the Public IP should exist. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder location(String location) {
return location(Output.of(location));
}
/**
* @param name Specifies the name of the Public IP. Changing this forces a new Public IP to be created.
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name Specifies the name of the Public IP. Changing this forces a new Public IP to be created.
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param publicIpPrefixId If specified then public IP address allocated will be provided from the public IP prefix resource. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder publicIpPrefixId(@Nullable Output publicIpPrefixId) {
$.publicIpPrefixId = publicIpPrefixId;
return this;
}
/**
* @param publicIpPrefixId If specified then public IP address allocated will be provided from the public IP prefix resource. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder publicIpPrefixId(String publicIpPrefixId) {
return publicIpPrefixId(Output.of(publicIpPrefixId));
}
/**
* @param resourceGroupName The name of the Resource Group where this Public IP should exist. Changing this forces a new Public IP to be created.
*
* @return builder
*
*/
public Builder resourceGroupName(Output resourceGroupName) {
$.resourceGroupName = resourceGroupName;
return this;
}
/**
* @param resourceGroupName The name of the Resource Group where this Public IP should exist. Changing this forces a new Public IP to be created.
*
* @return builder
*
*/
public Builder resourceGroupName(String resourceGroupName) {
return resourceGroupName(Output.of(resourceGroupName));
}
/**
* @param reverseFqdn A fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN.
*
* @return builder
*
*/
public Builder reverseFqdn(@Nullable Output reverseFqdn) {
$.reverseFqdn = reverseFqdn;
return this;
}
/**
* @param reverseFqdn A fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN.
*
* @return builder
*
*/
public Builder reverseFqdn(String reverseFqdn) {
return reverseFqdn(Output.of(reverseFqdn));
}
/**
* @param sku The SKU of the Public IP. Accepted values are `Basic` and `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created.
*
* > **Note** Public IP Standard SKUs require `allocation_method` to be set to `Static`.
*
* @return builder
*
*/
public Builder sku(@Nullable Output sku) {
$.sku = sku;
return this;
}
/**
* @param sku The SKU of the Public IP. Accepted values are `Basic` and `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created.
*
* > **Note** Public IP Standard SKUs require `allocation_method` to be set to `Static`.
*
* @return builder
*
*/
public Builder sku(String sku) {
return sku(Output.of(sku));
}
/**
* @param skuTier The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`. Changing this forces a new resource to be created.
*
* > **Note** When `sku_tier` is set to `Global`, `sku` must be set to `Standard`.
*
* @return builder
*
*/
public Builder skuTier(@Nullable Output skuTier) {
$.skuTier = skuTier;
return this;
}
/**
* @param skuTier The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`. Changing this forces a new resource to be created.
*
* > **Note** When `sku_tier` is set to `Global`, `sku` must be set to `Standard`.
*
* @return builder
*
*/
public Builder skuTier(String skuTier) {
return skuTier(Output.of(skuTier));
}
/**
* @param tags A mapping of tags to assign to the resource.
*
* @return builder
*
*/
public Builder tags(@Nullable Output> tags) {
$.tags = tags;
return this;
}
/**
* @param tags A mapping of tags to assign to the resource.
*
* @return builder
*
*/
public Builder tags(Map tags) {
return tags(Output.of(tags));
}
/**
* @param zones A collection containing the availability zone to allocate the Public IP in. Changing this forces a new resource to be created.
*
* > **Note:** Availability Zones are only supported with a [Standard SKU](https://docs.microsoft.com/azure/virtual-network/virtual-network-ip-addresses-overview-arm#standard) and [in select regions](https://docs.microsoft.com/azure/availability-zones/az-overview) at this time. Standard SKU Public IP Addresses that do not specify a zone are **not** zone-redundant by default.
*
* @return builder
*
*/
public Builder zones(@Nullable Output> zones) {
$.zones = zones;
return this;
}
/**
* @param zones A collection containing the availability zone to allocate the Public IP in. Changing this forces a new resource to be created.
*
* > **Note:** Availability Zones are only supported with a [Standard SKU](https://docs.microsoft.com/azure/virtual-network/virtual-network-ip-addresses-overview-arm#standard) and [in select regions](https://docs.microsoft.com/azure/availability-zones/az-overview) at this time. Standard SKU Public IP Addresses that do not specify a zone are **not** zone-redundant by default.
*
* @return builder
*
*/
public Builder zones(List zones) {
return zones(Output.of(zones));
}
/**
* @param zones A collection containing the availability zone to allocate the Public IP in. Changing this forces a new resource to be created.
*
* > **Note:** Availability Zones are only supported with a [Standard SKU](https://docs.microsoft.com/azure/virtual-network/virtual-network-ip-addresses-overview-arm#standard) and [in select regions](https://docs.microsoft.com/azure/availability-zones/az-overview) at this time. Standard SKU Public IP Addresses that do not specify a zone are **not** zone-redundant by default.
*
* @return builder
*
*/
public Builder zones(String... zones) {
return zones(List.of(zones));
}
public PublicIpArgs build() {
if ($.allocationMethod == null) {
throw new MissingRequiredPropertyException("PublicIpArgs", "allocationMethod");
}
if ($.resourceGroupName == null) {
throw new MissingRequiredPropertyException("PublicIpArgs", "resourceGroupName");
}
return $;
}
}
}