import * as pulumi from "@pulumi/pulumi";
import * as outputs from "./types/output";
/**
 * Nodes make up the strongDM network, and allow your users to connect securely to your resources.
 *  There are two types of nodes:
 *  1. **Relay:** creates connectivity to your datasources, while maintaining the egress-only nature of your firewall
 *  2. **Gateways:** a relay that also listens for connections from strongDM clients
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as sdm from "@pierskarsenbarg/sdm";
 *
 * const gatewayQuery = sdm.getNode({
 *     tags: {
 *         env: "dev",
 *         region: "us-west",
 *     },
 *     type: "gateway",
 * });
 * ```
 */
export declare function getNode(args?: GetNodeArgs, opts?: pulumi.InvokeOptions): Promise<GetNodeResult>;
/**
 * A collection of arguments for invoking getNode.
 */
export interface GetNodeArgs {
    /**
     * The hostname/port tuple which the gateway daemon will bind to. If not provided on create, set to "0.0.0.0:listen_address_port".
     */
    bindAddress?: string;
    /**
     * Unique identifier of the Relay.
     */
    id?: string;
    /**
     * The public hostname/port tuple at which the gateway will be accessible to clients.
     */
    listenAddress?: string;
    /**
     * Unique human-readable name of the Relay. Node names must include only letters, numbers, and hyphens (no spaces, underscores, or other special characters). Generated if not provided on create.
     */
    name?: string;
    /**
     * 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;
}
/**
 * A collection of values returned by getNode.
 */
export interface GetNodeResult {
    /**
     * The hostname/port tuple which the gateway daemon will bind to. If not provided on create, set to "0.0.0.0:listen_address_port".
     */
    readonly bindAddress?: string;
    /**
     * Unique identifier of the Relay.
     */
    readonly id?: string;
    /**
     * a list of strings of ids of data sources that match the given arguments.
     */
    readonly ids: string[];
    /**
     * The public hostname/port tuple at which the gateway will be accessible to clients.
     */
    readonly listenAddress?: string;
    /**
     * Unique human-readable name of the Relay. Node names must include only letters, numbers, and hyphens (no spaces, underscores, or other special characters). Generated if not provided on create.
     */
    readonly name?: string;
    /**
     * A single element list containing a map, where each key lists one of the following objects:
     * * gateway:
     */
    readonly nodes: outputs.GetNodeNode[];
    /**
     * Tags is a map of key, value pairs.
     */
    readonly tags?: {
        [key: string]: string;
    };
    readonly type?: string;
}
/**
 * Nodes make up the strongDM network, and allow your users to connect securely to your resources.
 *  There are two types of nodes:
 *  1. **Relay:** creates connectivity to your datasources, while maintaining the egress-only nature of your firewall
 *  2. **Gateways:** a relay that also listens for connections from strongDM clients
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as sdm from "@pierskarsenbarg/sdm";
 *
 * const gatewayQuery = sdm.getNode({
 *     tags: {
 *         env: "dev",
 *         region: "us-west",
 *     },
 *     type: "gateway",
 * });
 * ```
 */
export declare function getNodeOutput(args?: GetNodeOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetNodeResult>;
/**
 * A collection of arguments for invoking getNode.
 */
export interface GetNodeOutputArgs {
    /**
     * The hostname/port tuple which the gateway daemon will bind to. If not provided on create, set to "0.0.0.0:listen_address_port".
     */
    bindAddress?: pulumi.Input<string>;
    /**
     * Unique identifier of the Relay.
     */
    id?: pulumi.Input<string>;
    /**
     * The public hostname/port tuple at which the gateway will be accessible to clients.
     */
    listenAddress?: pulumi.Input<string>;
    /**
     * Unique human-readable name of the Relay. Node names must include only letters, numbers, and hyphens (no spaces, underscores, or other special characters). Generated if not provided on create.
     */
    name?: pulumi.Input<string>;
    /**
     * 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>;
}
