import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a Nested Endpoint within a Traffic Manager Profile.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const examplePublicIp = new azure.network.PublicIp("example", {
 *     name: "example-publicip",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     allocationMethod: "Static",
 *     domainNameLabel: "example-pip",
 * });
 * const parent = new azure.network.TrafficManagerProfile("parent", {
 *     name: "parent-profile",
 *     resourceGroupName: example.name,
 *     trafficRoutingMethod: "Weighted",
 *     dnsConfig: {
 *         relativeName: "parent-profile",
 *         ttl: 100,
 *     },
 *     monitorConfig: {
 *         protocol: "HTTP",
 *         port: 80,
 *         path: "/",
 *         intervalInSeconds: 30,
 *         timeoutInSeconds: 9,
 *         toleratedNumberOfFailures: 3,
 *     },
 *     tags: {
 *         environment: "Production",
 *     },
 * });
 * const nested = new azure.network.TrafficManagerProfile("nested", {
 *     name: "nested-profile",
 *     resourceGroupName: example.name,
 *     trafficRoutingMethod: "Priority",
 *     dnsConfig: {
 *         relativeName: "nested-profile",
 *         ttl: 30,
 *     },
 *     monitorConfig: {
 *         protocol: "HTTP",
 *         port: 443,
 *         path: "/",
 *     },
 * });
 * const exampleTrafficManagerNestedEndpoint = new azure.network.TrafficManagerNestedEndpoint("example", {
 *     name: "example-endpoint",
 *     targetResourceId: nested.id,
 *     priority: 1,
 *     profileId: parent.id,
 *     minimumChildEndpoints: 9,
 *     weight: 5,
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.Network` - 2022-04-01
 *
 * ## Import
 *
 * Nested Endpoints can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:network/trafficManagerNestedEndpoint:TrafficManagerNestedEndpoint example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.Network/trafficManagerProfiles/example-profile/NestedEndpoints/example-endpoint
 * ```
 */
export declare class TrafficManagerNestedEndpoint extends pulumi.CustomResource {
    /**
     * Get an existing TrafficManagerNestedEndpoint resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: TrafficManagerNestedEndpointState, opts?: pulumi.CustomResourceOptions): TrafficManagerNestedEndpoint;
    /**
     * Returns true if the given object is an instance of TrafficManagerNestedEndpoint.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is TrafficManagerNestedEndpoint;
    /**
     * One or more `customHeader` blocks as defined below.
     */
    readonly customHeaders: pulumi.Output<outputs.network.TrafficManagerNestedEndpointCustomHeader[] | undefined>;
    /**
     * Is the endpoint enabled? Defaults to `true`.
     */
    readonly enabled: pulumi.Output<boolean | undefined>;
    /**
     * Specifies the Azure location of the Endpoint, this must be specified for Profiles using the `Performance` routing method.
     */
    readonly endpointLocation: pulumi.Output<string>;
    /**
     * 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).
     */
    readonly geoMappings: pulumi.Output<string[] | undefined>;
    /**
     * 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 `minChildEndpoints` is less than either `minimumRequiredChildEndpointsIpv4` or `minimumRequiredChildEndpointsIpv6`, then it won't have any effect.
     */
    readonly minimumChildEndpoints: pulumi.Output<number>;
    /**
     * 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
     */
    readonly minimumRequiredChildEndpointsIpv4: pulumi.Output<number | undefined>;
    /**
     * 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
     */
    readonly minimumRequiredChildEndpointsIpv6: pulumi.Output<number | undefined>;
    /**
     * The name of the External Endpoint. Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * 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.
     */
    readonly priority: pulumi.Output<number>;
    /**
     * The ID of the Traffic Manager Profile that this External Endpoint should be created within. Changing this forces a new resource to be created.
     */
    readonly profileId: pulumi.Output<string>;
    /**
     * One or more `subnet` blocks as defined below. Changing this forces a new resource to be created.
     */
    readonly subnets: pulumi.Output<outputs.network.TrafficManagerNestedEndpointSubnet[] | undefined>;
    /**
     * The resource id of an Azure resource to target.
     */
    readonly targetResourceId: pulumi.Output<string>;
    /**
     * 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`.
     */
    readonly weight: pulumi.Output<number | undefined>;
    /**
     * Create a TrafficManagerNestedEndpoint resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: TrafficManagerNestedEndpointArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering TrafficManagerNestedEndpoint resources.
 */
export interface TrafficManagerNestedEndpointState {
    /**
     * One or more `customHeader` blocks as defined below.
     */
    customHeaders?: pulumi.Input<pulumi.Input<inputs.network.TrafficManagerNestedEndpointCustomHeader>[] | undefined>;
    /**
     * Is the endpoint enabled? Defaults to `true`.
     */
    enabled?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies the Azure location of the Endpoint, this must be specified for Profiles using the `Performance` routing method.
     */
    endpointLocation?: pulumi.Input<string | undefined>;
    /**
     * 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).
     */
    geoMappings?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * 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 `minChildEndpoints` is less than either `minimumRequiredChildEndpointsIpv4` or `minimumRequiredChildEndpointsIpv6`, then it won't have any effect.
     */
    minimumChildEndpoints?: pulumi.Input<number | undefined>;
    /**
     * 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
     */
    minimumRequiredChildEndpointsIpv4?: pulumi.Input<number | undefined>;
    /**
     * 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
     */
    minimumRequiredChildEndpointsIpv6?: pulumi.Input<number | undefined>;
    /**
     * The name of the External Endpoint. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * 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.
     */
    priority?: pulumi.Input<number | undefined>;
    /**
     * The ID of the Traffic Manager Profile that this External Endpoint should be created within. Changing this forces a new resource to be created.
     */
    profileId?: pulumi.Input<string | undefined>;
    /**
     * One or more `subnet` blocks as defined below. Changing this forces a new resource to be created.
     */
    subnets?: pulumi.Input<pulumi.Input<inputs.network.TrafficManagerNestedEndpointSubnet>[] | undefined>;
    /**
     * The resource id of an Azure resource to target.
     */
    targetResourceId?: pulumi.Input<string | undefined>;
    /**
     * 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`.
     */
    weight?: pulumi.Input<number | undefined>;
}
/**
 * The set of arguments for constructing a TrafficManagerNestedEndpoint resource.
 */
export interface TrafficManagerNestedEndpointArgs {
    /**
     * One or more `customHeader` blocks as defined below.
     */
    customHeaders?: pulumi.Input<pulumi.Input<inputs.network.TrafficManagerNestedEndpointCustomHeader>[] | undefined>;
    /**
     * Is the endpoint enabled? Defaults to `true`.
     */
    enabled?: pulumi.Input<boolean | undefined>;
    /**
     * Specifies the Azure location of the Endpoint, this must be specified for Profiles using the `Performance` routing method.
     */
    endpointLocation?: pulumi.Input<string | undefined>;
    /**
     * 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).
     */
    geoMappings?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * 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 `minChildEndpoints` is less than either `minimumRequiredChildEndpointsIpv4` or `minimumRequiredChildEndpointsIpv6`, then it won't have any effect.
     */
    minimumChildEndpoints: pulumi.Input<number>;
    /**
     * 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
     */
    minimumRequiredChildEndpointsIpv4?: pulumi.Input<number | undefined>;
    /**
     * 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
     */
    minimumRequiredChildEndpointsIpv6?: pulumi.Input<number | undefined>;
    /**
     * The name of the External Endpoint. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * 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.
     */
    priority?: pulumi.Input<number | undefined>;
    /**
     * The ID of the Traffic Manager Profile that this External Endpoint should be created within. Changing this forces a new resource to be created.
     */
    profileId: pulumi.Input<string>;
    /**
     * One or more `subnet` blocks as defined below. Changing this forces a new resource to be created.
     */
    subnets?: pulumi.Input<pulumi.Input<inputs.network.TrafficManagerNestedEndpointSubnet>[] | undefined>;
    /**
     * The resource id of an Azure resource to target.
     */
    targetResourceId: pulumi.Input<string>;
    /**
     * 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`.
     */
    weight?: pulumi.Input<number | undefined>;
}
//# sourceMappingURL=trafficManagerNestedEndpoint.d.ts.map