import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Framework deployments represent the assignment of a framework to a target resource. Supported target resources are organizations, folders, and projects. * * To get more information about FrameworkDeployment, see: * * * [API documentation](https://docs.cloud.google.com/security-command-center/docs/reference/cloudsecuritycompliance/rest/v1/organizations.locations.frameworkDeployments) * * ## Example Usage * * ## Import * * FrameworkDeployment can be imported using any of these accepted formats: * * * `organizations/{{organization}}/locations/{{location}}/frameworkDeployments/{{framework_deployment_id}}` * * `{{organization}}/{{location}}/{{framework_deployment_id}}` * * When using the `pulumi import` command, FrameworkDeployment can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:cloudsecuritycompliance/frameworkDeployment:FrameworkDeployment default organizations/{{organization}}/locations/{{location}}/frameworkDeployments/{{framework_deployment_id}} * $ pulumi import gcp:cloudsecuritycompliance/frameworkDeployment:FrameworkDeployment default {{organization}}/{{location}}/{{framework_deployment_id}} * ``` */ export declare class FrameworkDeployment extends pulumi.CustomResource { /** * Get an existing FrameworkDeployment 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?: FrameworkDeploymentState, opts?: pulumi.CustomResourceOptions): FrameworkDeployment; /** * Returns true if the given object is an instance of FrameworkDeployment. 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 FrameworkDeployment; /** * The references to the cloud control deployments. It has all the * CloudControlDeployments which are either directly added in the framework or * through a CloudControlGroup. * Example: If a framework deployment deploys two * cloud controls, cc-deployment-1 and cc-deployment-2, then the * cloudControlDeploymentReferences will be: * { * cloud_control_deployment_reference: { * cloud_control_deployment: * "organizations/{organization}/locations/{location}/cloudControlDeployments/cc-deployment-1" * }, * cloud_control_deployment_reference: { * cloud_control_deployment: * "organizations/{organization}/locations/{location}/cloudControlDeployments/cc-deployment-2" * } * Structure is documented below. */ readonly cloudControlDeploymentReferences: pulumi.Output; /** * Deployment mode and parameters for each of the Cloud Controls in * the framework. Every Cloud Control in the framework must have a * CloudControlMetadata. * Structure is documented below. */ readonly cloudControlMetadatas: pulumi.Output; /** * The resource on which the Framework is deployed based on the provided * TargetResourceConfig in the following format: * organizations/{organization}, folders/{folder} or projects/{project} */ readonly computedTargetResource: pulumi.Output; /** * The time at which the resource was created. */ readonly createTime: pulumi.Output; /** * The deployment state of the framework. * Possible values: * DEPLOYMENT_STATE_VALIDATING * DEPLOYMENT_STATE_CREATING * DEPLOYMENT_STATE_DELETING * DEPLOYMENT_STATE_FAILED * DEPLOYMENT_STATE_READY * DEPLOYMENT_STATE_PARTIALLY_DEPLOYED * DEPLOYMENT_STATE_PARTIALLY_DELETED */ readonly deploymentState: pulumi.Output; /** * User provided description of the Framework deployment */ readonly description: pulumi.Output; /** * To prevent concurrent updates from overwriting each other, always provide * the `etag` when you update a FrameworkDeployment. You can also * provide the `etag` when you delete a FrameworkDeployment, to help * ensure that you're deleting the intended version of the * FrameworkDeployment. */ readonly etag: pulumi.Output; /** * FrameworkReference contains the reference of a framework. * Structure is documented below. */ readonly framework: pulumi.Output; /** * User provided identifier. It should be unique in scope of a parent. * This is optional and if not provided, a random UUID will be generated. */ readonly frameworkDeploymentId: pulumi.Output; /** * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. */ readonly location: pulumi.Output; /** * Identifier. FrameworkDeployment name in the following format: * organizations/{organization}/locations/{location}/frameworkDeployments/{framework_deployment_id} */ readonly name: pulumi.Output; /** * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. */ readonly organization: pulumi.Output; /** * TargetResourceConfig contains either the name of the targetResource or * contains the config to create a new target_resource. * Structure is documented below. */ readonly targetResourceConfig: pulumi.Output; /** * The display name of the target resource. */ readonly targetResourceDisplayName: pulumi.Output; /** * The time at which the resource last updated. */ readonly updateTime: pulumi.Output; /** * Create a FrameworkDeployment 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: FrameworkDeploymentArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering FrameworkDeployment resources. */ export interface FrameworkDeploymentState { /** * The references to the cloud control deployments. It has all the * CloudControlDeployments which are either directly added in the framework or * through a CloudControlGroup. * Example: If a framework deployment deploys two * cloud controls, cc-deployment-1 and cc-deployment-2, then the * cloudControlDeploymentReferences will be: * { * cloud_control_deployment_reference: { * cloud_control_deployment: * "organizations/{organization}/locations/{location}/cloudControlDeployments/cc-deployment-1" * }, * cloud_control_deployment_reference: { * cloud_control_deployment: * "organizations/{organization}/locations/{location}/cloudControlDeployments/cc-deployment-2" * } * Structure is documented below. */ cloudControlDeploymentReferences?: pulumi.Input[]>; /** * Deployment mode and parameters for each of the Cloud Controls in * the framework. Every Cloud Control in the framework must have a * CloudControlMetadata. * Structure is documented below. */ cloudControlMetadatas?: pulumi.Input[]>; /** * The resource on which the Framework is deployed based on the provided * TargetResourceConfig in the following format: * organizations/{organization}, folders/{folder} or projects/{project} */ computedTargetResource?: pulumi.Input; /** * The time at which the resource was created. */ createTime?: pulumi.Input; /** * The deployment state of the framework. * Possible values: * DEPLOYMENT_STATE_VALIDATING * DEPLOYMENT_STATE_CREATING * DEPLOYMENT_STATE_DELETING * DEPLOYMENT_STATE_FAILED * DEPLOYMENT_STATE_READY * DEPLOYMENT_STATE_PARTIALLY_DEPLOYED * DEPLOYMENT_STATE_PARTIALLY_DELETED */ deploymentState?: pulumi.Input; /** * User provided description of the Framework deployment */ description?: pulumi.Input; /** * To prevent concurrent updates from overwriting each other, always provide * the `etag` when you update a FrameworkDeployment. You can also * provide the `etag` when you delete a FrameworkDeployment, to help * ensure that you're deleting the intended version of the * FrameworkDeployment. */ etag?: pulumi.Input; /** * FrameworkReference contains the reference of a framework. * Structure is documented below. */ framework?: pulumi.Input; /** * User provided identifier. It should be unique in scope of a parent. * This is optional and if not provided, a random UUID will be generated. */ frameworkDeploymentId?: pulumi.Input; /** * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. */ location?: pulumi.Input; /** * Identifier. FrameworkDeployment name in the following format: * organizations/{organization}/locations/{location}/frameworkDeployments/{framework_deployment_id} */ name?: pulumi.Input; /** * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. */ organization?: pulumi.Input; /** * TargetResourceConfig contains either the name of the targetResource or * contains the config to create a new target_resource. * Structure is documented below. */ targetResourceConfig?: pulumi.Input; /** * The display name of the target resource. */ targetResourceDisplayName?: pulumi.Input; /** * The time at which the resource last updated. */ updateTime?: pulumi.Input; } /** * The set of arguments for constructing a FrameworkDeployment resource. */ export interface FrameworkDeploymentArgs { /** * Deployment mode and parameters for each of the Cloud Controls in * the framework. Every Cloud Control in the framework must have a * CloudControlMetadata. * Structure is documented below. */ cloudControlMetadatas: pulumi.Input[]>; /** * User provided description of the Framework deployment */ description?: pulumi.Input; /** * FrameworkReference contains the reference of a framework. * Structure is documented below. */ framework: pulumi.Input; /** * User provided identifier. It should be unique in scope of a parent. * This is optional and if not provided, a random UUID will be generated. */ frameworkDeploymentId: pulumi.Input; /** * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. */ location: pulumi.Input; /** * Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. */ organization: pulumi.Input; /** * TargetResourceConfig contains either the name of the targetResource or * contains the config to create a new target_resource. * Structure is documented below. */ targetResourceConfig: pulumi.Input; }