import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Backend Set resource in Oracle Cloud Infrastructure Network Load Balancer service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/networkloadbalancer/latest/BackendSet
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/network_load_balancer
 *
 * Adds a backend set to a network load balancer.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testBackendSet = new oci.networkloadbalancer.BackendSet("test_backend_set", {
 *     healthChecker: {
 *         protocol: backendSetHealthCheckerProtocol,
 *         dns: {
 *             domainName: testDomain.name,
 *             queryClass: backendSetHealthCheckerDnsQueryClass,
 *             queryType: backendSetHealthCheckerDnsQueryType,
 *             rcodes: backendSetHealthCheckerDnsRcodes,
 *             transportProtocol: backendSetHealthCheckerDnsTransportProtocol,
 *         },
 *         intervalInMillis: Number(backendSetHealthCheckerIntervalInMillis),
 *         port: Number(backendSetHealthCheckerPort),
 *         requestData: backendSetHealthCheckerRequestData,
 *         responseBodyRegex: backendSetHealthCheckerResponseBodyRegex,
 *         responseData: backendSetHealthCheckerResponseData,
 *         retries: Number(backendSetHealthCheckerRetries),
 *         returnCode: Number(backendSetHealthCheckerReturnCode),
 *         timeoutInMillis: Number(backendSetHealthCheckerTimeoutInMillis),
 *         urlPath: backendSetHealthCheckerUrlPath,
 *     },
 *     name: backendSetName,
 *     networkLoadBalancerId: testNetworkLoadBalancer.id,
 *     policy: backendSetPolicy,
 *     areOperationallyActiveBackendsPreferred: backendSetAreOperationallyActiveBackendsPreferred === "true",
 *     ipVersion: backendSetIpVersion,
 *     isFailOpen: backendSetIsFailOpen === "true",
 *     isInstantFailoverEnabled: backendSetIsInstantFailoverEnabled === "true",
 *     isInstantFailoverTcpResetEnabled: backendSetIsInstantFailoverTcpResetEnabled === "true",
 *     isPreserveSource: backendSetIsPreserveSource === "true",
 * });
 * ```
 *
 * ## Import
 *
 * BackendSets can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:NetworkLoadBalancer/backendSet:BackendSet test_backend_set "networkLoadBalancers/{networkLoadBalancerId}/backendSets/{backendSetName}"
 * ```
 */
export declare class BackendSet extends pulumi.CustomResource {
    /**
     * Get an existing BackendSet 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?: BackendSetState, opts?: pulumi.CustomResourceOptions): BackendSet;
    /**
     * Returns true if the given object is an instance of BackendSet.  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 BackendSet;
    /**
     * (Updatable) If enabled, NLB supports active-standby backends, with the initial standby being the configured backup backend. The standby backend becomes active and takes over serving traffic when the current active backend becomes unhealthy.   The new active backend continues to serve the traffic while healthy even when the old active backend becomes healthy.
     */
    readonly areOperationallyActiveBackendsPreferred: pulumi.Output<boolean>;
    /**
     * (Updatable) An array of backends to be associated with the backend set.
     */
    readonly backends: pulumi.Output<outputs.NetworkLoadBalancer.BackendSetBackend[]>;
    /**
     * (Updatable) The health check policy configuration. For more information, see [Editing Network Load Balancer Health Check Policies](https://docs.cloud.oracle.com/iaas/Content/NetworkLoadBalancer/HealthCheckPolicies/update-health-check-policy.htm).
     */
    readonly healthChecker: pulumi.Output<outputs.NetworkLoadBalancer.BackendSetHealthChecker>;
    /**
     * (Updatable) IP version associated with the backend set.
     */
    readonly ipVersion: pulumi.Output<string>;
    /**
     * (Updatable) If enabled, the network load balancer will continue to distribute traffic in the configured distribution in the event all backends are unhealthy. The value is false by default.
     */
    readonly isFailOpen: pulumi.Output<boolean>;
    /**
     * (Updatable) If enabled existing connections will be forwarded to an alternative healthy backend as soon as current backend becomes unhealthy.
     */
    readonly isInstantFailoverEnabled: pulumi.Output<boolean>;
    /**
     * (Updatable) This only applies when using instant failover. If enabled, the network load balancer will send TCP RST to clients when a backend becomes unhealthy and the traffic is moved to a healthy backend.  If disabled, the network load balancer will not send TCP RST before moving traffic to a healthy backend.  By default, TCP RST is enabled.
     */
    readonly isInstantFailoverTcpResetEnabled: pulumi.Output<boolean>;
    /**
     * (Updatable) If this parameter is enabled, then the network load balancer preserves the source IP of the packet when it is forwarded to backends. Backends see the original source IP. If the isPreserveSourceDestination parameter is enabled for the network load balancer resource, then this parameter cannot be disabled. The value is true by default.
     */
    readonly isPreserveSource: pulumi.Output<boolean>;
    /**
     * A user-friendly name for the backend set that must be unique and cannot be changed.
     *
     * Valid backend set names include only alphanumeric characters, dashes, and underscores. Backend set names cannot contain spaces. Avoid entering confidential information.
     *
     * Example: `exampleBackendSet`
     */
    readonly name: pulumi.Output<string>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the network load balancer to update.
     */
    readonly networkLoadBalancerId: pulumi.Output<string>;
    /**
     * (Updatable) The network load balancer policy for the backend set.  Example: `FIVE_TUPLE``
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly policy: pulumi.Output<string>;
    /**
     * Create a BackendSet 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: BackendSetArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering BackendSet resources.
 */
export interface BackendSetState {
    /**
     * (Updatable) If enabled, NLB supports active-standby backends, with the initial standby being the configured backup backend. The standby backend becomes active and takes over serving traffic when the current active backend becomes unhealthy.   The new active backend continues to serve the traffic while healthy even when the old active backend becomes healthy.
     */
    areOperationallyActiveBackendsPreferred?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) An array of backends to be associated with the backend set.
     */
    backends?: pulumi.Input<pulumi.Input<inputs.NetworkLoadBalancer.BackendSetBackend>[] | undefined>;
    /**
     * (Updatable) The health check policy configuration. For more information, see [Editing Network Load Balancer Health Check Policies](https://docs.cloud.oracle.com/iaas/Content/NetworkLoadBalancer/HealthCheckPolicies/update-health-check-policy.htm).
     */
    healthChecker?: pulumi.Input<inputs.NetworkLoadBalancer.BackendSetHealthChecker | undefined>;
    /**
     * (Updatable) IP version associated with the backend set.
     */
    ipVersion?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) If enabled, the network load balancer will continue to distribute traffic in the configured distribution in the event all backends are unhealthy. The value is false by default.
     */
    isFailOpen?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) If enabled existing connections will be forwarded to an alternative healthy backend as soon as current backend becomes unhealthy.
     */
    isInstantFailoverEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) This only applies when using instant failover. If enabled, the network load balancer will send TCP RST to clients when a backend becomes unhealthy and the traffic is moved to a healthy backend.  If disabled, the network load balancer will not send TCP RST before moving traffic to a healthy backend.  By default, TCP RST is enabled.
     */
    isInstantFailoverTcpResetEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) If this parameter is enabled, then the network load balancer preserves the source IP of the packet when it is forwarded to backends. Backends see the original source IP. If the isPreserveSourceDestination parameter is enabled for the network load balancer resource, then this parameter cannot be disabled. The value is true by default.
     */
    isPreserveSource?: pulumi.Input<boolean | undefined>;
    /**
     * A user-friendly name for the backend set that must be unique and cannot be changed.
     *
     * Valid backend set names include only alphanumeric characters, dashes, and underscores. Backend set names cannot contain spaces. Avoid entering confidential information.
     *
     * Example: `exampleBackendSet`
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the network load balancer to update.
     */
    networkLoadBalancerId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) The network load balancer policy for the backend set.  Example: `FIVE_TUPLE``
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    policy?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a BackendSet resource.
 */
export interface BackendSetArgs {
    /**
     * (Updatable) If enabled, NLB supports active-standby backends, with the initial standby being the configured backup backend. The standby backend becomes active and takes over serving traffic when the current active backend becomes unhealthy.   The new active backend continues to serve the traffic while healthy even when the old active backend becomes healthy.
     */
    areOperationallyActiveBackendsPreferred?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) The health check policy configuration. For more information, see [Editing Network Load Balancer Health Check Policies](https://docs.cloud.oracle.com/iaas/Content/NetworkLoadBalancer/HealthCheckPolicies/update-health-check-policy.htm).
     */
    healthChecker: pulumi.Input<inputs.NetworkLoadBalancer.BackendSetHealthChecker>;
    /**
     * (Updatable) IP version associated with the backend set.
     */
    ipVersion?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) If enabled, the network load balancer will continue to distribute traffic in the configured distribution in the event all backends are unhealthy. The value is false by default.
     */
    isFailOpen?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) If enabled existing connections will be forwarded to an alternative healthy backend as soon as current backend becomes unhealthy.
     */
    isInstantFailoverEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) This only applies when using instant failover. If enabled, the network load balancer will send TCP RST to clients when a backend becomes unhealthy and the traffic is moved to a healthy backend.  If disabled, the network load balancer will not send TCP RST before moving traffic to a healthy backend.  By default, TCP RST is enabled.
     */
    isInstantFailoverTcpResetEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) If this parameter is enabled, then the network load balancer preserves the source IP of the packet when it is forwarded to backends. Backends see the original source IP. If the isPreserveSourceDestination parameter is enabled for the network load balancer resource, then this parameter cannot be disabled. The value is true by default.
     */
    isPreserveSource?: pulumi.Input<boolean | undefined>;
    /**
     * A user-friendly name for the backend set that must be unique and cannot be changed.
     *
     * Valid backend set names include only alphanumeric characters, dashes, and underscores. Backend set names cannot contain spaces. Avoid entering confidential information.
     *
     * Example: `exampleBackendSet`
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the network load balancer to update.
     */
    networkLoadBalancerId: pulumi.Input<string>;
    /**
     * (Updatable) The network load balancer policy for the backend set.  Example: `FIVE_TUPLE``
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    policy: pulumi.Input<string>;
}
//# sourceMappingURL=backendSet.d.ts.map