diff --git a/r/google_project.html.markdown b/r/google_project.html.markdown index 72a34c5c..e0c5ae4f 100644 --- a/r/google_project.html.markdown +++ b/r/google_project.html.markdown @@ -19,9 +19,9 @@ project's existing policy. The policy is always specified in a ## Example Usage ```js -resource "google_project" "my-project" { +resource "google_project" "my_project" { id = "your-project-id" - policy_data = "${data.google_iam_policy.admin.policy}" + policy_data = "${data.google_iam_policy.admin.policy_data}" } data "google_iam_policy" "admin" { diff --git a/r/google_service_account.html.markdown b/r/google_service_account.html.markdown new file mode 100644 index 00000000..4e72c068 --- /dev/null +++ b/r/google_service_account.html.markdown @@ -0,0 +1,73 @@ +--- +layout: "google" +page_title: "Google: google_service_account" +sidebar_current: "docs-google-service-account" +description: |- + Allows management of a Google Cloud Platform service account. +--- + +# google\_service\_account + +Allows management of a Google Cloud Platform service account. + +## Example Usage + +This snippet creates a service account, then gives it objectViewer +permission in a project. + +```js +resource "google_service_account" "object_viewer" { + account_id = "object-viewer" + display_name = "Object viewer" +} + +resource "google_project" "my_project" { + id = "your-project-id" + policy_data = "${data.google_iam_policy.admin.policy_data}" +} + +data "google_iam_policy" "admin" { + binding { + role = "roles/storage.objectViewer" + members = [ + "serviceAccount:${google_service_account.object_viewer.email}", + ] + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `account_id` - (Required) The service account ID. + Changing this forces a new service account to be created. + +* `display_name` - (Optional) The display name for the service account. + Can be updated without creating a new resource. + +* `project` - (Optional) The project that the service account will be created in. + Defaults to the provider project configuration. + +* `policy_data` - (Optional) The `google_iam_policy` data source that represents + the IAM policy that will be applied to the service account. The policy will be + merged with any existing policy. + + Changing this updates the policy. + + Deleting this removes the policy, but leaves the original policy + intact. If there are overlapping `binding` entries between the original + policy and the data source policy, they will be removed. + +## Attributes Reference + +In addition to the arguments listed above, the following computed attributes are +exported: + +* `email` - The e-mail address of the service account. This value + should be referenced from any `google_iam_policy` data sources + that would grant the service account privileges. + +* `name` - The fully-qualified name of the service account. + +* `unique_id` - The unique id of the service account.