@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
233 lines (232 loc) • 11.1 kB
TypeScript
/**
* 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;
};
}