![Evan Brown](/assets/img/avatar_default.png)
* Vendor google.golang.org/api/cloudbilling/v1 * providers/google: Add cloudbilling client * providers/google: google_project supports billing account This change allows a Terraform user to set and update the billing account associated with their project. * providers/google: Testing project billing account This change adds optional acceptance tests for project billing accounts. GOOGLE_PROJECT_BILLING_ACCOUNT and GOOGLE_PROJECT_BILLING_ACCOUNT_2 must be set in the environment for the tests to run; otherwise, they will be skipped. Also includes a few code cleanups per review. * providers/google: Improve project billing error message
3.9 KiB
Executable File
layout | page_title | sidebar_current | description |
---|---|---|---|
Google: google_project | docs-google-project | Allows management of a Google Cloud Platform project. |
google_project
Allows creation and management of a Google Cloud Platform project and its associated enabled services/APIs.
Projects created with this resource must be associated with an Organization. See the Organization documentation for more details.
The service account used to run Terraform when creating a google_project
resource must have roles/resourcemanager.projectCreator
. See the
Access Control for Organizations Using IAM
doc for more information.
Example Usage
resource "google_project" "my_project" {
project_id = "your-project-id"
org_id = "1234567"
services = ["compute_component", "storage-component-json.googleapis.com", "iam.googleapis.com"]
}
Argument Reference
The following arguments are supported:
-
project_id
- (Optional) The project ID. Changing this forces a new project to be created. If this attribute is not set,id
must be set. Asid
is deprecated, consider this attribute required. If you are usingproject_id
and creating a new project, theorg_id
andname
attributes are also required. -
id
- (Deprecated) The project ID. This attribute has unexpected behaviour and probably does not work as users would expect; it has been deprecated, and will be removed in future versions of Terraform. Theproject_id
attribute should be used instead. See below for more information about its behaviour. -
org_id
- (Optional) The numeric ID of the organization this project belongs to. This is required if you are creating a new project. Changing this forces a new project to be created. -
billing_acount
- (Optional) 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. -
name
- (Optional) The display name of the project. This is required if you are creating a new project. -
services
- (Optional) The services/APIs that are enabled for this project. For a list of available services, rungcloud beta service-management list
-
skip_delete
- (Optional) If true, the Terraform resource can be deleted without deleting the Project via the Google API. -
policy_data
- (Deprecated) The IAM policy associated with the project. This argument is no longer supported, and will be removed in a future version of Terraform. It should be replaced with agoogle_project_iam_policy
resource.
Attributes Reference
In addition to the arguments listed above, the following computed attributes are exported:
number
- The numeric identifier of the project.policy_etag
- (Deprecated) The etag of the project's IAM policy, used to determine if the IAM policy has changed. Please usegoogle_project_iam_policy
'setag
property instead; future versions of Terraform will remove thepolicy_etag
attribute
ID Field
In previous versions of Terraform, google_project
resources used an id
field in
config files to specify the project ID. Unfortunately, due to limitations in Terraform,
this field always looked empty to Terraform. Terraform fell back on using the project
the Google Cloud provider is configured with. If you're using the id
field in your
configurations, know that it is being ignored, and its value will always be seen as the
ID of the project being used to authenticate Terraform's requests. You should move to the
project_id
field as soon as possible.