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,
Delete: resourceProjectUsageBucketDelete,
Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough,
State: resourceProjectUsageBucketImportState,
},
Schema: map[string]*schema.Schema{
@ -40,7 +40,11 @@ func resourceProjectUsageBucket() *schema.Resource {
func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) error {
config := meta.(*Config)
project := d.Id()
project, err := getProject(d, config)
if err != nil {
return err
}
p, err := config.clientCompute.Projects.Get(project).Do()
if err != nil {
@ -60,6 +64,7 @@ func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) er
func resourceProjectUsageBucketCreate(d *schema.ResourceData, meta interface{}) error {
config := meta.(*Config)
project, err := getProject(d, config)
if err != nil {
return err
@ -86,14 +91,19 @@ func resourceProjectUsageBucketCreate(d *schema.ResourceData, meta interface{})
func resourceProjectUsageBucketDelete(d *schema.ResourceData, meta interface{}) error {
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()
if err != nil {
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 {
return err
}
@ -101,3 +111,9 @@ func resourceProjectUsageBucketDelete(d *schema.ResourceData, meta interface{})
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"
sidebar_current: "docs-google-project-usage-export-bucket"
description: |-
Creates a dataset resource for Google BigQuery.
Manages a project's 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
[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
```hcl
resource "google_project_usage_export_bucket" "export" {
project = "foo"
bucket_name = "bar"
resource "google_project_usage_export_bucket" "usage_export" {
project = "development-project"
bucket_name = "usage-tracking-bucket"
}
```
## Argument Reference
* `project`: (Required) The project to set the export bucket on.
* `bucket_name`: (Required) The bucket to store reports in.
- - -
* `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
they will fight over which bucket the reports should be stored in. It is
safe to have multiple resources with the same backing bucket.
## Import
A project's Usage Export Bucket can be imported using this format:
```
$ terraform import google_project_usage_export_bucket.usage_export {{project}}
```