import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a Linked Service (connection) between an Azure Function and Azure Data Factory.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const exampleResourceGroup = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const example = azure.appservice.getFunctionAppOutput({
 *     name: "test-azure-functions",
 *     resourceGroupName: exampleResourceGroup.name,
 * });
 * const exampleFactory = new azure.datafactory.Factory("example", {
 *     name: "example",
 *     location: exampleResourceGroup.location,
 *     resourceGroupName: exampleResourceGroup.name,
 * });
 * const exampleLinkedServiceAzureFunction = new azure.datafactory.LinkedServiceAzureFunction("example", {
 *     name: "example",
 *     dataFactoryId: exampleFactory.id,
 *     url: example.apply(example => `https://${example.defaultHostname}`),
 *     key: "foo",
 * });
 * ```
 *
 * ## Import
 *
 * Data Factory Linked Service's can be imported using the `resource id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:datafactory/linkedServiceAzureFunction:LinkedServiceAzureFunction example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/linkedservices/example
 * ```
 */
export declare class LinkedServiceAzureFunction extends pulumi.CustomResource {
    /**
     * Get an existing LinkedServiceAzureFunction 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?: LinkedServiceAzureFunctionState, opts?: pulumi.CustomResourceOptions): LinkedServiceAzureFunction;
    /**
     * Returns true if the given object is an instance of LinkedServiceAzureFunction.  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 LinkedServiceAzureFunction;
    /**
     * A map of additional properties to associate with the Data Factory Linked Service.
     *
     * The following supported arguments are specific to Azure Function Linked Service:
     */
    readonly additionalProperties: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * List of tags that can be used for describing the Data Factory Linked Service.
     */
    readonly annotations: pulumi.Output<string[] | undefined>;
    /**
     * The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.
     */
    readonly dataFactoryId: pulumi.Output<string>;
    /**
     * The description for the Data Factory Linked Service.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * The integration runtime reference to associate with the Data Factory Linked Service.
     */
    readonly integrationRuntimeName: pulumi.Output<string | undefined>;
    /**
     * The system key of the Azure Function. Exactly one of either `key` or `keyVaultKey` is required
     */
    readonly key: pulumi.Output<string | undefined>;
    /**
     * A `keyVaultKey` block as defined below. Use this Argument to store the system key of the Azure Function in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `key` or `keyVaultKey` is required.
     */
    readonly keyVaultKey: pulumi.Output<outputs.datafactory.LinkedServiceAzureFunctionKeyVaultKey | undefined>;
    /**
     * Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/azure/data-factory/naming-rules) for all restrictions.
     */
    readonly name: pulumi.Output<string>;
    /**
     * A map of parameters to associate with the Data Factory Linked Service.
     */
    readonly parameters: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * The url of the Azure Function.
     */
    readonly url: pulumi.Output<string>;
    /**
     * Create a LinkedServiceAzureFunction 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: LinkedServiceAzureFunctionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering LinkedServiceAzureFunction resources.
 */
export interface LinkedServiceAzureFunctionState {
    /**
     * A map of additional properties to associate with the Data Factory Linked Service.
     *
     * The following supported arguments are specific to Azure Function Linked Service:
     */
    additionalProperties?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * List of tags that can be used for describing the Data Factory Linked Service.
     */
    annotations?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.
     */
    dataFactoryId?: pulumi.Input<string | undefined>;
    /**
     * The description for the Data Factory Linked Service.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * The integration runtime reference to associate with the Data Factory Linked Service.
     */
    integrationRuntimeName?: pulumi.Input<string | undefined>;
    /**
     * The system key of the Azure Function. Exactly one of either `key` or `keyVaultKey` is required
     */
    key?: pulumi.Input<string | undefined>;
    /**
     * A `keyVaultKey` block as defined below. Use this Argument to store the system key of the Azure Function in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `key` or `keyVaultKey` is required.
     */
    keyVaultKey?: pulumi.Input<inputs.datafactory.LinkedServiceAzureFunctionKeyVaultKey | undefined>;
    /**
     * Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/azure/data-factory/naming-rules) for all restrictions.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * A map of parameters to associate with the Data Factory Linked Service.
     */
    parameters?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The url of the Azure Function.
     */
    url?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a LinkedServiceAzureFunction resource.
 */
export interface LinkedServiceAzureFunctionArgs {
    /**
     * A map of additional properties to associate with the Data Factory Linked Service.
     *
     * The following supported arguments are specific to Azure Function Linked Service:
     */
    additionalProperties?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * List of tags that can be used for describing the Data Factory Linked Service.
     */
    annotations?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource.
     */
    dataFactoryId: pulumi.Input<string>;
    /**
     * The description for the Data Factory Linked Service.
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * The integration runtime reference to associate with the Data Factory Linked Service.
     */
    integrationRuntimeName?: pulumi.Input<string | undefined>;
    /**
     * The system key of the Azure Function. Exactly one of either `key` or `keyVaultKey` is required
     */
    key?: pulumi.Input<string | undefined>;
    /**
     * A `keyVaultKey` block as defined below. Use this Argument to store the system key of the Azure Function in an existing Key Vault. It needs an existing Key Vault Data Factory Linked Service. Exactly one of either `key` or `keyVaultKey` is required.
     */
    keyVaultKey?: pulumi.Input<inputs.datafactory.LinkedServiceAzureFunctionKeyVaultKey | undefined>;
    /**
     * Specifies the name of the Data Factory Linked Service. Changing this forces a new resource to be created. Must be unique within a data factory. See the [Microsoft documentation](https://docs.microsoft.com/azure/data-factory/naming-rules) for all restrictions.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * A map of parameters to associate with the Data Factory Linked Service.
     */
    parameters?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * The url of the Azure Function.
     */
    url: pulumi.Input<string>;
}
//# sourceMappingURL=linkedServiceAzureFunction.d.ts.map