import * as pulumi from "@pulumi/pulumi";
/**
 * The provider type for the equinix package. By default, resources use package-wide configuration
 * settings, however an explicit `Provider` instance may be created and passed during resource
 * construction to achieve fine-grained programmatic control over provider settings. See the
 * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
 */
export declare class Provider extends pulumi.ProviderResource {
    /**
     * Returns true if the given object is an instance of Provider.  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 Provider;
    /**
     * The Equinix Metal API auth key for API operations
     */
    readonly authToken: pulumi.Output<string | undefined>;
    /**
     * API Consumer Key available under "My Apps" in developer portal. This argument can also be specified with the
     * `EQUINIX_API_CLIENTID` shell environment variable.
     */
    readonly clientId: pulumi.Output<string | undefined>;
    /**
     * API Consumer secret available under "My Apps" in developer portal. This argument can also be specified with the
     * `EQUINIX_API_CLIENTSECRET` shell environment variable.
     */
    readonly clientSecret: pulumi.Output<string | undefined>;
    /**
     * The Equinix API base URL to point out desired environment. This argument can also be specified with the
     * `EQUINIX_API_ENDPOINT` shell environment variable. (Defaults to `https://api.equinix.com`)
     */
    readonly endpoint: pulumi.Output<string | undefined>;
    /**
     * API tokens are generated from API Consumer clients using the [OAuth2
     * API](https://developer.equinix.com/dev-docs/fabric/getting-started/getting-access-token#request-access-and-refresh-tokens).
     * This argument can also be specified with the `EQUINIX_API_TOKEN` shell environment variable.
     */
    readonly token: pulumi.Output<string | undefined>;
    /**
     * Create a Provider 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?: ProviderArgs, opts?: pulumi.ResourceOptions);
}
/**
 * The set of arguments for constructing a Provider resource.
 */
export interface ProviderArgs {
    /**
     * The Equinix Metal API auth key for API operations
     */
    authToken?: pulumi.Input<string>;
    /**
     * API Consumer Key available under "My Apps" in developer portal. This argument can also be specified with the
     * `EQUINIX_API_CLIENTID` shell environment variable.
     */
    clientId?: pulumi.Input<string>;
    /**
     * API Consumer secret available under "My Apps" in developer portal. This argument can also be specified with the
     * `EQUINIX_API_CLIENTSECRET` shell environment variable.
     */
    clientSecret?: pulumi.Input<string>;
    /**
     * The Equinix API base URL to point out desired environment. This argument can also be specified with the
     * `EQUINIX_API_ENDPOINT` shell environment variable. (Defaults to `https://api.equinix.com`)
     */
    endpoint?: pulumi.Input<string>;
    /**
     * Maximum number of retries in case of network failure.
     */
    maxRetries?: pulumi.Input<number>;
    /**
     * Maximum number of seconds to wait before retrying a request.
     */
    maxRetryWaitSeconds?: pulumi.Input<number>;
    /**
     * The duration of time, in seconds, that the Equinix Platform API Client should wait before canceling an API request.
     * Canceled requests may still result in provisioned resources. (Defaults to `30`)
     */
    requestTimeout?: pulumi.Input<number>;
    /**
     * The maximum number of records in a single response for REST queries that produce paginated responses. (Default is client
     * specific)
     */
    responseMaxPageSize?: pulumi.Input<number>;
    /**
     * API tokens are generated from API Consumer clients using the [OAuth2
     * API](https://developer.equinix.com/dev-docs/fabric/getting-started/getting-access-token#request-access-and-refresh-tokens).
     * This argument can also be specified with the `EQUINIX_API_TOKEN` shell environment variable.
     */
    token?: pulumi.Input<string>;
}
