UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

233 lines (232 loc) 11.1 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ProjectConfig extends cdktf.TerraformMetaArguments { /** * Create the 'default' network automatically. Default true. If set to false, the default network will be deleted. Note that, for quota purposes, you will still need to have 1 network slot available to create the project successfully, even if you set auto_create_network to false, since the network will exist momentarily. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#auto_create_network Project#auto_create_network} */ readonly autoCreateNetwork?: boolean | cdktf.IResolvable; /** * The alphanumeric ID of the billing account this project belongs to. The user or service account performing this operation with Terraform must have Billing Account Administrator privileges (roles/billing.admin) in the organization. See Google Cloud Billing API Access Control for more details. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#billing_account Project#billing_account} */ readonly billingAccount?: string; /** * The deletion policy for the Project. Setting PREVENT will protect the project against any destroy actions caused by a terraform apply or terraform destroy. Setting ABANDON allows the resource * to be abandoned rather than deleted. Possible values are: "PREVENT", "ABANDON", "DELETE" * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#deletion_policy Project#deletion_policy} */ readonly deletionPolicy?: string; /** * The numeric ID of the folder this project should be created under. Only one of org_id or folder_id may be specified. If the folder_id is specified, then the project is created under the specified folder. Changing this forces the project to be migrated to the newly specified folder. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#folder_id Project#folder_id} */ readonly folderId?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#id Project#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * A set of key/value label pairs to assign to the project. * * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field 'effective_labels' for all of the labels present on the resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#labels Project#labels} */ readonly labels?: { [key: string]: string; }; /** * The display name of the project. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#name Project#name} */ readonly name: string; /** * The numeric ID of the organization this project belongs to. Changing this forces a new project to be created. Only one of org_id or folder_id may be specified. If the org_id is specified then the project is created at the top level. Changing this forces the project to be migrated to the newly specified organization. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#org_id Project#org_id} */ readonly orgId?: string; /** * The project ID. Changing this forces a new project to be created. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#project_id Project#project_id} */ readonly projectId: string; /** * A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored when empty. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#tags Project#tags} */ readonly tags?: { [key: string]: string; }; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#timeouts Project#timeouts} */ readonly timeouts?: ProjectTimeouts; } export interface ProjectTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#create Project#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#delete Project#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#read Project#read} */ readonly read?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#update Project#update} */ readonly update?: string; } export declare function projectTimeoutsToTerraform(struct?: ProjectTimeouts | cdktf.IResolvable): any; export declare function projectTimeoutsToHclTerraform(struct?: ProjectTimeouts | cdktf.IResolvable): any; export declare class ProjectTimeoutsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): ProjectTimeouts | cdktf.IResolvable | undefined; set internalValue(value: ProjectTimeouts | cdktf.IResolvable | undefined); private _create?; get create(): string; set create(value: string); resetCreate(): void; get createInput(): string | undefined; private _delete?; get delete(): string; set delete(value: string); resetDelete(): void; get deleteInput(): string | undefined; private _read?; get read(): string; set read(value: string); resetRead(): void; get readInput(): string | undefined; private _update?; get update(): string; set update(value: string); resetUpdate(): void; get updateInput(): string | undefined; } /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project google_project} */ export declare class Project extends cdktf.TerraformResource { static readonly tfResourceType = "google_project"; /** * Generates CDKTF code for importing a Project resource upon running "cdktf plan <stack-name>" * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the Project to import * @param importFromId The id of the existing Project that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the Project to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource; /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.4.0/docs/resources/project google_project} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options ProjectConfig */ constructor(scope: Construct, id: string, config: ProjectConfig); private _autoCreateNetwork?; get autoCreateNetwork(): boolean | cdktf.IResolvable; set autoCreateNetwork(value: boolean | cdktf.IResolvable); resetAutoCreateNetwork(): void; get autoCreateNetworkInput(): boolean | cdktf.IResolvable | undefined; private _billingAccount?; get billingAccount(): string; set billingAccount(value: string); resetBillingAccount(): void; get billingAccountInput(): string | undefined; private _deletionPolicy?; get deletionPolicy(): string; set deletionPolicy(value: string); resetDeletionPolicy(): void; get deletionPolicyInput(): string | undefined; private _effectiveLabels; get effectiveLabels(): cdktf.StringMap; private _folderId?; get folderId(): string; set folderId(value: string); resetFolderId(): void; get folderIdInput(): string | undefined; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string | undefined; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; } | undefined; private _name?; get name(): string; set name(value: string); get nameInput(): string | undefined; get number(): string; private _orgId?; get orgId(): string; set orgId(value: string); resetOrgId(): void; get orgIdInput(): string | undefined; private _projectId?; get projectId(): string; set projectId(value: string); get projectIdInput(): string | undefined; private _tags?; get tags(): { [key: string]: string; }; set tags(value: { [key: string]: string; }); resetTags(): void; get tagsInput(): { [key: string]: string; } | undefined; private _terraformLabels; get terraformLabels(): cdktf.StringMap; private _timeouts; get timeouts(): ProjectTimeoutsOutputReference; putTimeouts(value: ProjectTimeouts): void; resetTimeouts(): void; get timeoutsInput(): cdktf.IResolvable | ProjectTimeouts | undefined; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }