Cleaned up google_project_usage_export_bucket code and docs. (#1922)

This commit is contained in:
Riley Karson 2018-09-05 10:31:35 -07:00 committed by GitHub
parent 96cb1fbc16
commit c8ba3c0b3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 14 deletions

View File

@ -14,7 +14,7 @@ func resourceProjectUsageBucket() *schema.Resource {
Read: resourceProjectUsageBucketRead, Read: resourceProjectUsageBucketRead,
Delete: resourceProjectUsageBucketDelete, Delete: resourceProjectUsageBucketDelete,
Importer: &schema.ResourceImporter{ Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough, State: resourceProjectUsageBucketImportState,
}, },
Schema: map[string]*schema.Schema{ Schema: map[string]*schema.Schema{
@ -40,7 +40,11 @@ func resourceProjectUsageBucket() *schema.Resource {
func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) error { func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) error {
config := meta.(*Config) config := meta.(*Config)
project := d.Id()
project, err := getProject(d, config)
if err != nil {
return err
}
p, err := config.clientCompute.Projects.Get(project).Do() p, err := config.clientCompute.Projects.Get(project).Do()
if err != nil { if err != nil {
@ -60,6 +64,7 @@ func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) er
func resourceProjectUsageBucketCreate(d *schema.ResourceData, meta interface{}) error { func resourceProjectUsageBucketCreate(d *schema.ResourceData, meta interface{}) error {
config := meta.(*Config) config := meta.(*Config)
project, err := getProject(d, config) project, err := getProject(d, config)
if err != nil { if err != nil {
return err return err
@ -86,14 +91,19 @@ func resourceProjectUsageBucketCreate(d *schema.ResourceData, meta interface{})
func resourceProjectUsageBucketDelete(d *schema.ResourceData, meta interface{}) error { func resourceProjectUsageBucketDelete(d *schema.ResourceData, meta interface{}) error {
config := meta.(*Config) config := meta.(*Config)
project := d.Id()
project, err := getProject(d, config)
if err != nil {
return err
}
op, err := config.clientCompute.Projects.SetUsageExportBucket(project, nil).Do() op, err := config.clientCompute.Projects.SetUsageExportBucket(project, nil).Do()
if err != nil { if err != nil {
return err return err
} }
d.SetId(project)
err = computeOperationWait(config.clientCompute, op, project, "Setting usage export bucket.") err = computeOperationWait(config.clientCompute, op, project,
"Setting usage export bucket to nil, automatically disabling usage export.")
if err != nil { if err != nil {
return err return err
} }
@ -101,3 +111,9 @@ func resourceProjectUsageBucketDelete(d *schema.ResourceData, meta interface{})
return nil return nil
} }
func resourceProjectUsageBucketImportState(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
project := d.Id()
d.Set("project", project)
return []*schema.ResourceData{d}, nil
}

View File

@ -3,7 +3,7 @@ layout: "google"
page_title: "Google: google_project_usage_export_bucket" page_title: "Google: google_project_usage_export_bucket"
sidebar_current: "docs-google-project-usage-export-bucket" sidebar_current: "docs-google-project-usage-export-bucket"
description: |- description: |-
Creates a dataset resource for Google BigQuery. Manages a project's usage export bucket.
--- ---
# google_project_usage_export_bucket # google_project_usage_export_bucket
@ -16,23 +16,32 @@ For more information see the [Docs](https://cloud.google.com/compute/docs/usage-
and for further details, the and for further details, the
[API Documentation](https://cloud.google.com/compute/docs/reference/rest/beta/projects/setUsageExportBucket). [API Documentation](https://cloud.google.com/compute/docs/reference/rest/beta/projects/setUsageExportBucket).
~> **Note:** You should specify only one of these per project. If there are two or more
they will fight over which bucket the reports should be stored in. It is
safe to have multiple resources with the same backing bucket.
## Example Usage ## Example Usage
```hcl ```hcl
resource "google_project_usage_export_bucket" "export" { resource "google_project_usage_export_bucket" "usage_export" {
project = "foo" project = "development-project"
bucket_name = "bar" bucket_name = "usage-tracking-bucket"
} }
``` ```
## Argument Reference ## Argument Reference
* `project`: (Required) The project to set the export bucket on.
* `bucket_name`: (Required) The bucket to store reports in. * `bucket_name`: (Required) The bucket to store reports in.
- - -
* `prefix`: (Optional) A prefix for the reports, for instance, the project name. * `prefix`: (Optional) A prefix for the reports, for instance, the project name.
## Note * `project`: (Optional) The project to set the export bucket on. If it is not provided, the provider project is used.
You should specify only one of these per project. If there are two or more ## Import
they will fight over which bucket the reports should be stored in. It is
safe to have multiple resources with the same backing bucket. A project's Usage Export Bucket can be imported using this format:
```
$ terraform import google_project_usage_export_bucket.usage_export {{project}}
```