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

com.pulumi.azure.network.inputs.TrafficManagerNestedEndpointState 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.network.inputs;

import com.pulumi.azure.network.inputs.TrafficManagerNestedEndpointCustomHeaderArgs;
import com.pulumi.azure.network.inputs.TrafficManagerNestedEndpointSubnetArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class TrafficManagerNestedEndpointState extends com.pulumi.resources.ResourceArgs {

    public static final TrafficManagerNestedEndpointState Empty = new TrafficManagerNestedEndpointState();

    /**
     * One or more `custom_header` blocks as defined below.
     * 
     */
    @Import(name="customHeaders")
    private @Nullable Output> customHeaders;

    /**
     * @return One or more `custom_header` blocks as defined below.
     * 
     */
    public Optional>> customHeaders() {
        return Optional.ofNullable(this.customHeaders);
    }

    /**
     * Is the endpoint enabled? Defaults to `true`.
     * 
     */
    @Import(name="enabled")
    private @Nullable Output enabled;

    /**
     * @return Is the endpoint enabled? Defaults to `true`.
     * 
     */
    public Optional> enabled() {
        return Optional.ofNullable(this.enabled);
    }

    /**
     * Specifies the Azure location of the Endpoint, this must be specified for Profiles using the `Performance` routing method.
     * 
     */
    @Import(name="endpointLocation")
    private @Nullable Output endpointLocation;

    /**
     * @return Specifies the Azure location of the Endpoint, this must be specified for Profiles using the `Performance` routing method.
     * 
     */
    public Optional> endpointLocation() {
        return Optional.ofNullable(this.endpointLocation);
    }

    /**
     * A list of Geographic Regions used to distribute traffic, such as `WORLD`, `UK` or `DE`. The same location can't be specified in two endpoints. [See the Geographic Hierarchies documentation for more information](https://docs.microsoft.com/rest/api/trafficmanager/geographichierarchies/getdefault).
     * 
     */
    @Import(name="geoMappings")
    private @Nullable Output> geoMappings;

    /**
     * @return A list of Geographic Regions used to distribute traffic, such as `WORLD`, `UK` or `DE`. The same location can't be specified in two endpoints. [See the Geographic Hierarchies documentation for more information](https://docs.microsoft.com/rest/api/trafficmanager/geographichierarchies/getdefault).
     * 
     */
    public Optional>> geoMappings() {
        return Optional.ofNullable(this.geoMappings);
    }

    /**
     * This argument specifies the minimum number of endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This value must be larger than `0`.
     * 
     * ~>**NOTE:** If `min_child_endpoints` is less than either `minimum_required_child_endpoints_ipv4` or `minimum_required_child_endpoints_ipv6`, then it won't have any effect.
     * 
     */
    @Import(name="minimumChildEndpoints")
    private @Nullable Output minimumChildEndpoints;

    /**
     * @return This argument specifies the minimum number of endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This value must be larger than `0`.
     * 
     * ~>**NOTE:** If `min_child_endpoints` is less than either `minimum_required_child_endpoints_ipv4` or `minimum_required_child_endpoints_ipv6`, then it won't have any effect.
     * 
     */
    public Optional> minimumChildEndpoints() {
        return Optional.ofNullable(this.minimumChildEndpoints);
    }

    /**
     * This argument specifies the minimum number of IPv4 (DNS record type A) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and
     * 
     */
    @Import(name="minimumRequiredChildEndpointsIpv4")
    private @Nullable Output minimumRequiredChildEndpointsIpv4;

    /**
     * @return This argument specifies the minimum number of IPv4 (DNS record type A) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and
     * 
     */
    public Optional> minimumRequiredChildEndpointsIpv4() {
        return Optional.ofNullable(this.minimumRequiredChildEndpointsIpv4);
    }

    /**
     * This argument specifies the minimum number of IPv6 (DNS record type AAAA) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and
     * 
     */
    @Import(name="minimumRequiredChildEndpointsIpv6")
    private @Nullable Output minimumRequiredChildEndpointsIpv6;

    /**
     * @return This argument specifies the minimum number of IPv6 (DNS record type AAAA) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and
     * 
     */
    public Optional> minimumRequiredChildEndpointsIpv6() {
        return Optional.ofNullable(this.minimumRequiredChildEndpointsIpv6);
    }

    /**
     * The name of the External Endpoint. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the External Endpoint. Changing this forces a new resource to be created.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Specifies the priority of this Endpoint, this must be specified for Profiles using the `Priority` traffic routing method. Supports values between 1 and 1000, with no Endpoints sharing the same value. If omitted the value will be computed in order of creation. Defaults to `1`.
     * 
     */
    @Import(name="priority")
    private @Nullable Output priority;

    /**
     * @return Specifies the priority of this Endpoint, this must be specified for Profiles using the `Priority` traffic routing method. Supports values between 1 and 1000, with no Endpoints sharing the same value. If omitted the value will be computed in order of creation. Defaults to `1`.
     * 
     */
    public Optional> priority() {
        return Optional.ofNullable(this.priority);
    }

    /**
     * The ID of the Traffic Manager Profile that this External Endpoint should be created within. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="profileId")
    private @Nullable Output profileId;

    /**
     * @return The ID of the Traffic Manager Profile that this External Endpoint should be created within. Changing this forces a new resource to be created.
     * 
     */
    public Optional> profileId() {
        return Optional.ofNullable(this.profileId);
    }

    /**
     * One or more `subnet` blocks as defined below. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="subnets")
    private @Nullable Output> subnets;

    /**
     * @return One or more `subnet` blocks as defined below. Changing this forces a new resource to be created.
     * 
     */
    public Optional>> subnets() {
        return Optional.ofNullable(this.subnets);
    }

    /**
     * The resource id of an Azure resource to target.
     * 
     */
    @Import(name="targetResourceId")
    private @Nullable Output targetResourceId;

    /**
     * @return The resource id of an Azure resource to target.
     * 
     */
    public Optional> targetResourceId() {
        return Optional.ofNullable(this.targetResourceId);
    }

    /**
     * Specifies how much traffic should be distributed to this endpoint, this must be specified for Profiles using the Weighted traffic routing method. Valid values are between `1` and `1000`. Defaults to `1`.
     * 
     */
    @Import(name="weight")
    private @Nullable Output weight;

    /**
     * @return Specifies how much traffic should be distributed to this endpoint, this must be specified for Profiles using the Weighted traffic routing method. Valid values are between `1` and `1000`. Defaults to `1`.
     * 
     */
    public Optional> weight() {
        return Optional.ofNullable(this.weight);
    }

    private TrafficManagerNestedEndpointState() {}

    private TrafficManagerNestedEndpointState(TrafficManagerNestedEndpointState $) {
        this.customHeaders = $.customHeaders;
        this.enabled = $.enabled;
        this.endpointLocation = $.endpointLocation;
        this.geoMappings = $.geoMappings;
        this.minimumChildEndpoints = $.minimumChildEndpoints;
        this.minimumRequiredChildEndpointsIpv4 = $.minimumRequiredChildEndpointsIpv4;
        this.minimumRequiredChildEndpointsIpv6 = $.minimumRequiredChildEndpointsIpv6;
        this.name = $.name;
        this.priority = $.priority;
        this.profileId = $.profileId;
        this.subnets = $.subnets;
        this.targetResourceId = $.targetResourceId;
        this.weight = $.weight;
    }

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

    public static final class Builder {
        private TrafficManagerNestedEndpointState $;

        public Builder() {
            $ = new TrafficManagerNestedEndpointState();
        }

        public Builder(TrafficManagerNestedEndpointState defaults) {
            $ = new TrafficManagerNestedEndpointState(Objects.requireNonNull(defaults));
        }

        /**
         * @param customHeaders One or more `custom_header` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder customHeaders(@Nullable Output> customHeaders) {
            $.customHeaders = customHeaders;
            return this;
        }

        /**
         * @param customHeaders One or more `custom_header` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder customHeaders(List customHeaders) {
            return customHeaders(Output.of(customHeaders));
        }

        /**
         * @param customHeaders One or more `custom_header` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder customHeaders(TrafficManagerNestedEndpointCustomHeaderArgs... customHeaders) {
            return customHeaders(List.of(customHeaders));
        }

        /**
         * @param enabled Is the endpoint enabled? Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder enabled(@Nullable Output enabled) {
            $.enabled = enabled;
            return this;
        }

        /**
         * @param enabled Is the endpoint enabled? Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Boolean enabled) {
            return enabled(Output.of(enabled));
        }

        /**
         * @param endpointLocation Specifies the Azure location of the Endpoint, this must be specified for Profiles using the `Performance` routing method.
         * 
         * @return builder
         * 
         */
        public Builder endpointLocation(@Nullable Output endpointLocation) {
            $.endpointLocation = endpointLocation;
            return this;
        }

        /**
         * @param endpointLocation Specifies the Azure location of the Endpoint, this must be specified for Profiles using the `Performance` routing method.
         * 
         * @return builder
         * 
         */
        public Builder endpointLocation(String endpointLocation) {
            return endpointLocation(Output.of(endpointLocation));
        }

        /**
         * @param geoMappings A list of Geographic Regions used to distribute traffic, such as `WORLD`, `UK` or `DE`. The same location can't be specified in two endpoints. [See the Geographic Hierarchies documentation for more information](https://docs.microsoft.com/rest/api/trafficmanager/geographichierarchies/getdefault).
         * 
         * @return builder
         * 
         */
        public Builder geoMappings(@Nullable Output> geoMappings) {
            $.geoMappings = geoMappings;
            return this;
        }

        /**
         * @param geoMappings A list of Geographic Regions used to distribute traffic, such as `WORLD`, `UK` or `DE`. The same location can't be specified in two endpoints. [See the Geographic Hierarchies documentation for more information](https://docs.microsoft.com/rest/api/trafficmanager/geographichierarchies/getdefault).
         * 
         * @return builder
         * 
         */
        public Builder geoMappings(List geoMappings) {
            return geoMappings(Output.of(geoMappings));
        }

        /**
         * @param geoMappings A list of Geographic Regions used to distribute traffic, such as `WORLD`, `UK` or `DE`. The same location can't be specified in two endpoints. [See the Geographic Hierarchies documentation for more information](https://docs.microsoft.com/rest/api/trafficmanager/geographichierarchies/getdefault).
         * 
         * @return builder
         * 
         */
        public Builder geoMappings(String... geoMappings) {
            return geoMappings(List.of(geoMappings));
        }

        /**
         * @param minimumChildEndpoints This argument specifies the minimum number of endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This value must be larger than `0`.
         * 
         * ~>**NOTE:** If `min_child_endpoints` is less than either `minimum_required_child_endpoints_ipv4` or `minimum_required_child_endpoints_ipv6`, then it won't have any effect.
         * 
         * @return builder
         * 
         */
        public Builder minimumChildEndpoints(@Nullable Output minimumChildEndpoints) {
            $.minimumChildEndpoints = minimumChildEndpoints;
            return this;
        }

        /**
         * @param minimumChildEndpoints This argument specifies the minimum number of endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This value must be larger than `0`.
         * 
         * ~>**NOTE:** If `min_child_endpoints` is less than either `minimum_required_child_endpoints_ipv4` or `minimum_required_child_endpoints_ipv6`, then it won't have any effect.
         * 
         * @return builder
         * 
         */
        public Builder minimumChildEndpoints(Integer minimumChildEndpoints) {
            return minimumChildEndpoints(Output.of(minimumChildEndpoints));
        }

        /**
         * @param minimumRequiredChildEndpointsIpv4 This argument specifies the minimum number of IPv4 (DNS record type A) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and
         * 
         * @return builder
         * 
         */
        public Builder minimumRequiredChildEndpointsIpv4(@Nullable Output minimumRequiredChildEndpointsIpv4) {
            $.minimumRequiredChildEndpointsIpv4 = minimumRequiredChildEndpointsIpv4;
            return this;
        }

        /**
         * @param minimumRequiredChildEndpointsIpv4 This argument specifies the minimum number of IPv4 (DNS record type A) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and
         * 
         * @return builder
         * 
         */
        public Builder minimumRequiredChildEndpointsIpv4(Integer minimumRequiredChildEndpointsIpv4) {
            return minimumRequiredChildEndpointsIpv4(Output.of(minimumRequiredChildEndpointsIpv4));
        }

        /**
         * @param minimumRequiredChildEndpointsIpv6 This argument specifies the minimum number of IPv6 (DNS record type AAAA) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and
         * 
         * @return builder
         * 
         */
        public Builder minimumRequiredChildEndpointsIpv6(@Nullable Output minimumRequiredChildEndpointsIpv6) {
            $.minimumRequiredChildEndpointsIpv6 = minimumRequiredChildEndpointsIpv6;
            return this;
        }

        /**
         * @param minimumRequiredChildEndpointsIpv6 This argument specifies the minimum number of IPv6 (DNS record type AAAA) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type `nestedEndpoints` and
         * 
         * @return builder
         * 
         */
        public Builder minimumRequiredChildEndpointsIpv6(Integer minimumRequiredChildEndpointsIpv6) {
            return minimumRequiredChildEndpointsIpv6(Output.of(minimumRequiredChildEndpointsIpv6));
        }

        /**
         * @param name The name of the External Endpoint. 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 External Endpoint. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param priority Specifies the priority of this Endpoint, this must be specified for Profiles using the `Priority` traffic routing method. Supports values between 1 and 1000, with no Endpoints sharing the same value. If omitted the value will be computed in order of creation. Defaults to `1`.
         * 
         * @return builder
         * 
         */
        public Builder priority(@Nullable Output priority) {
            $.priority = priority;
            return this;
        }

        /**
         * @param priority Specifies the priority of this Endpoint, this must be specified for Profiles using the `Priority` traffic routing method. Supports values between 1 and 1000, with no Endpoints sharing the same value. If omitted the value will be computed in order of creation. Defaults to `1`.
         * 
         * @return builder
         * 
         */
        public Builder priority(Integer priority) {
            return priority(Output.of(priority));
        }

        /**
         * @param profileId The ID of the Traffic Manager Profile that this External Endpoint should be created within. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder profileId(@Nullable Output profileId) {
            $.profileId = profileId;
            return this;
        }

        /**
         * @param profileId The ID of the Traffic Manager Profile that this External Endpoint should be created within. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder profileId(String profileId) {
            return profileId(Output.of(profileId));
        }

        /**
         * @param subnets One or more `subnet` blocks as defined below. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder subnets(@Nullable Output> subnets) {
            $.subnets = subnets;
            return this;
        }

        /**
         * @param subnets One or more `subnet` blocks as defined below. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder subnets(List subnets) {
            return subnets(Output.of(subnets));
        }

        /**
         * @param subnets One or more `subnet` blocks as defined below. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder subnets(TrafficManagerNestedEndpointSubnetArgs... subnets) {
            return subnets(List.of(subnets));
        }

        /**
         * @param targetResourceId The resource id of an Azure resource to target.
         * 
         * @return builder
         * 
         */
        public Builder targetResourceId(@Nullable Output targetResourceId) {
            $.targetResourceId = targetResourceId;
            return this;
        }

        /**
         * @param targetResourceId The resource id of an Azure resource to target.
         * 
         * @return builder
         * 
         */
        public Builder targetResourceId(String targetResourceId) {
            return targetResourceId(Output.of(targetResourceId));
        }

        /**
         * @param weight Specifies how much traffic should be distributed to this endpoint, this must be specified for Profiles using the Weighted traffic routing method. Valid values are between `1` and `1000`. Defaults to `1`.
         * 
         * @return builder
         * 
         */
        public Builder weight(@Nullable Output weight) {
            $.weight = weight;
            return this;
        }

        /**
         * @param weight Specifies how much traffic should be distributed to this endpoint, this must be specified for Profiles using the Weighted traffic routing method. Valid values are between `1` and `1000`. Defaults to `1`.
         * 
         * @return builder
         * 
         */
        public Builder weight(Integer weight) {
            return weight(Output.of(weight));
        }

        public TrafficManagerNestedEndpointState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy