import * as pulumi from "@pulumi/pulumi";
import * as outputs from "./types/output";
/**
 * A Resource is a database, server, cluster, website, or cloud that strongDM
 *  delegates access to.
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as sdm from "@pierskarsenbarg/sdm";
 *
 * const mysqlDatasources = sdm.getResource({
 *     name: "us-west*",
 *     tags: {
 *         env: "dev",
 *         region: "us-west",
 *     },
 *     type: "mysql",
 * });
 * ```
 */
export declare function getResource(args?: GetResourceArgs, opts?: pulumi.InvokeOptions): Promise<GetResourceResult>;
/**
 * A collection of arguments for invoking getResource.
 */
export interface GetResourceArgs {
    /**
     * The host to dial to initiate a connection from the egress node to this resource.
     */
    hostname?: string;
    /**
     * Unique identifier of the Resource.
     */
    id?: string;
    /**
     * Unique human-readable name of the Resource.
     */
    name?: string;
    /**
     * The port to dial to initiate a connection from the egress node to this resource.
     */
    port?: number;
    /**
     * Tags is a map of key, value pairs.
     */
    tags?: {
        [key: string]: string;
    };
    /**
     * a filter to select all items of a certain subtype. See the [filter documentation](https://www.strongdm.com/docs/cli/filters/) for more information.
     */
    type?: string;
    /**
     * The username to authenticate with.
     */
    username?: string;
}
/**
 * A collection of values returned by getResource.
 */
export interface GetResourceResult {
    /**
     * The host to dial to initiate a connection from the egress node to this resource.
     */
    readonly hostname?: string;
    /**
     * Unique identifier of the Resource.
     */
    readonly id?: string;
    /**
     * a list of strings of ids of data sources that match the given arguments.
     */
    readonly ids: string[];
    /**
     * Unique human-readable name of the Resource.
     */
    readonly name?: string;
    /**
     * The port to dial to initiate a connection from the egress node to this resource.
     */
    readonly port?: number;
    /**
     * A single element list containing a map, where each key lists one of the following objects:
     * * aerospike:
     */
    readonly resources: outputs.GetResourceResource[];
    /**
     * Tags is a map of key, value pairs.
     */
    readonly tags?: {
        [key: string]: string;
    };
    readonly type?: string;
    /**
     * The username to authenticate with.
     */
    readonly username?: string;
}
/**
 * A Resource is a database, server, cluster, website, or cloud that strongDM
 *  delegates access to.
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as sdm from "@pierskarsenbarg/sdm";
 *
 * const mysqlDatasources = sdm.getResource({
 *     name: "us-west*",
 *     tags: {
 *         env: "dev",
 *         region: "us-west",
 *     },
 *     type: "mysql",
 * });
 * ```
 */
export declare function getResourceOutput(args?: GetResourceOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetResourceResult>;
/**
 * A collection of arguments for invoking getResource.
 */
export interface GetResourceOutputArgs {
    /**
     * The host to dial to initiate a connection from the egress node to this resource.
     */
    hostname?: pulumi.Input<string>;
    /**
     * Unique identifier of the Resource.
     */
    id?: pulumi.Input<string>;
    /**
     * Unique human-readable name of the Resource.
     */
    name?: pulumi.Input<string>;
    /**
     * The port to dial to initiate a connection from the egress node to this resource.
     */
    port?: pulumi.Input<number>;
    /**
     * Tags is a map of key, value pairs.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * a filter to select all items of a certain subtype. See the [filter documentation](https://www.strongdm.com/docs/cli/filters/) for more information.
     */
    type?: pulumi.Input<string>;
    /**
     * The username to authenticate with.
     */
    username?: pulumi.Input<string>;
}
