import * as pulumi from "@pulumi/pulumi";
/**
 * Represents a deployment of a security posture on a resource. A posture contains user curated policy sets. A posture can
 * be deployed on a project or on a folder or on an organization. To deploy a posture we need to populate the posture's name
 * and its revisionId in the posture deployment configuration. Every update to a deployed posture generates a new revision_id.
 * Thus, the updated revisionId should be used in the respective posture deployment's configuration to deploy that posture
 * on a resource.
 *
 * To get more information about PostureDeployment, see:
 *
 * * [API documentation](https://cloud.google.com/security-command-center/docs/reference/securityposture/rest/v1/organizations.locations.postureDeployments)
 * * How-to Guides
 *     * [Create and deploy a posture](https://cloud.google.com/security-command-center/docs/how-to-use-security-posture)
 *
 * ## Import
 *
 * PostureDeployment can be imported using any of these accepted formats:
 *
 * * `{{parent}}/locations/{{location}}/postureDeployments/{{posture_deployment_id}}`
 *
 * When using the `pulumi import` command, PostureDeployment can be imported using one of the formats above. For example:
 *
 * ```sh
 * $ pulumi import gcp:securityposture/postureDeployment:PostureDeployment default {{parent}}/locations/{{location}}/postureDeployments/{{posture_deployment_id}}
 * ```
 */
export declare class PostureDeployment extends pulumi.CustomResource {
    /**
     * Get an existing PostureDeployment 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?: PostureDeploymentState, opts?: pulumi.CustomResourceOptions): PostureDeployment;
    /**
     * Returns true if the given object is an instance of PostureDeployment.  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 PostureDeployment;
    /**
     * Time the posture deployment was created in UTC.
     */
    readonly createTime: pulumi.Output<string>;
    /**
     * Description of the posture deployment.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * This is an output only optional field which will be filled in case when
     * PostureDeployment state is UPDATE_FAILED or CREATE_FAILED or DELETE_FAILED.
     * It denotes the desired posture to be deployed.
     */
    readonly desiredPostureId: pulumi.Output<string>;
    /**
     * This is an output only optional field which will be filled in case when
     * PostureDeployment state is UPDATE_FAILED or CREATE_FAILED or DELETE_FAILED.
     * It denotes the desired posture revisionId to be deployed.
     */
    readonly desiredPostureRevisionId: pulumi.Output<string>;
    /**
     * For Resource freshness validation (https://google.aip.dev/154)
     */
    readonly etag: pulumi.Output<string>;
    /**
     * This is a output only optional field which will be filled in case where
     * PostureDeployment enters a failure state like UPDATE_FAILED or
     * CREATE_FAILED or DELETE_FAILED. It will have the failure message for posture deployment's
     * CREATE/UPDATE/DELETE methods.
     */
    readonly failureMessage: pulumi.Output<string>;
    /**
     * The location of the resource, eg. global`.
     */
    readonly location: pulumi.Output<string>;
    /**
     * Name of the posture deployment instance.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The parent of the resource, an organization. Format should be `organizations/{organization_id}`.
     */
    readonly parent: pulumi.Output<string>;
    /**
     * ID of the posture deployment.
     *
     *
     * - - -
     */
    readonly postureDeploymentId: pulumi.Output<string>;
    /**
     * Relative name of the posture which needs to be deployed. It should be in the format:
     * organizations/{organization_id}/locations/{location}/postures/{posture_id}
     */
    readonly postureId: pulumi.Output<string>;
    /**
     * Revision_id the posture which needs to be deployed.
     */
    readonly postureRevisionId: pulumi.Output<string>;
    /**
     * If set, there are currently changes in flight to the posture deployment.
     */
    readonly reconciling: pulumi.Output<boolean>;
    /**
     * State of the posture deployment. A posture deployment can be in the following terminal states:
     * ACTIVE, CREATE_FAILED, UPDATE_FAILED, DELETE_FAILED.
     */
    readonly state: pulumi.Output<string>;
    /**
     * The resource on which the posture should be deployed. This can be in one of the following formats:
     * projects/{project_number},
     * folders/{folder_number},
     * organizations/{organization_id}
     */
    readonly targetResource: pulumi.Output<string>;
    /**
     * Time the posture deployment was updated in UTC.
     */
    readonly updateTime: pulumi.Output<string>;
    /**
     * Create a PostureDeployment 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: PostureDeploymentArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering PostureDeployment resources.
 */
export interface PostureDeploymentState {
    /**
     * Time the posture deployment was created in UTC.
     */
    createTime?: pulumi.Input<string>;
    /**
     * Description of the posture deployment.
     */
    description?: pulumi.Input<string>;
    /**
     * This is an output only optional field which will be filled in case when
     * PostureDeployment state is UPDATE_FAILED or CREATE_FAILED or DELETE_FAILED.
     * It denotes the desired posture to be deployed.
     */
    desiredPostureId?: pulumi.Input<string>;
    /**
     * This is an output only optional field which will be filled in case when
     * PostureDeployment state is UPDATE_FAILED or CREATE_FAILED or DELETE_FAILED.
     * It denotes the desired posture revisionId to be deployed.
     */
    desiredPostureRevisionId?: pulumi.Input<string>;
    /**
     * For Resource freshness validation (https://google.aip.dev/154)
     */
    etag?: pulumi.Input<string>;
    /**
     * This is a output only optional field which will be filled in case where
     * PostureDeployment enters a failure state like UPDATE_FAILED or
     * CREATE_FAILED or DELETE_FAILED. It will have the failure message for posture deployment's
     * CREATE/UPDATE/DELETE methods.
     */
    failureMessage?: pulumi.Input<string>;
    /**
     * The location of the resource, eg. global`.
     */
    location?: pulumi.Input<string>;
    /**
     * Name of the posture deployment instance.
     */
    name?: pulumi.Input<string>;
    /**
     * The parent of the resource, an organization. Format should be `organizations/{organization_id}`.
     */
    parent?: pulumi.Input<string>;
    /**
     * ID of the posture deployment.
     *
     *
     * - - -
     */
    postureDeploymentId?: pulumi.Input<string>;
    /**
     * Relative name of the posture which needs to be deployed. It should be in the format:
     * organizations/{organization_id}/locations/{location}/postures/{posture_id}
     */
    postureId?: pulumi.Input<string>;
    /**
     * Revision_id the posture which needs to be deployed.
     */
    postureRevisionId?: pulumi.Input<string>;
    /**
     * If set, there are currently changes in flight to the posture deployment.
     */
    reconciling?: pulumi.Input<boolean>;
    /**
     * State of the posture deployment. A posture deployment can be in the following terminal states:
     * ACTIVE, CREATE_FAILED, UPDATE_FAILED, DELETE_FAILED.
     */
    state?: pulumi.Input<string>;
    /**
     * The resource on which the posture should be deployed. This can be in one of the following formats:
     * projects/{project_number},
     * folders/{folder_number},
     * organizations/{organization_id}
     */
    targetResource?: pulumi.Input<string>;
    /**
     * Time the posture deployment was updated in UTC.
     */
    updateTime?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a PostureDeployment resource.
 */
export interface PostureDeploymentArgs {
    /**
     * Description of the posture deployment.
     */
    description?: pulumi.Input<string>;
    /**
     * The location of the resource, eg. global`.
     */
    location: pulumi.Input<string>;
    /**
     * The parent of the resource, an organization. Format should be `organizations/{organization_id}`.
     */
    parent: pulumi.Input<string>;
    /**
     * ID of the posture deployment.
     *
     *
     * - - -
     */
    postureDeploymentId: pulumi.Input<string>;
    /**
     * Relative name of the posture which needs to be deployed. It should be in the format:
     * organizations/{organization_id}/locations/{location}/postures/{posture_id}
     */
    postureId: pulumi.Input<string>;
    /**
     * Revision_id the posture which needs to be deployed.
     */
    postureRevisionId: pulumi.Input<string>;
    /**
     * The resource on which the posture should be deployed. This can be in one of the following formats:
     * projects/{project_number},
     * folders/{folder_number},
     * organizations/{organization_id}
     */
    targetResource: pulumi.Input<string>;
}
