import * as pulumi from "@pulumi/pulumi";
import { input as inputs, output as outputs } from "../types";
/**
 * Manages an APIG custom authorizer resource within HuaweiCloud.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as pulumi from "@huaweicloudos/pulumi";
 *
 * const config = new pulumi.Config();
 * const instanceId = config.requireObject("instanceId");
 * const authorizerName = config.requireObject("authorizerName");
 * const functionUrn = config.requireObject("functionUrn");
 * const test = new huaweicloud.dedicatedapig.CustomAuthorizer("test", {
 *     instanceId: instanceId,
 *     functionUrn: functionUrn,
 *     functionVersion: "latest",
 *     type: "FRONTEND",
 *     cacheAge: 60,
 *     identities: [{
 *         name: "user_name",
 *         location: "QUERY",
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * Custom Authorizers of the APIG can be imported using their `name` and related dedicated instance IDs, separated by a slash, e.g.
 *
 * ```sh
 *  $ pulumi import huaweicloud:DedicatedApig/customAuthorizer:CustomAuthorizer test <instance_id>/<name>
 * ```
 */
export declare class CustomAuthorizer extends pulumi.CustomResource {
    /**
     * Get an existing CustomAuthorizer 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?: CustomAuthorizerState, opts?: pulumi.CustomResourceOptions): CustomAuthorizer;
    /**
     * Returns true if the given object is an instance of CustomAuthorizer.  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 CustomAuthorizer;
    /**
     * Specifies the maximum cache age.
     * The valid value is range from `1` to `3,600`.
     */
    readonly cacheAge: pulumi.Output<number | undefined>;
    /**
     * The creation time of the custom authorizer.
     */
    readonly createdAt: pulumi.Output<string>;
    /**
     * Specifies the version alias URI of the FGS function.
     */
    readonly functionAliasUri: pulumi.Output<string>;
    /**
     * Specifies the uniform function URN of the function graph resource.
     */
    readonly functionUrn: pulumi.Output<string>;
    /**
     * Specifies the version of the FGS function.
     */
    readonly functionVersion: pulumi.Output<string>;
    /**
     * Specifies an array of one or more parameter identities of the custom authorizer.
     * The object structure is documented below.
     */
    readonly identities: pulumi.Output<outputs.DedicatedApig.CustomAuthorizerIdentity[] | undefined>;
    /**
     * Specifies an ID of the APIG dedicated instance to which the
     * custom authorizer belongs to.
     * Changing this will create a new custom authorizer resource.
     */
    readonly instanceId: pulumi.Output<string>;
    /**
     * Specifies whether to send the body.
     */
    readonly isBodySend: pulumi.Output<boolean | undefined>;
    /**
     * Specifies the name of the parameter to be verified.
     * The parameter includes front-end and back-end parameters.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Specifies the framework type of the function.
     * + **V1**: Non-VPC network architecture.
     * + **V2**: VPC network architecture.
     */
    readonly networkType: pulumi.Output<string>;
    /**
     * Specifies the region in which to create the custom authorizer resource.
     * If omitted, the provider-level region will be used.
     * Changing this will create a new custom authorizer resource.
     */
    readonly region: pulumi.Output<string>;
    /**
     * Specifies the custom authorize type.
     * The valid values are **FRONTEND** and **BACKEND**. Defaults to **FRONTEND**.
     * Changing this will create a new custom authorizer resource.
     */
    readonly type: pulumi.Output<string | undefined>;
    /**
     * Specifies the user data, which can contain a maximum of `2,048` characters.
     * The user data is used by APIG to invoke the specified authentication function when accessing the backend service.
     */
    readonly userData: pulumi.Output<string | undefined>;
    /**
     * Create a CustomAuthorizer 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: CustomAuthorizerArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering CustomAuthorizer resources.
 */
export interface CustomAuthorizerState {
    /**
     * Specifies the maximum cache age.
     * The valid value is range from `1` to `3,600`.
     */
    cacheAge?: pulumi.Input<number>;
    /**
     * The creation time of the custom authorizer.
     */
    createdAt?: pulumi.Input<string>;
    /**
     * Specifies the version alias URI of the FGS function.
     */
    functionAliasUri?: pulumi.Input<string>;
    /**
     * Specifies the uniform function URN of the function graph resource.
     */
    functionUrn?: pulumi.Input<string>;
    /**
     * Specifies the version of the FGS function.
     */
    functionVersion?: pulumi.Input<string>;
    /**
     * Specifies an array of one or more parameter identities of the custom authorizer.
     * The object structure is documented below.
     */
    identities?: pulumi.Input<pulumi.Input<inputs.DedicatedApig.CustomAuthorizerIdentity>[]>;
    /**
     * Specifies an ID of the APIG dedicated instance to which the
     * custom authorizer belongs to.
     * Changing this will create a new custom authorizer resource.
     */
    instanceId?: pulumi.Input<string>;
    /**
     * Specifies whether to send the body.
     */
    isBodySend?: pulumi.Input<boolean>;
    /**
     * Specifies the name of the parameter to be verified.
     * The parameter includes front-end and back-end parameters.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the framework type of the function.
     * + **V1**: Non-VPC network architecture.
     * + **V2**: VPC network architecture.
     */
    networkType?: pulumi.Input<string>;
    /**
     * Specifies the region in which to create the custom authorizer resource.
     * If omitted, the provider-level region will be used.
     * Changing this will create a new custom authorizer resource.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies the custom authorize type.
     * The valid values are **FRONTEND** and **BACKEND**. Defaults to **FRONTEND**.
     * Changing this will create a new custom authorizer resource.
     */
    type?: pulumi.Input<string>;
    /**
     * Specifies the user data, which can contain a maximum of `2,048` characters.
     * The user data is used by APIG to invoke the specified authentication function when accessing the backend service.
     */
    userData?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a CustomAuthorizer resource.
 */
export interface CustomAuthorizerArgs {
    /**
     * Specifies the maximum cache age.
     * The valid value is range from `1` to `3,600`.
     */
    cacheAge?: pulumi.Input<number>;
    /**
     * Specifies the version alias URI of the FGS function.
     */
    functionAliasUri?: pulumi.Input<string>;
    /**
     * Specifies the uniform function URN of the function graph resource.
     */
    functionUrn: pulumi.Input<string>;
    /**
     * Specifies the version of the FGS function.
     */
    functionVersion?: pulumi.Input<string>;
    /**
     * Specifies an array of one or more parameter identities of the custom authorizer.
     * The object structure is documented below.
     */
    identities?: pulumi.Input<pulumi.Input<inputs.DedicatedApig.CustomAuthorizerIdentity>[]>;
    /**
     * Specifies an ID of the APIG dedicated instance to which the
     * custom authorizer belongs to.
     * Changing this will create a new custom authorizer resource.
     */
    instanceId: pulumi.Input<string>;
    /**
     * Specifies whether to send the body.
     */
    isBodySend?: pulumi.Input<boolean>;
    /**
     * Specifies the name of the parameter to be verified.
     * The parameter includes front-end and back-end parameters.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the framework type of the function.
     * + **V1**: Non-VPC network architecture.
     * + **V2**: VPC network architecture.
     */
    networkType?: pulumi.Input<string>;
    /**
     * Specifies the region in which to create the custom authorizer resource.
     * If omitted, the provider-level region will be used.
     * Changing this will create a new custom authorizer resource.
     */
    region?: pulumi.Input<string>;
    /**
     * Specifies the custom authorize type.
     * The valid values are **FRONTEND** and **BACKEND**. Defaults to **FRONTEND**.
     * Changing this will create a new custom authorizer resource.
     */
    type?: pulumi.Input<string>;
    /**
     * Specifies the user data, which can contain a maximum of `2,048` characters.
     * The user data is used by APIG to invoke the specified authentication function when accessing the backend service.
     */
    userData?: pulumi.Input<string>;
}
