@@ -11,12 +11,6 @@ import (
1111
1212 " github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff"
1313 " github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
14-
15- {{ if eq $ .TargetVersionName ` ga` }}
16- " google.golang.org/api/compute/v1"
17- {{- else }}
18- compute " google.golang.org/api/compute/v0.beta"
19- {{- end }}
2014)
2115
2216func ResourceProjectUsageBucket() *schema.Resource {
@@ -69,7 +63,7 @@ func ResourceProjectUsageBucket() *schema.Resource {
6963
7064func resourceProjectUsageBucketRead(d *schema.ResourceData , meta interface{}) error {
7165 config := meta. (*transport_tpg.Config )
72- userAgent, err := tpgresource.GenerateUserAgentString (d, config.UserAgent )
66+ userAgent, err := tpgresource.GenerateUserAgentString (d, config.UserAgent )
7367 if err != nil {
7468 return err
7569 }
@@ -79,12 +73,24 @@ func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) er
7973 return err
8074 }
8175
82- p, err := NewClient(config, userAgent).Projects.Get (project).Do ()
76+ url, err := tpgresource.ReplaceVars (d, config, " {{" {{" }}ComputeBasePath{{" }}" }}" )
77+ if err != nil {
78+ return err
79+ }
80+ url = fmt.Sprintf (" %s projects/%s " , url, project)
81+ p, err := transport_tpg.SendRequest (transport_tpg.SendRequestOptions {
82+ Config: config,
83+ Method: " GET" ,
84+ Project: project,
85+ RawURL: url,
86+ UserAgent: userAgent,
87+ })
8388 if err != nil {
8489 return transport_tpg.HandleNotFoundError (err, d, fmt.Sprintf (" Project data for project %s " , project))
8590 }
8691
87- if p.UsageExportLocation == nil {
92+ usageExportLocation, ok := p[" usageExportLocation" ]. (map[string]interface{})
93+ if !ok || usageExportLocation == nil {
8894 log.Printf (" [WARN] Removing usage export location resource %s because it's not enabled server-side." , project)
8995 d.SetId (" " )
9096 return nil
@@ -93,10 +99,10 @@ func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) er
9399 if err := d.Set (" project" , project); err != nil {
94100 return fmt.Errorf (" Error setting project: %s " , err)
95101 }
96- if err := d.Set (" prefix" , p .UsageExportLocation.ReportNamePrefix ); err != nil {
102+ if err := d.Set (" prefix" , usageExportLocation[ " reportNamePrefix " ] ); err != nil {
97103 return fmt.Errorf (" Error setting prefix: %s " , err)
98104 }
99- if err := d.Set (" bucket_name" , p .UsageExportLocation.BucketName ); err != nil {
105+ if err := d.Set (" bucket_name" , usageExportLocation[ " bucketName " ] ); err != nil {
100106 return fmt.Errorf (" Error setting bucket_name: %s " , err)
101107 }
102108
@@ -109,7 +115,7 @@ func resourceProjectUsageBucketRead(d *schema.ResourceData, meta interface{}) er
109115
110116func resourceProjectUsageBucketCreate(d *schema.ResourceData , meta interface{}) error {
111117 config := meta. (*transport_tpg.Config )
112- userAgent, err := tpgresource.GenerateUserAgentString (d, config.UserAgent )
118+ userAgent, err := tpgresource.GenerateUserAgentString (d, config.UserAgent )
113119 if err != nil {
114120 return err
115121 }
@@ -119,10 +125,25 @@ func resourceProjectUsageBucketCreate(d *schema.ResourceData, meta interface{})
119125 return err
120126 }
121127
122- op, err := NewClient(config, userAgent).Projects.SetUsageExportBucket (project, &compute.UsageExportLocation {
123- ReportNamePrefix: d.Get (" prefix" ). (string),
124- BucketName: d.Get (" bucket_name" ). (string),
125- }).Do ()
128+ body := map[string]interface{}{
129+ " reportNamePrefix" : d.Get (" prefix" ). (string),
130+ " bucketName" : d.Get (" bucket_name" ). (string),
131+ }
132+
133+ url, err := tpgresource.ReplaceVars (d, config, " {{" {{" }}ComputeBasePath{{" }}" }}" )
134+ if err != nil {
135+ return err
136+ }
137+ url = fmt.Sprintf (" %s projects/%s /setUsageExportBucket" , url, project)
138+ op, err := transport_tpg.SendRequest (transport_tpg.SendRequestOptions {
139+ Config: config,
140+ Method: " POST" ,
141+ Project: project,
142+ RawURL: url,
143+ UserAgent: userAgent,
144+ Body: body,
145+ Timeout: d.Timeout (schema.TimeoutCreate ),
146+ })
126147 if err != nil {
127148 return err
128149 }
@@ -156,7 +177,7 @@ func resourceProjectUsageBucketDelete(d *schema.ResourceData, meta interface{})
156177 }
157178
158179 config := meta. (*transport_tpg.Config )
159- userAgent, err := tpgresource.GenerateUserAgentString (d, config.UserAgent )
180+ userAgent, err := tpgresource.GenerateUserAgentString (d, config.UserAgent )
160181 if err != nil {
161182 return err
162183 }
@@ -166,7 +187,19 @@ func resourceProjectUsageBucketDelete(d *schema.ResourceData, meta interface{})
166187 return err
167188 }
168189
169- op, err := NewClient(config, userAgent).Projects.SetUsageExportBucket (project, nil ).Do ()
190+ url, err := tpgresource.ReplaceVars (d, config, " {{" {{" }}ComputeBasePath{{" }}" }}" )
191+ if err != nil {
192+ return err
193+ }
194+ url = fmt.Sprintf (" %s projects/%s /setUsageExportBucket" , url, project)
195+ op, err := transport_tpg.SendRequest (transport_tpg.SendRequestOptions {
196+ Config: config,
197+ Method: " POST" ,
198+ Project: project,
199+ RawURL: url,
200+ UserAgent: userAgent,
201+ Timeout: d.Timeout (schema.TimeoutDelete ),
202+ })
170203 if err != nil {
171204 return err
172205 }
0 commit comments