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.trafficmanager.ProfileArgs 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.trafficmanager;
import com.pulumi.azure.trafficmanager.inputs.ProfileDnsConfigArgs;
import com.pulumi.azure.trafficmanager.inputs.ProfileMonitorConfigArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class ProfileArgs extends com.pulumi.resources.ResourceArgs {
public static final ProfileArgs Empty = new ProfileArgs();
/**
* This block specifies the DNS configuration of the Profile. One `dns_config` block as defined below.
*
*/
@Import(name="dnsConfig", required=true)
private Output dnsConfig;
/**
* @return This block specifies the DNS configuration of the Profile. One `dns_config` block as defined below.
*
*/
public Output dnsConfig() {
return this.dnsConfig;
}
/**
* The amount of endpoints to return for DNS queries to this Profile. Possible values range from `1` to `8`.
*
* > **NOTE:** `max_return` must be set when the `traffic_routing_method` is `MultiValue`.
*
*/
@Import(name="maxReturn")
private @Nullable Output maxReturn;
/**
* @return The amount of endpoints to return for DNS queries to this Profile. Possible values range from `1` to `8`.
*
* > **NOTE:** `max_return` must be set when the `traffic_routing_method` is `MultiValue`.
*
*/
public Optional> maxReturn() {
return Optional.ofNullable(this.maxReturn);
}
/**
* This block specifies the Endpoint monitoring configuration for the Profile. One `monitor_config` block as defined below.
*
*/
@Import(name="monitorConfig", required=true)
private Output monitorConfig;
/**
* @return This block specifies the Endpoint monitoring configuration for the Profile. One `monitor_config` block as defined below.
*
*/
public Output monitorConfig() {
return this.monitorConfig;
}
/**
* The name of the Traffic Manager profile. Changing this forces a new resource to be created.
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return The name of the Traffic Manager profile. Changing this forces a new resource to be created.
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* The status of the profile, can be set to either `Enabled` or `Disabled`. Defaults to `Enabled`.
*
*/
@Import(name="profileStatus")
private @Nullable Output profileStatus;
/**
* @return The status of the profile, can be set to either `Enabled` or `Disabled`. Defaults to `Enabled`.
*
*/
public Optional> profileStatus() {
return Optional.ofNullable(this.profileStatus);
}
/**
* The name of the resource group in which to create the Traffic Manager profile. Changing this forces a new resource to be created.
*
*/
@Import(name="resourceGroupName", required=true)
private Output resourceGroupName;
/**
* @return The name of the resource group in which to create the Traffic Manager profile. Changing this forces a new resource to be created.
*
*/
public Output resourceGroupName() {
return this.resourceGroupName;
}
/**
* 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);
}
/**
* Specifies the algorithm used to route traffic. Possible values are `Geographic`, `Weighted`, `Performance`, `Priority`, `Subnet` and `MultiValue`.
* * `Geographic` - Traffic is routed based on Geographic regions specified in the Endpoint.
* * `MultiValue` - All healthy Endpoints are returned. MultiValue routing method works only if all the endpoints of type `External` and are specified as IPv4 or IPv6 addresses.
* * `Performance` - Traffic is routed via the User's closest Endpoint
* * `Priority` - Traffic is routed to the Endpoint with the lowest `priority` value.
* * `Subnet` - Traffic is routed based on a mapping of sets of end-user IP address ranges to a specific Endpoint within a Traffic Manager profile.
* * `Weighted` - Traffic is spread across Endpoints proportional to their `weight` value.
*
*/
@Import(name="trafficRoutingMethod", required=true)
private Output trafficRoutingMethod;
/**
* @return Specifies the algorithm used to route traffic. Possible values are `Geographic`, `Weighted`, `Performance`, `Priority`, `Subnet` and `MultiValue`.
* * `Geographic` - Traffic is routed based on Geographic regions specified in the Endpoint.
* * `MultiValue` - All healthy Endpoints are returned. MultiValue routing method works only if all the endpoints of type `External` and are specified as IPv4 or IPv6 addresses.
* * `Performance` - Traffic is routed via the User's closest Endpoint
* * `Priority` - Traffic is routed to the Endpoint with the lowest `priority` value.
* * `Subnet` - Traffic is routed based on a mapping of sets of end-user IP address ranges to a specific Endpoint within a Traffic Manager profile.
* * `Weighted` - Traffic is spread across Endpoints proportional to their `weight` value.
*
*/
public Output trafficRoutingMethod() {
return this.trafficRoutingMethod;
}
/**
* Indicates whether Traffic View is enabled for the Traffic Manager profile.
*
*/
@Import(name="trafficViewEnabled")
private @Nullable Output trafficViewEnabled;
/**
* @return Indicates whether Traffic View is enabled for the Traffic Manager profile.
*
*/
public Optional> trafficViewEnabled() {
return Optional.ofNullable(this.trafficViewEnabled);
}
private ProfileArgs() {}
private ProfileArgs(ProfileArgs $) {
this.dnsConfig = $.dnsConfig;
this.maxReturn = $.maxReturn;
this.monitorConfig = $.monitorConfig;
this.name = $.name;
this.profileStatus = $.profileStatus;
this.resourceGroupName = $.resourceGroupName;
this.tags = $.tags;
this.trafficRoutingMethod = $.trafficRoutingMethod;
this.trafficViewEnabled = $.trafficViewEnabled;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(ProfileArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private ProfileArgs $;
public Builder() {
$ = new ProfileArgs();
}
public Builder(ProfileArgs defaults) {
$ = new ProfileArgs(Objects.requireNonNull(defaults));
}
/**
* @param dnsConfig This block specifies the DNS configuration of the Profile. One `dns_config` block as defined below.
*
* @return builder
*
*/
public Builder dnsConfig(Output dnsConfig) {
$.dnsConfig = dnsConfig;
return this;
}
/**
* @param dnsConfig This block specifies the DNS configuration of the Profile. One `dns_config` block as defined below.
*
* @return builder
*
*/
public Builder dnsConfig(ProfileDnsConfigArgs dnsConfig) {
return dnsConfig(Output.of(dnsConfig));
}
/**
* @param maxReturn The amount of endpoints to return for DNS queries to this Profile. Possible values range from `1` to `8`.
*
* > **NOTE:** `max_return` must be set when the `traffic_routing_method` is `MultiValue`.
*
* @return builder
*
*/
public Builder maxReturn(@Nullable Output maxReturn) {
$.maxReturn = maxReturn;
return this;
}
/**
* @param maxReturn The amount of endpoints to return for DNS queries to this Profile. Possible values range from `1` to `8`.
*
* > **NOTE:** `max_return` must be set when the `traffic_routing_method` is `MultiValue`.
*
* @return builder
*
*/
public Builder maxReturn(Integer maxReturn) {
return maxReturn(Output.of(maxReturn));
}
/**
* @param monitorConfig This block specifies the Endpoint monitoring configuration for the Profile. One `monitor_config` block as defined below.
*
* @return builder
*
*/
public Builder monitorConfig(Output monitorConfig) {
$.monitorConfig = monitorConfig;
return this;
}
/**
* @param monitorConfig This block specifies the Endpoint monitoring configuration for the Profile. One `monitor_config` block as defined below.
*
* @return builder
*
*/
public Builder monitorConfig(ProfileMonitorConfigArgs monitorConfig) {
return monitorConfig(Output.of(monitorConfig));
}
/**
* @param name The name of the Traffic Manager profile. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name The name of the Traffic Manager profile. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param profileStatus The status of the profile, can be set to either `Enabled` or `Disabled`. Defaults to `Enabled`.
*
* @return builder
*
*/
public Builder profileStatus(@Nullable Output profileStatus) {
$.profileStatus = profileStatus;
return this;
}
/**
* @param profileStatus The status of the profile, can be set to either `Enabled` or `Disabled`. Defaults to `Enabled`.
*
* @return builder
*
*/
public Builder profileStatus(String profileStatus) {
return profileStatus(Output.of(profileStatus));
}
/**
* @param resourceGroupName The name of the resource group in which to create the Traffic Manager profile. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder resourceGroupName(Output resourceGroupName) {
$.resourceGroupName = resourceGroupName;
return this;
}
/**
* @param resourceGroupName The name of the resource group in which to create the Traffic Manager profile. Changing this forces a new resource to be created.
*
* @return builder
*
*/
public Builder resourceGroupName(String resourceGroupName) {
return resourceGroupName(Output.of(resourceGroupName));
}
/**
* @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 trafficRoutingMethod Specifies the algorithm used to route traffic. Possible values are `Geographic`, `Weighted`, `Performance`, `Priority`, `Subnet` and `MultiValue`.
* * `Geographic` - Traffic is routed based on Geographic regions specified in the Endpoint.
* * `MultiValue` - All healthy Endpoints are returned. MultiValue routing method works only if all the endpoints of type `External` and are specified as IPv4 or IPv6 addresses.
* * `Performance` - Traffic is routed via the User's closest Endpoint
* * `Priority` - Traffic is routed to the Endpoint with the lowest `priority` value.
* * `Subnet` - Traffic is routed based on a mapping of sets of end-user IP address ranges to a specific Endpoint within a Traffic Manager profile.
* * `Weighted` - Traffic is spread across Endpoints proportional to their `weight` value.
*
* @return builder
*
*/
public Builder trafficRoutingMethod(Output trafficRoutingMethod) {
$.trafficRoutingMethod = trafficRoutingMethod;
return this;
}
/**
* @param trafficRoutingMethod Specifies the algorithm used to route traffic. Possible values are `Geographic`, `Weighted`, `Performance`, `Priority`, `Subnet` and `MultiValue`.
* * `Geographic` - Traffic is routed based on Geographic regions specified in the Endpoint.
* * `MultiValue` - All healthy Endpoints are returned. MultiValue routing method works only if all the endpoints of type `External` and are specified as IPv4 or IPv6 addresses.
* * `Performance` - Traffic is routed via the User's closest Endpoint
* * `Priority` - Traffic is routed to the Endpoint with the lowest `priority` value.
* * `Subnet` - Traffic is routed based on a mapping of sets of end-user IP address ranges to a specific Endpoint within a Traffic Manager profile.
* * `Weighted` - Traffic is spread across Endpoints proportional to their `weight` value.
*
* @return builder
*
*/
public Builder trafficRoutingMethod(String trafficRoutingMethod) {
return trafficRoutingMethod(Output.of(trafficRoutingMethod));
}
/**
* @param trafficViewEnabled Indicates whether Traffic View is enabled for the Traffic Manager profile.
*
* @return builder
*
*/
public Builder trafficViewEnabled(@Nullable Output trafficViewEnabled) {
$.trafficViewEnabled = trafficViewEnabled;
return this;
}
/**
* @param trafficViewEnabled Indicates whether Traffic View is enabled for the Traffic Manager profile.
*
* @return builder
*
*/
public Builder trafficViewEnabled(Boolean trafficViewEnabled) {
return trafficViewEnabled(Output.of(trafficViewEnabled));
}
public ProfileArgs build() {
if ($.dnsConfig == null) {
throw new MissingRequiredPropertyException("ProfileArgs", "dnsConfig");
}
if ($.monitorConfig == null) {
throw new MissingRequiredPropertyException("ProfileArgs", "monitorConfig");
}
if ($.resourceGroupName == null) {
throw new MissingRequiredPropertyException("ProfileArgs", "resourceGroupName");
}
if ($.trafficRoutingMethod == null) {
throw new MissingRequiredPropertyException("ProfileArgs", "trafficRoutingMethod");
}
return $;
}
}
}