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, 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; /** * Description of the posture deployment. */ readonly description: pulumi.Output; /** * 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; /** * 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; /** * For Resource freshness validation (https://google.aip.dev/154) */ readonly etag: pulumi.Output; /** * 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; /** * The location of the resource, eg. global`. */ readonly location: pulumi.Output; /** * Name of the posture deployment instance. */ readonly name: pulumi.Output; /** * The parent of the resource, an organization. Format should be `organizations/{organization_id}`. */ readonly parent: pulumi.Output; /** * ID of the posture deployment. */ readonly postureDeploymentId: pulumi.Output; /** * 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; /** * Revision_id the posture which needs to be deployed. */ readonly postureRevisionId: pulumi.Output; /** * If set, there are currently changes in flight to the posture deployment. */ readonly reconciling: pulumi.Output; /** * 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; /** * 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; /** * Time the posture deployment was updated in UTC. */ readonly updateTime: pulumi.Output; /** * 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; /** * Description of the posture deployment. */ description?: pulumi.Input; /** * 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; /** * 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; /** * For Resource freshness validation (https://google.aip.dev/154) */ etag?: pulumi.Input; /** * 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; /** * The location of the resource, eg. global`. */ location?: pulumi.Input; /** * Name of the posture deployment instance. */ name?: pulumi.Input; /** * The parent of the resource, an organization. Format should be `organizations/{organization_id}`. */ parent?: pulumi.Input; /** * ID of the posture deployment. */ postureDeploymentId?: pulumi.Input; /** * 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; /** * Revision_id the posture which needs to be deployed. */ postureRevisionId?: pulumi.Input; /** * If set, there are currently changes in flight to the posture deployment. */ reconciling?: pulumi.Input; /** * 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; /** * 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; /** * Time the posture deployment was updated in UTC. */ updateTime?: pulumi.Input; } /** * The set of arguments for constructing a PostureDeployment resource. */ export interface PostureDeploymentArgs { /** * Description of the posture deployment. */ description?: pulumi.Input; /** * The location of the resource, eg. global`. */ location: pulumi.Input; /** * The parent of the resource, an organization. Format should be `organizations/{organization_id}`. */ parent: pulumi.Input; /** * ID of the posture deployment. */ postureDeploymentId: pulumi.Input; /** * 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; /** * Revision_id the posture which needs to be deployed. */ postureRevisionId: pulumi.Input; /** * 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; }