import * as pulumi from "@pulumi/pulumi";
import * as outputs from "./types/output";
/**
 * Use this data source to access information about a [Location](https://docs.controlplane.com/reference/location) within Control Plane.
 *
 * ## Required
 *
 * - **name** (String) Name of the location (i.e. `aws-us-west-2`).
 *
 * ## Outputs
 *
 * The following attributes are exported:
 *
 * - **cpln_id** (String) The ID, in GUID format, of the location.
 * - **name** (String) Name of the location.
 * - **description** (String) Description of the location.
 * - **tags** (Map of String) Key-value map of resource tags.
 * - **cloud_provider** (String) Cloud Provider of the location.
 * - **region** (String) Region of the location.
 * - **enabled** (Boolean) Indication if location is enabled.
 * - **geo** (Block List, Max: 1) (see below)
 * - **ip_ranges** (List of String) A list of IP ranges of the location.
 * - **self_link** (String) Full link to this resource. Can be referenced by other resources.
 *
 * <a id="nestedblock--geo"></a>
 *
 * ### `geo`
 *
 * Location geographical details
 *
 * - **lat** (Number) Latitude.
 * - **lon** (Number) Longitude.
 * - **country** (String) Country.
 * - **state** (String) State.
 * - **city** (String) City.
 * - **continent** (String) Continent.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as cpln from "@pulumiverse/cpln";
 *
 * export = async () => {
 *     const location = await cpln.getLocation({
 *         name: "aws-us-west-2",
 *     });
 *     return {
 *         location: location,
 *         locationEnabled: location.enabled,
 *     };
 * }
 * ```
 */
export declare function getLocation(args: GetLocationArgs, opts?: pulumi.InvokeOptions): Promise<GetLocationResult>;
/**
 * A collection of arguments for invoking getLocation.
 */
export interface GetLocationArgs {
    name: string;
    tags?: {
        [key: string]: string;
    };
}
/**
 * A collection of values returned by getLocation.
 */
export interface GetLocationResult {
    readonly cloudProvider: string;
    readonly cplnId: string;
    readonly description: string;
    readonly enabled: boolean;
    readonly geos: outputs.GetLocationGeo[];
    readonly id: string;
    readonly ipRanges: string[];
    readonly name: string;
    readonly region: string;
    readonly selfLink: string;
    readonly tags: {
        [key: string]: string;
    };
}
/**
 * Use this data source to access information about a [Location](https://docs.controlplane.com/reference/location) within Control Plane.
 *
 * ## Required
 *
 * - **name** (String) Name of the location (i.e. `aws-us-west-2`).
 *
 * ## Outputs
 *
 * The following attributes are exported:
 *
 * - **cpln_id** (String) The ID, in GUID format, of the location.
 * - **name** (String) Name of the location.
 * - **description** (String) Description of the location.
 * - **tags** (Map of String) Key-value map of resource tags.
 * - **cloud_provider** (String) Cloud Provider of the location.
 * - **region** (String) Region of the location.
 * - **enabled** (Boolean) Indication if location is enabled.
 * - **geo** (Block List, Max: 1) (see below)
 * - **ip_ranges** (List of String) A list of IP ranges of the location.
 * - **self_link** (String) Full link to this resource. Can be referenced by other resources.
 *
 * <a id="nestedblock--geo"></a>
 *
 * ### `geo`
 *
 * Location geographical details
 *
 * - **lat** (Number) Latitude.
 * - **lon** (Number) Longitude.
 * - **country** (String) Country.
 * - **state** (String) State.
 * - **city** (String) City.
 * - **continent** (String) Continent.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as cpln from "@pulumiverse/cpln";
 *
 * export = async () => {
 *     const location = await cpln.getLocation({
 *         name: "aws-us-west-2",
 *     });
 *     return {
 *         location: location,
 *         locationEnabled: location.enabled,
 *     };
 * }
 * ```
 */
export declare function getLocationOutput(args: GetLocationOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetLocationResult>;
/**
 * A collection of arguments for invoking getLocation.
 */
export interface GetLocationOutputArgs {
    name: pulumi.Input<string>;
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
}
