import * as pulumi from "@pulumi/pulumi";
/**
 * Resource for creating a Harness environment.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as harness from "@lbrlabs/pulumi-harness";
 *
 * const example = new harness.platform.Environment("example", {
 *     identifier: "identifier",
 *     orgId: "org_id",
 *     projectId: "project_id",
 *     tags: [
 *         "foo:bar",
 *         "baz",
 *     ],
 *     type: "PreProduction",
 *     yaml: `			   environment:
 *          name: name
 *          identifier: identifier
 *          orgIdentifier: org_id
 *          projectIdentifier: project_id
 *          type: PreProduction
 *          tags:
 *            foo: bar
 *            baz: ""
 *          variables:
 *            - name: envVar1
 *              type: String
 *              value: v1
 *              description: ""
 *            - name: envVar2
 *              type: String
 *              value: v2
 *              description: ""
 *          overrides:
 *            manifests:
 *              - manifest:
 *                  identifier: manifestEnv
 *                  type: Values
 *                  spec:
 *                    store:
 *                      type: Git
 *                      spec:
 *                        connectorRef: <+input>
 *                        gitFetchType: Branch
 *                        paths:
 *                          - file1
 *                        repoName: <+input>
 *                        branch: master
 *            configFiles:
 *              - configFile:
 *                  identifier: configFileEnv
 *                  spec:
 *                    store:
 *                      type: Harness
 *                      spec:
 *                        files:
 *                          - account:/Add-ons/svcOverrideTest
 *                        secretFiles: []
 *
 * `,
 * });
 * ```
 *
 * ## Import
 *
 * Import account level environment id
 *
 * ```sh
 *  $ pulumi import harness:platform/environment:Environment example <environment_id>
 * ```
 *
 *  Import org level environment id
 *
 * ```sh
 *  $ pulumi import harness:platform/environment:Environment example <org_id>/<environment_id>
 * ```
 *
 *  Import project level environment id
 *
 * ```sh
 *  $ pulumi import harness:platform/environment:Environment example <org_id>/<project_id>/<environment_id>
 * ```
 */
export declare class Environment extends pulumi.CustomResource {
    /**
     * Get an existing Environment resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: EnvironmentState, opts?: pulumi.CustomResourceOptions): Environment;
    /**
     * Returns true if the given object is an instance of Environment.  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 Environment;
    /**
     * Color of the environment.
     */
    readonly color: pulumi.Output<string>;
    /**
     * Description of the resource.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * Enable this flag for force deletion of environment
     */
    readonly forceDelete: pulumi.Output<string>;
    /**
     * Unique identifier of the resource.
     */
    readonly identifier: pulumi.Output<string>;
    /**
     * Name of the resource.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Unique identifier of the organization.
     */
    readonly orgId: pulumi.Output<string | undefined>;
    /**
     * Unique identifier of the project.
     */
    readonly projectId: pulumi.Output<string | undefined>;
    /**
     * Tags to associate with the resource.
     */
    readonly tags: pulumi.Output<string[] | undefined>;
    /**
     * The type of environment. Valid values are PreProduction, Production
     */
    readonly type: pulumi.Output<string>;
    /**
     * Environment YAML. In YAML, to reference an entity at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference an entity at the account scope, prefix 'account` to the expression: account.{identifier}. For eg, to reference a connector with identifier 'connectorId' at the organization scope in a stage mention it as connectorRef: org.connectorId.
     */
    readonly yaml: pulumi.Output<string | undefined>;
    /**
     * Create a Environment 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: EnvironmentArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Environment resources.
 */
export interface EnvironmentState {
    /**
     * Color of the environment.
     */
    color?: pulumi.Input<string>;
    /**
     * Description of the resource.
     */
    description?: pulumi.Input<string>;
    /**
     * Enable this flag for force deletion of environment
     */
    forceDelete?: pulumi.Input<string>;
    /**
     * Unique identifier of the resource.
     */
    identifier?: pulumi.Input<string>;
    /**
     * Name of the resource.
     */
    name?: pulumi.Input<string>;
    /**
     * Unique identifier of the organization.
     */
    orgId?: pulumi.Input<string>;
    /**
     * Unique identifier of the project.
     */
    projectId?: pulumi.Input<string>;
    /**
     * Tags to associate with the resource.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The type of environment. Valid values are PreProduction, Production
     */
    type?: pulumi.Input<string>;
    /**
     * Environment YAML. In YAML, to reference an entity at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference an entity at the account scope, prefix 'account` to the expression: account.{identifier}. For eg, to reference a connector with identifier 'connectorId' at the organization scope in a stage mention it as connectorRef: org.connectorId.
     */
    yaml?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a Environment resource.
 */
export interface EnvironmentArgs {
    /**
     * Color of the environment.
     */
    color?: pulumi.Input<string>;
    /**
     * Description of the resource.
     */
    description?: pulumi.Input<string>;
    /**
     * Enable this flag for force deletion of environment
     */
    forceDelete?: pulumi.Input<string>;
    /**
     * Unique identifier of the resource.
     */
    identifier: pulumi.Input<string>;
    /**
     * Name of the resource.
     */
    name?: pulumi.Input<string>;
    /**
     * Unique identifier of the organization.
     */
    orgId?: pulumi.Input<string>;
    /**
     * Unique identifier of the project.
     */
    projectId?: pulumi.Input<string>;
    /**
     * Tags to associate with the resource.
     */
    tags?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The type of environment. Valid values are PreProduction, Production
     */
    type: pulumi.Input<string>;
    /**
     * Environment YAML. In YAML, to reference an entity at the organization scope, prefix 'org' to the expression: org.{identifier}. To reference an entity at the account scope, prefix 'account` to the expression: account.{identifier}. For eg, to reference a connector with identifier 'connectorId' at the organization scope in a stage mention it as connectorRef: org.connectorId.
     */
    yaml?: pulumi.Input<string>;
}
