import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * Use this data source to access information about a [Secret](https://docs.controlplane.com/reference/secret) within Control Plane.
 *
 * ## Required
 *
 * - **name** (String) Name of the secret.
 *
 * ## Outputs
 *
 * The following attributes are exported:
 *
 * - **cpln_id** (String) The ID, in GUID format, of the secret.
 * - **name** (String) Name of the secret.
 * - **description** (String) Description of the secret.
 * - **tags** (Map of String) Key-value map of resource tags.
 * - **self_link** (String) Full link to this resource. Can be referenced by other resources.
 * - **secret_link** (String) Output used when linking a secret to an environment variable or volume, in the format: `cpln://secret/SECRET_NAME`.
 * - **dictionary_as_envs** (Map of String) If a dictionary secret is defined, this output will be a key-value map in the following format: `key = cpln://secret/SECRET_NAME.key`.
 * - **aws** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#aws).
 * - **azure_connector** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#azure-connector).
 * - **azure_sdk** (String, Sensitive) JSON string containing the Docker secret. [Reference Page](https://docs.controlplane.com/reference/secret#azure).
 * - **dictionary** (Map of String) List of unique key-value pairs. [Reference Page](https://docs.controlplane.com/reference/secret#dictionary).
 * - **docker** (String, Sensitive) JSON string containing the Docker secret. [Reference Page](https://docs.controlplane.com/reference/secret#docker).
 * - **ecr** (Block List, Max: 1) (see below).
 * - **gcp** (String, Sensitive) JSON string containing the GCP secret. [Reference Page](https://docs.controlplane.com/reference/secret#gcp)
 * - **keypair** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#keypair).
 * - **nats_account** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#nats-account).
 * - **opaque** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#opaque).
 * - **tls** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#tls).
 * - **userpass** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#username).
 *
 * <a id="nestedblock--aws"></a>
 *
 * ### `aws`
 *
 * Optional:
 *
 * - **access_key** (String, Sensitive) Access Key provided by AWS.
 * - **role_arn** (String) Role ARN provided by AWS.
 * - **secret_key** (String, Sensitive) Secret Key provided by AWS.
 * - **external_id** (String) AWS IAM Role External ID.
 *
 * <a id="nestedblock--azure_connector"></a>
 *
 * ### `azureConnector`
 *
 * Optional:
 *
 * - **code** (String, Sensitive) Code/Key to authenticate to deployment URL.
 * - **url** (String, Sensitive) Deployment URL.
 *
 * <a id="nestedblock--ecr"></a>
 *
 * ### `ecr`
 *
 * [Reference Page](https://docs.controlplane.com/reference/secret#ecr)
 *
 * Optional:
 *
 * - **access_key** (String) Access Key provided by AWS.
 * - **repos** (Set of String) List of ECR repositories.
 * - **role_arn** (String) Role ARN provided by AWS.
 * - **secret_key** (String, Sensitive) Secret Key provided by AWS.
 * - **external_id** (String) AWS IAM Role External ID. Used when setting up cross-account access to your ECR repositories.
 *
 * <a id="nestedblock--keypair"></a>
 *
 * ### `keypair`
 *
 * Optional:
 *
 * - **passphrase** (String, Sensitive) Passphrase for private key.
 * - **public_key** (String) Public Key.
 * - **secret_key** (String, Sensitive) Secret/Private Key.
 *
 * <a id="nestedblock--nats-account"></a>
 *
 * ### `natsAccount`
 *
 * Required:
 *
 * - **account_id** (String) Account ID.
 * - **private_key** (String) Private Key.
 *
 * <a id="nestedblock--opaque"></a>
 *
 * ### `opaque`
 *
 * Optional:
 *
 * - **encoding** (String) Available encodings: `plain`, `base64`. Default: `plain`.
 * - **payload** (String, Sensitive) Plain text or base64 encoded string. Use `encoding` attribute to specify encoding.
 *
 * <a id="nestedblock--tls"></a>
 *
 * ### `tls`
 *
 * Optional:
 *
 * - **cert** (String) Public Certificate.
 * - **chain** (String) Chain Certificate.
 * - **key** (String, Sensitive) Private Certificate.
 *
 * <a id="nestedblock--userpass"></a>
 *
 * ### `userpass`
 *
 * Optional:
 *
 * - **encoding** (String) Available encodings: `plain`, `base64`. Default: `plain`.
 * - **password** (String, Sensitive) Password.
 * - **username** (String) Username.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as cpln from "@pulumiverse/cpln";
 *
 * export = async () => {
 *     const example = await cpln.getSecret({
 *         name: "example-secret-opaque",
 *     });
 *     return {
 *         "example-secret-payload": example.opaques?.payload,
 *     };
 * }
 * ```
 */
export declare function getSecret(args: GetSecretArgs, opts?: pulumi.InvokeOptions): Promise<GetSecretResult>;
/**
 * A collection of arguments for invoking getSecret.
 */
export interface GetSecretArgs {
    aws?: inputs.GetSecretAw[];
    azureConnectors?: inputs.GetSecretAzureConnector[];
    ecrs?: inputs.GetSecretEcr[];
    keypairs?: inputs.GetSecretKeypair[];
    name: string;
    natsAccounts?: inputs.GetSecretNatsAccount[];
    opaques?: inputs.GetSecretOpaque[];
    tls?: inputs.GetSecretTl[];
    userpasses?: inputs.GetSecretUserpass[];
}
/**
 * A collection of values returned by getSecret.
 */
export interface GetSecretResult {
    readonly aws?: outputs.GetSecretAw[];
    readonly azureConnectors?: outputs.GetSecretAzureConnector[];
    readonly azureSdk: string;
    readonly cplnId: string;
    readonly description: string;
    readonly dictionary: {
        [key: string]: string;
    };
    readonly dictionaryAsEnvs: {
        [key: string]: string;
    };
    readonly docker: string;
    readonly ecrs?: outputs.GetSecretEcr[];
    readonly gcp: string;
    readonly id: string;
    readonly keypairs?: outputs.GetSecretKeypair[];
    readonly name: string;
    readonly natsAccounts?: outputs.GetSecretNatsAccount[];
    readonly opaques?: outputs.GetSecretOpaque[];
    readonly secretLink: string;
    readonly selfLink: string;
    readonly tags: {
        [key: string]: string;
    };
    readonly tls?: outputs.GetSecretTl[];
    readonly userpasses?: outputs.GetSecretUserpass[];
}
/**
 * Use this data source to access information about a [Secret](https://docs.controlplane.com/reference/secret) within Control Plane.
 *
 * ## Required
 *
 * - **name** (String) Name of the secret.
 *
 * ## Outputs
 *
 * The following attributes are exported:
 *
 * - **cpln_id** (String) The ID, in GUID format, of the secret.
 * - **name** (String) Name of the secret.
 * - **description** (String) Description of the secret.
 * - **tags** (Map of String) Key-value map of resource tags.
 * - **self_link** (String) Full link to this resource. Can be referenced by other resources.
 * - **secret_link** (String) Output used when linking a secret to an environment variable or volume, in the format: `cpln://secret/SECRET_NAME`.
 * - **dictionary_as_envs** (Map of String) If a dictionary secret is defined, this output will be a key-value map in the following format: `key = cpln://secret/SECRET_NAME.key`.
 * - **aws** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#aws).
 * - **azure_connector** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#azure-connector).
 * - **azure_sdk** (String, Sensitive) JSON string containing the Docker secret. [Reference Page](https://docs.controlplane.com/reference/secret#azure).
 * - **dictionary** (Map of String) List of unique key-value pairs. [Reference Page](https://docs.controlplane.com/reference/secret#dictionary).
 * - **docker** (String, Sensitive) JSON string containing the Docker secret. [Reference Page](https://docs.controlplane.com/reference/secret#docker).
 * - **ecr** (Block List, Max: 1) (see below).
 * - **gcp** (String, Sensitive) JSON string containing the GCP secret. [Reference Page](https://docs.controlplane.com/reference/secret#gcp)
 * - **keypair** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#keypair).
 * - **nats_account** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#nats-account).
 * - **opaque** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#opaque).
 * - **tls** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#tls).
 * - **userpass** (Block List, Max: 1) (see below) [Reference Page](https://docs.controlplane.com/reference/secret#username).
 *
 * <a id="nestedblock--aws"></a>
 *
 * ### `aws`
 *
 * Optional:
 *
 * - **access_key** (String, Sensitive) Access Key provided by AWS.
 * - **role_arn** (String) Role ARN provided by AWS.
 * - **secret_key** (String, Sensitive) Secret Key provided by AWS.
 * - **external_id** (String) AWS IAM Role External ID.
 *
 * <a id="nestedblock--azure_connector"></a>
 *
 * ### `azureConnector`
 *
 * Optional:
 *
 * - **code** (String, Sensitive) Code/Key to authenticate to deployment URL.
 * - **url** (String, Sensitive) Deployment URL.
 *
 * <a id="nestedblock--ecr"></a>
 *
 * ### `ecr`
 *
 * [Reference Page](https://docs.controlplane.com/reference/secret#ecr)
 *
 * Optional:
 *
 * - **access_key** (String) Access Key provided by AWS.
 * - **repos** (Set of String) List of ECR repositories.
 * - **role_arn** (String) Role ARN provided by AWS.
 * - **secret_key** (String, Sensitive) Secret Key provided by AWS.
 * - **external_id** (String) AWS IAM Role External ID. Used when setting up cross-account access to your ECR repositories.
 *
 * <a id="nestedblock--keypair"></a>
 *
 * ### `keypair`
 *
 * Optional:
 *
 * - **passphrase** (String, Sensitive) Passphrase for private key.
 * - **public_key** (String) Public Key.
 * - **secret_key** (String, Sensitive) Secret/Private Key.
 *
 * <a id="nestedblock--nats-account"></a>
 *
 * ### `natsAccount`
 *
 * Required:
 *
 * - **account_id** (String) Account ID.
 * - **private_key** (String) Private Key.
 *
 * <a id="nestedblock--opaque"></a>
 *
 * ### `opaque`
 *
 * Optional:
 *
 * - **encoding** (String) Available encodings: `plain`, `base64`. Default: `plain`.
 * - **payload** (String, Sensitive) Plain text or base64 encoded string. Use `encoding` attribute to specify encoding.
 *
 * <a id="nestedblock--tls"></a>
 *
 * ### `tls`
 *
 * Optional:
 *
 * - **cert** (String) Public Certificate.
 * - **chain** (String) Chain Certificate.
 * - **key** (String, Sensitive) Private Certificate.
 *
 * <a id="nestedblock--userpass"></a>
 *
 * ### `userpass`
 *
 * Optional:
 *
 * - **encoding** (String) Available encodings: `plain`, `base64`. Default: `plain`.
 * - **password** (String, Sensitive) Password.
 * - **username** (String) Username.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as cpln from "@pulumiverse/cpln";
 *
 * export = async () => {
 *     const example = await cpln.getSecret({
 *         name: "example-secret-opaque",
 *     });
 *     return {
 *         "example-secret-payload": example.opaques?.payload,
 *     };
 * }
 * ```
 */
export declare function getSecretOutput(args: GetSecretOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetSecretResult>;
/**
 * A collection of arguments for invoking getSecret.
 */
export interface GetSecretOutputArgs {
    aws?: pulumi.Input<pulumi.Input<inputs.GetSecretAwArgs>[]>;
    azureConnectors?: pulumi.Input<pulumi.Input<inputs.GetSecretAzureConnectorArgs>[]>;
    ecrs?: pulumi.Input<pulumi.Input<inputs.GetSecretEcrArgs>[]>;
    keypairs?: pulumi.Input<pulumi.Input<inputs.GetSecretKeypairArgs>[]>;
    name: pulumi.Input<string>;
    natsAccounts?: pulumi.Input<pulumi.Input<inputs.GetSecretNatsAccountArgs>[]>;
    opaques?: pulumi.Input<pulumi.Input<inputs.GetSecretOpaqueArgs>[]>;
    tls?: pulumi.Input<pulumi.Input<inputs.GetSecretTlArgs>[]>;
    userpasses?: pulumi.Input<pulumi.Input<inputs.GetSecretUserpassArgs>[]>;
}
