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

com.pulumi.azurenative.network.inputs.EndpointArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
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.azurenative.network.inputs;

import com.pulumi.azurenative.network.enums.AlwaysServe;
import com.pulumi.azurenative.network.enums.EndpointMonitorStatus;
import com.pulumi.azurenative.network.enums.EndpointStatus;
import com.pulumi.azurenative.network.inputs.EndpointPropertiesCustomHeadersArgs;
import com.pulumi.azurenative.network.inputs.EndpointPropertiesSubnetsArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Double;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Class representing a Traffic Manager endpoint.
 * 
 */
public final class EndpointArgs extends com.pulumi.resources.ResourceArgs {

    public static final EndpointArgs Empty = new EndpointArgs();

    /**
     * If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method.
     * 
     */
    @Import(name="alwaysServe")
    private @Nullable Output> alwaysServe;

    /**
     * @return If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method.
     * 
     */
    public Optional>> alwaysServe() {
        return Optional.ofNullable(this.alwaysServe);
    }

    /**
     * List of custom headers.
     * 
     */
    @Import(name="customHeaders")
    private @Nullable Output> customHeaders;

    /**
     * @return List of custom headers.
     * 
     */
    public Optional>> customHeaders() {
        return Optional.ofNullable(this.customHeaders);
    }

    /**
     * Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method.
     * 
     */
    @Import(name="endpointLocation")
    private @Nullable Output endpointLocation;

    /**
     * @return Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method.
     * 
     */
    public Optional> endpointLocation() {
        return Optional.ofNullable(this.endpointLocation);
    }

    /**
     * The monitoring status of the endpoint.
     * 
     */
    @Import(name="endpointMonitorStatus")
    private @Nullable Output> endpointMonitorStatus;

    /**
     * @return The monitoring status of the endpoint.
     * 
     */
    public Optional>> endpointMonitorStatus() {
        return Optional.ofNullable(this.endpointMonitorStatus);
    }

    /**
     * The status of the endpoint. If the endpoint is Enabled, it is probed for endpoint health and is included in the traffic routing method.
     * 
     */
    @Import(name="endpointStatus")
    private @Nullable Output> endpointStatus;

    /**
     * @return The status of the endpoint. If the endpoint is Enabled, it is probed for endpoint health and is included in the traffic routing method.
     * 
     */
    public Optional>> endpointStatus() {
        return Optional.ofNullable(this.endpointStatus);
    }

    /**
     * The list of countries/regions mapped to this endpoint when using the 'Geographic' traffic routing method. Please consult Traffic Manager Geographic documentation for a full list of accepted values.
     * 
     */
    @Import(name="geoMapping")
    private @Nullable Output> geoMapping;

    /**
     * @return The list of countries/regions mapped to this endpoint when using the 'Geographic' traffic routing method. Please consult Traffic Manager Geographic documentation for a full list of accepted values.
     * 
     */
    public Optional>> geoMapping() {
        return Optional.ofNullable(this.geoMapping);
    }

    /**
     * Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{resourceName}
     * 
     */
    @Import(name="id")
    private @Nullable Output id;

    /**
     * @return Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{resourceName}
     * 
     */
    public Optional> id() {
        return Optional.ofNullable(this.id);
    }

    /**
     * The minimum number of endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
     * 
     */
    @Import(name="minChildEndpoints")
    private @Nullable Output minChildEndpoints;

    /**
     * @return The minimum number of endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
     * 
     */
    public Optional> minChildEndpoints() {
        return Optional.ofNullable(this.minChildEndpoints);
    }

    /**
     * The minimum number of IPv4 (DNS record type A) endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
     * 
     */
    @Import(name="minChildEndpointsIPv4")
    private @Nullable Output minChildEndpointsIPv4;

    /**
     * @return The minimum number of IPv4 (DNS record type A) endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
     * 
     */
    public Optional> minChildEndpointsIPv4() {
        return Optional.ofNullable(this.minChildEndpointsIPv4);
    }

    /**
     * The minimum number of IPv6 (DNS record type AAAA) endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
     * 
     */
    @Import(name="minChildEndpointsIPv6")
    private @Nullable Output minChildEndpointsIPv6;

    /**
     * @return The minimum number of IPv6 (DNS record type AAAA) endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
     * 
     */
    public Optional> minChildEndpointsIPv6() {
        return Optional.ofNullable(this.minChildEndpointsIPv6);
    }

    /**
     * The name of the resource
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the resource
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The priority of this endpoint when using the 'Priority' traffic routing method. Possible values are from 1 to 1000, lower values represent higher priority. This is an optional parameter.  If specified, it must be specified on all endpoints, and no two endpoints can share the same priority value.
     * 
     */
    @Import(name="priority")
    private @Nullable Output priority;

    /**
     * @return The priority of this endpoint when using the 'Priority' traffic routing method. Possible values are from 1 to 1000, lower values represent higher priority. This is an optional parameter.  If specified, it must be specified on all endpoints, and no two endpoints can share the same priority value.
     * 
     */
    public Optional> priority() {
        return Optional.ofNullable(this.priority);
    }

    /**
     * The list of subnets, IP addresses, and/or address ranges mapped to this endpoint when using the 'Subnet' traffic routing method. An empty list will match all ranges not covered by other endpoints.
     * 
     */
    @Import(name="subnets")
    private @Nullable Output> subnets;

    /**
     * @return The list of subnets, IP addresses, and/or address ranges mapped to this endpoint when using the 'Subnet' traffic routing method. An empty list will match all ranges not covered by other endpoints.
     * 
     */
    public Optional>> subnets() {
        return Optional.ofNullable(this.subnets);
    }

    /**
     * The fully-qualified DNS name or IP address of the endpoint. Traffic Manager returns this value in DNS responses to direct traffic to this endpoint.
     * 
     */
    @Import(name="target")
    private @Nullable Output target;

    /**
     * @return The fully-qualified DNS name or IP address of the endpoint. Traffic Manager returns this value in DNS responses to direct traffic to this endpoint.
     * 
     */
    public Optional> target() {
        return Optional.ofNullable(this.target);
    }

    /**
     * The Azure Resource URI of the of the endpoint. Not applicable to endpoints of type 'ExternalEndpoints'.
     * 
     */
    @Import(name="targetResourceId")
    private @Nullable Output targetResourceId;

    /**
     * @return The Azure Resource URI of the of the endpoint. Not applicable to endpoints of type 'ExternalEndpoints'.
     * 
     */
    public Optional> targetResourceId() {
        return Optional.ofNullable(this.targetResourceId);
    }

    /**
     * The type of the resource. Ex- Microsoft.Network/trafficManagerProfiles.
     * 
     */
    @Import(name="type")
    private @Nullable Output type;

    /**
     * @return The type of the resource. Ex- Microsoft.Network/trafficManagerProfiles.
     * 
     */
    public Optional> type() {
        return Optional.ofNullable(this.type);
    }

    /**
     * The weight of this endpoint when using the 'Weighted' traffic routing method. Possible values are from 1 to 1000.
     * 
     */
    @Import(name="weight")
    private @Nullable Output weight;

    /**
     * @return The weight of this endpoint when using the 'Weighted' traffic routing method. Possible values are from 1 to 1000.
     * 
     */
    public Optional> weight() {
        return Optional.ofNullable(this.weight);
    }

    private EndpointArgs() {}

    private EndpointArgs(EndpointArgs $) {
        this.alwaysServe = $.alwaysServe;
        this.customHeaders = $.customHeaders;
        this.endpointLocation = $.endpointLocation;
        this.endpointMonitorStatus = $.endpointMonitorStatus;
        this.endpointStatus = $.endpointStatus;
        this.geoMapping = $.geoMapping;
        this.id = $.id;
        this.minChildEndpoints = $.minChildEndpoints;
        this.minChildEndpointsIPv4 = $.minChildEndpointsIPv4;
        this.minChildEndpointsIPv6 = $.minChildEndpointsIPv6;
        this.name = $.name;
        this.priority = $.priority;
        this.subnets = $.subnets;
        this.target = $.target;
        this.targetResourceId = $.targetResourceId;
        this.type = $.type;
        this.weight = $.weight;
    }

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

    public static final class Builder {
        private EndpointArgs $;

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

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

        /**
         * @param alwaysServe If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method.
         * 
         * @return builder
         * 
         */
        public Builder alwaysServe(@Nullable Output> alwaysServe) {
            $.alwaysServe = alwaysServe;
            return this;
        }

        /**
         * @param alwaysServe If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method.
         * 
         * @return builder
         * 
         */
        public Builder alwaysServe(Either alwaysServe) {
            return alwaysServe(Output.of(alwaysServe));
        }

        /**
         * @param alwaysServe If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method.
         * 
         * @return builder
         * 
         */
        public Builder alwaysServe(String alwaysServe) {
            return alwaysServe(Either.ofLeft(alwaysServe));
        }

        /**
         * @param alwaysServe If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method.
         * 
         * @return builder
         * 
         */
        public Builder alwaysServe(AlwaysServe alwaysServe) {
            return alwaysServe(Either.ofRight(alwaysServe));
        }

        /**
         * @param customHeaders List of custom headers.
         * 
         * @return builder
         * 
         */
        public Builder customHeaders(@Nullable Output> customHeaders) {
            $.customHeaders = customHeaders;
            return this;
        }

        /**
         * @param customHeaders List of custom headers.
         * 
         * @return builder
         * 
         */
        public Builder customHeaders(List customHeaders) {
            return customHeaders(Output.of(customHeaders));
        }

        /**
         * @param customHeaders List of custom headers.
         * 
         * @return builder
         * 
         */
        public Builder customHeaders(EndpointPropertiesCustomHeadersArgs... customHeaders) {
            return customHeaders(List.of(customHeaders));
        }

        /**
         * @param endpointLocation Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method.
         * 
         * @return builder
         * 
         */
        public Builder endpointLocation(@Nullable Output endpointLocation) {
            $.endpointLocation = endpointLocation;
            return this;
        }

        /**
         * @param endpointLocation Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method.
         * 
         * @return builder
         * 
         */
        public Builder endpointLocation(String endpointLocation) {
            return endpointLocation(Output.of(endpointLocation));
        }

        /**
         * @param endpointMonitorStatus The monitoring status of the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder endpointMonitorStatus(@Nullable Output> endpointMonitorStatus) {
            $.endpointMonitorStatus = endpointMonitorStatus;
            return this;
        }

        /**
         * @param endpointMonitorStatus The monitoring status of the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder endpointMonitorStatus(Either endpointMonitorStatus) {
            return endpointMonitorStatus(Output.of(endpointMonitorStatus));
        }

        /**
         * @param endpointMonitorStatus The monitoring status of the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder endpointMonitorStatus(String endpointMonitorStatus) {
            return endpointMonitorStatus(Either.ofLeft(endpointMonitorStatus));
        }

        /**
         * @param endpointMonitorStatus The monitoring status of the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder endpointMonitorStatus(EndpointMonitorStatus endpointMonitorStatus) {
            return endpointMonitorStatus(Either.ofRight(endpointMonitorStatus));
        }

        /**
         * @param endpointStatus The status of the endpoint. If the endpoint is Enabled, it is probed for endpoint health and is included in the traffic routing method.
         * 
         * @return builder
         * 
         */
        public Builder endpointStatus(@Nullable Output> endpointStatus) {
            $.endpointStatus = endpointStatus;
            return this;
        }

        /**
         * @param endpointStatus The status of the endpoint. If the endpoint is Enabled, it is probed for endpoint health and is included in the traffic routing method.
         * 
         * @return builder
         * 
         */
        public Builder endpointStatus(Either endpointStatus) {
            return endpointStatus(Output.of(endpointStatus));
        }

        /**
         * @param endpointStatus The status of the endpoint. If the endpoint is Enabled, it is probed for endpoint health and is included in the traffic routing method.
         * 
         * @return builder
         * 
         */
        public Builder endpointStatus(String endpointStatus) {
            return endpointStatus(Either.ofLeft(endpointStatus));
        }

        /**
         * @param endpointStatus The status of the endpoint. If the endpoint is Enabled, it is probed for endpoint health and is included in the traffic routing method.
         * 
         * @return builder
         * 
         */
        public Builder endpointStatus(EndpointStatus endpointStatus) {
            return endpointStatus(Either.ofRight(endpointStatus));
        }

        /**
         * @param geoMapping The list of countries/regions mapped to this endpoint when using the 'Geographic' traffic routing method. Please consult Traffic Manager Geographic documentation for a full list of accepted values.
         * 
         * @return builder
         * 
         */
        public Builder geoMapping(@Nullable Output> geoMapping) {
            $.geoMapping = geoMapping;
            return this;
        }

        /**
         * @param geoMapping The list of countries/regions mapped to this endpoint when using the 'Geographic' traffic routing method. Please consult Traffic Manager Geographic documentation for a full list of accepted values.
         * 
         * @return builder
         * 
         */
        public Builder geoMapping(List geoMapping) {
            return geoMapping(Output.of(geoMapping));
        }

        /**
         * @param geoMapping The list of countries/regions mapped to this endpoint when using the 'Geographic' traffic routing method. Please consult Traffic Manager Geographic documentation for a full list of accepted values.
         * 
         * @return builder
         * 
         */
        public Builder geoMapping(String... geoMapping) {
            return geoMapping(List.of(geoMapping));
        }

        /**
         * @param id Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{resourceName}
         * 
         * @return builder
         * 
         */
        public Builder id(@Nullable Output id) {
            $.id = id;
            return this;
        }

        /**
         * @param id Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{resourceName}
         * 
         * @return builder
         * 
         */
        public Builder id(String id) {
            return id(Output.of(id));
        }

        /**
         * @param minChildEndpoints The minimum number of endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
         * 
         * @return builder
         * 
         */
        public Builder minChildEndpoints(@Nullable Output minChildEndpoints) {
            $.minChildEndpoints = minChildEndpoints;
            return this;
        }

        /**
         * @param minChildEndpoints The minimum number of endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
         * 
         * @return builder
         * 
         */
        public Builder minChildEndpoints(Double minChildEndpoints) {
            return minChildEndpoints(Output.of(minChildEndpoints));
        }

        /**
         * @param minChildEndpointsIPv4 The minimum number of IPv4 (DNS record type A) endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
         * 
         * @return builder
         * 
         */
        public Builder minChildEndpointsIPv4(@Nullable Output minChildEndpointsIPv4) {
            $.minChildEndpointsIPv4 = minChildEndpointsIPv4;
            return this;
        }

        /**
         * @param minChildEndpointsIPv4 The minimum number of IPv4 (DNS record type A) endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
         * 
         * @return builder
         * 
         */
        public Builder minChildEndpointsIPv4(Double minChildEndpointsIPv4) {
            return minChildEndpointsIPv4(Output.of(minChildEndpointsIPv4));
        }

        /**
         * @param minChildEndpointsIPv6 The minimum number of IPv6 (DNS record type AAAA) endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
         * 
         * @return builder
         * 
         */
        public Builder minChildEndpointsIPv6(@Nullable Output minChildEndpointsIPv6) {
            $.minChildEndpointsIPv6 = minChildEndpointsIPv6;
            return this;
        }

        /**
         * @param minChildEndpointsIPv6 The minimum number of IPv6 (DNS record type AAAA) endpoints that must be available in the child profile in order for the parent profile to be considered available. Only applicable to endpoint of type 'NestedEndpoints'.
         * 
         * @return builder
         * 
         */
        public Builder minChildEndpointsIPv6(Double minChildEndpointsIPv6) {
            return minChildEndpointsIPv6(Output.of(minChildEndpointsIPv6));
        }

        /**
         * @param name The name of the resource
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the resource
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param priority The priority of this endpoint when using the 'Priority' traffic routing method. Possible values are from 1 to 1000, lower values represent higher priority. This is an optional parameter.  If specified, it must be specified on all endpoints, and no two endpoints can share the same priority value.
         * 
         * @return builder
         * 
         */
        public Builder priority(@Nullable Output priority) {
            $.priority = priority;
            return this;
        }

        /**
         * @param priority The priority of this endpoint when using the 'Priority' traffic routing method. Possible values are from 1 to 1000, lower values represent higher priority. This is an optional parameter.  If specified, it must be specified on all endpoints, and no two endpoints can share the same priority value.
         * 
         * @return builder
         * 
         */
        public Builder priority(Double priority) {
            return priority(Output.of(priority));
        }

        /**
         * @param subnets The list of subnets, IP addresses, and/or address ranges mapped to this endpoint when using the 'Subnet' traffic routing method. An empty list will match all ranges not covered by other endpoints.
         * 
         * @return builder
         * 
         */
        public Builder subnets(@Nullable Output> subnets) {
            $.subnets = subnets;
            return this;
        }

        /**
         * @param subnets The list of subnets, IP addresses, and/or address ranges mapped to this endpoint when using the 'Subnet' traffic routing method. An empty list will match all ranges not covered by other endpoints.
         * 
         * @return builder
         * 
         */
        public Builder subnets(List subnets) {
            return subnets(Output.of(subnets));
        }

        /**
         * @param subnets The list of subnets, IP addresses, and/or address ranges mapped to this endpoint when using the 'Subnet' traffic routing method. An empty list will match all ranges not covered by other endpoints.
         * 
         * @return builder
         * 
         */
        public Builder subnets(EndpointPropertiesSubnetsArgs... subnets) {
            return subnets(List.of(subnets));
        }

        /**
         * @param target The fully-qualified DNS name or IP address of the endpoint. Traffic Manager returns this value in DNS responses to direct traffic to this endpoint.
         * 
         * @return builder
         * 
         */
        public Builder target(@Nullable Output target) {
            $.target = target;
            return this;
        }

        /**
         * @param target The fully-qualified DNS name or IP address of the endpoint. Traffic Manager returns this value in DNS responses to direct traffic to this endpoint.
         * 
         * @return builder
         * 
         */
        public Builder target(String target) {
            return target(Output.of(target));
        }

        /**
         * @param targetResourceId The Azure Resource URI of the of the endpoint. Not applicable to endpoints of type 'ExternalEndpoints'.
         * 
         * @return builder
         * 
         */
        public Builder targetResourceId(@Nullable Output targetResourceId) {
            $.targetResourceId = targetResourceId;
            return this;
        }

        /**
         * @param targetResourceId The Azure Resource URI of the of the endpoint. Not applicable to endpoints of type 'ExternalEndpoints'.
         * 
         * @return builder
         * 
         */
        public Builder targetResourceId(String targetResourceId) {
            return targetResourceId(Output.of(targetResourceId));
        }

        /**
         * @param type The type of the resource. Ex- Microsoft.Network/trafficManagerProfiles.
         * 
         * @return builder
         * 
         */
        public Builder type(@Nullable Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type The type of the resource. Ex- Microsoft.Network/trafficManagerProfiles.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        /**
         * @param weight The weight of this endpoint when using the 'Weighted' traffic routing method. Possible values are from 1 to 1000.
         * 
         * @return builder
         * 
         */
        public Builder weight(@Nullable Output weight) {
            $.weight = weight;
            return this;
        }

        /**
         * @param weight The weight of this endpoint when using the 'Weighted' traffic routing method. Possible values are from 1 to 1000.
         * 
         * @return builder
         * 
         */
        public Builder weight(Double weight) {
            return weight(Output.of(weight));
        }

        public EndpointArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy