import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a backend within an API Management Service.
 *
 * ## 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 exampleService = new azure.apimanagement.Service("example", {
 *     name: "example-apim",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     publisherName: "My Company",
 *     publisherEmail: "company@exmaple.com",
 *     skuName: "Developer_1",
 * });
 * const exampleBackend = new azure.apimanagement.Backend("example", {
 *     name: "example-backend",
 *     resourceGroupName: example.name,
 *     apiManagementName: exampleService.name,
 *     protocol: "http",
 *     url: "https://backend.com/api",
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.ApiManagement` - 2024-05-01
 *
 * ## Import
 *
 * API Management backends can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:apimanagement/backend:Backend example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/backends/backend1
 * ```
 */
export declare class Backend extends pulumi.CustomResource {
    /**
     * Get an existing Backend 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?: BackendState, opts?: pulumi.CustomResourceOptions): Backend;
    /**
     * Returns true if the given object is an instance of Backend.  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 Backend;
    /**
     * The Name of the API Management Service where this backend should be created. Changing this forces a new resource to be created.
     */
    readonly apiManagementName: pulumi.Output<string>;
    /**
     * A `circuitBreakerRule` block as documented below.
     */
    readonly circuitBreakerRule: pulumi.Output<outputs.apimanagement.BackendCircuitBreakerRule | undefined>;
    /**
     * A `credentials` block as documented below.
     */
    readonly credentials: pulumi.Output<outputs.apimanagement.BackendCredentials | undefined>;
    /**
     * The description of the backend.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * The name of the API Management backend. Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The protocol used by the backend host. Possible values are `http` or `soap`.
     */
    readonly protocol: pulumi.Output<string>;
    /**
     * A `proxy` block as documented below.
     */
    readonly proxy: pulumi.Output<outputs.apimanagement.BackendProxy | undefined>;
    /**
     * The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.
     */
    readonly resourceGroupName: pulumi.Output<string>;
    /**
     * The management URI of the backend host in an external system. This URI can be the ARM Resource ID of Logic Apps, Function Apps or API Apps, or the management endpoint of a Service Fabric cluster.
     */
    readonly resourceId: pulumi.Output<string | undefined>;
    /**
     * A `serviceFabricCluster` block as documented below.
     */
    readonly serviceFabricCluster: pulumi.Output<outputs.apimanagement.BackendServiceFabricCluster | undefined>;
    /**
     * The title of the backend.
     */
    readonly title: pulumi.Output<string | undefined>;
    /**
     * A `tls` block as documented below.
     */
    readonly tls: pulumi.Output<outputs.apimanagement.BackendTls | undefined>;
    /**
     * The backend host URL should be specified in the format `"https://backend.com/api"`, avoiding trailing slashes (/) to minimize misconfiguration risks. Azure API Management instance will append the backend resource name to this URL. This URL typically serves as the `base-url` in the [`set-backend-service`](https://learn.microsoft.com/azure/api-management/set-backend-service-policy) policy, enabling seamless transitions from frontend to backend.
     */
    readonly url: pulumi.Output<string>;
    /**
     * Create a Backend 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: BackendArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Backend resources.
 */
export interface BackendState {
    /**
     * The Name of the API Management Service where this backend should be created. Changing this forces a new resource to be created.
     */
    apiManagementName?: pulumi.Input<string | undefined>;
    /**
     * A `circuitBreakerRule` block as documented below.
     */
    circuitBreakerRule?: pulumi.Input<inputs.apimanagement.BackendCircuitBreakerRule | undefined>;
    /**
     * A `credentials` block as documented below.
     */
    credentials?: pulumi.Input<inputs.apimanagement.BackendCredentials | undefined>;
    /**
     * The description of the backend.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * The name of the API Management backend. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The protocol used by the backend host. Possible values are `http` or `soap`.
     */
    protocol?: pulumi.Input<string | undefined>;
    /**
     * A `proxy` block as documented below.
     */
    proxy?: pulumi.Input<inputs.apimanagement.BackendProxy | undefined>;
    /**
     * The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.
     */
    resourceGroupName?: pulumi.Input<string | undefined>;
    /**
     * The management URI of the backend host in an external system. This URI can be the ARM Resource ID of Logic Apps, Function Apps or API Apps, or the management endpoint of a Service Fabric cluster.
     */
    resourceId?: pulumi.Input<string | undefined>;
    /**
     * A `serviceFabricCluster` block as documented below.
     */
    serviceFabricCluster?: pulumi.Input<inputs.apimanagement.BackendServiceFabricCluster | undefined>;
    /**
     * The title of the backend.
     */
    title?: pulumi.Input<string | undefined>;
    /**
     * A `tls` block as documented below.
     */
    tls?: pulumi.Input<inputs.apimanagement.BackendTls | undefined>;
    /**
     * The backend host URL should be specified in the format `"https://backend.com/api"`, avoiding trailing slashes (/) to minimize misconfiguration risks. Azure API Management instance will append the backend resource name to this URL. This URL typically serves as the `base-url` in the [`set-backend-service`](https://learn.microsoft.com/azure/api-management/set-backend-service-policy) policy, enabling seamless transitions from frontend to backend.
     */
    url?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Backend resource.
 */
export interface BackendArgs {
    /**
     * The Name of the API Management Service where this backend should be created. Changing this forces a new resource to be created.
     */
    apiManagementName: pulumi.Input<string>;
    /**
     * A `circuitBreakerRule` block as documented below.
     */
    circuitBreakerRule?: pulumi.Input<inputs.apimanagement.BackendCircuitBreakerRule | undefined>;
    /**
     * A `credentials` block as documented below.
     */
    credentials?: pulumi.Input<inputs.apimanagement.BackendCredentials | undefined>;
    /**
     * The description of the backend.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * The name of the API Management backend. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The protocol used by the backend host. Possible values are `http` or `soap`.
     */
    protocol: pulumi.Input<string>;
    /**
     * A `proxy` block as documented below.
     */
    proxy?: pulumi.Input<inputs.apimanagement.BackendProxy | undefined>;
    /**
     * The Name of the Resource Group where the API Management Service exists. Changing this forces a new resource to be created.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * The management URI of the backend host in an external system. This URI can be the ARM Resource ID of Logic Apps, Function Apps or API Apps, or the management endpoint of a Service Fabric cluster.
     */
    resourceId?: pulumi.Input<string | undefined>;
    /**
     * A `serviceFabricCluster` block as documented below.
     */
    serviceFabricCluster?: pulumi.Input<inputs.apimanagement.BackendServiceFabricCluster | undefined>;
    /**
     * The title of the backend.
     */
    title?: pulumi.Input<string | undefined>;
    /**
     * A `tls` block as documented below.
     */
    tls?: pulumi.Input<inputs.apimanagement.BackendTls | undefined>;
    /**
     * The backend host URL should be specified in the format `"https://backend.com/api"`, avoiding trailing slashes (/) to minimize misconfiguration risks. Azure API Management instance will append the backend resource name to this URL. This URL typically serves as the `base-url` in the [`set-backend-service`](https://learn.microsoft.com/azure/api-management/set-backend-service-policy) policy, enabling seamless transitions from frontend to backend.
     */
    url: pulumi.Input<string>;
}
//# sourceMappingURL=backend.d.ts.map