@@ -376,6 +376,12 @@ func resourceApigeeEnvironmentUpdate(d *schema.ResourceData, meta interface{}) e
376
376
billingProject := ""
377
377
378
378
obj := make (map [string ]interface {})
379
+ nameProp , err := expandApigeeEnvironmentName (d .Get ("name" ), d , config )
380
+ if err != nil {
381
+ return err
382
+ } else if v , ok := d .GetOkExists ("name" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , nameProp )) {
383
+ obj ["name" ] = nameProp
384
+ }
379
385
displayNameProp , err := expandApigeeEnvironmentDisplayName (d .Get ("display_name" ), d , config )
380
386
if err != nil {
381
387
return err
@@ -388,6 +394,18 @@ func resourceApigeeEnvironmentUpdate(d *schema.ResourceData, meta interface{}) e
388
394
} else if v , ok := d .GetOkExists ("description" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , descriptionProp )) {
389
395
obj ["description" ] = descriptionProp
390
396
}
397
+ deploymentTypeProp , err := expandApigeeEnvironmentDeploymentType (d .Get ("deployment_type" ), d , config )
398
+ if err != nil {
399
+ return err
400
+ } else if v , ok := d .GetOkExists ("deployment_type" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , deploymentTypeProp )) {
401
+ obj ["deploymentType" ] = deploymentTypeProp
402
+ }
403
+ apiProxyTypeProp , err := expandApigeeEnvironmentApiProxyType (d .Get ("api_proxy_type" ), d , config )
404
+ if err != nil {
405
+ return err
406
+ } else if v , ok := d .GetOkExists ("api_proxy_type" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , apiProxyTypeProp )) {
407
+ obj ["apiProxyType" ] = apiProxyTypeProp
408
+ }
391
409
nodeConfigProp , err := expandApigeeEnvironmentNodeConfig (d .Get ("node_config" ), d , config )
392
410
if err != nil {
393
411
return err
@@ -420,62 +438,27 @@ func resourceApigeeEnvironmentUpdate(d *schema.ResourceData, meta interface{}) e
420
438
421
439
log .Printf ("[DEBUG] Updating Environment %q: %#v" , d .Id (), obj )
422
440
headers := make (http.Header )
423
- updateMask := []string {}
424
-
425
- if d .HasChange ("display_name" ) {
426
- updateMask = append (updateMask , "displayName" )
427
- }
428
-
429
- if d .HasChange ("description" ) {
430
- updateMask = append (updateMask , "description" )
431
- }
432
-
433
- if d .HasChange ("node_config" ) {
434
- updateMask = append (updateMask , "nodeConfig" )
435
- }
436
-
437
- if d .HasChange ("type" ) {
438
- updateMask = append (updateMask , "type" )
439
- }
440
-
441
- if d .HasChange ("forward_proxy_uri" ) {
442
- updateMask = append (updateMask , "forwardProxyUri" )
443
- }
444
-
445
- if d .HasChange ("properties" ) {
446
- updateMask = append (updateMask , "properties" )
447
- }
448
- // updateMask is a URL parameter but not present in the schema, so ReplaceVars
449
- // won't set it
450
- url , err = transport_tpg .AddQueryParams (url , map [string ]string {"updateMask" : strings .Join (updateMask , "," )})
451
- if err != nil {
452
- return err
453
- }
454
441
455
442
// err == nil indicates that the billing_project value was found
456
443
if bp , err := tpgresource .GetBillingProject (d , config ); err == nil {
457
444
billingProject = bp
458
445
}
459
446
460
- // if updateMask is empty we are not updating anything so skip the post
461
- if len (updateMask ) > 0 {
462
- res , err := transport_tpg .SendRequest (transport_tpg.SendRequestOptions {
463
- Config : config ,
464
- Method : "PATCH" ,
465
- Project : billingProject ,
466
- RawURL : url ,
467
- UserAgent : userAgent ,
468
- Body : obj ,
469
- Timeout : d .Timeout (schema .TimeoutUpdate ),
470
- Headers : headers ,
471
- })
472
-
473
- if err != nil {
474
- return fmt .Errorf ("Error updating Environment %q: %s" , d .Id (), err )
475
- } else {
476
- log .Printf ("[DEBUG] Finished updating Environment %q: %#v" , d .Id (), res )
477
- }
447
+ res , err := transport_tpg .SendRequest (transport_tpg.SendRequestOptions {
448
+ Config : config ,
449
+ Method : "PUT" ,
450
+ Project : billingProject ,
451
+ RawURL : url ,
452
+ UserAgent : userAgent ,
453
+ Body : obj ,
454
+ Timeout : d .Timeout (schema .TimeoutUpdate ),
455
+ Headers : headers ,
456
+ })
478
457
458
+ if err != nil {
459
+ return fmt .Errorf ("Error updating Environment %q: %s" , d .Id (), err )
460
+ } else {
461
+ log .Printf ("[DEBUG] Finished updating Environment %q: %#v" , d .Id (), res )
479
462
}
480
463
481
464
return resourceApigeeEnvironmentRead (d , meta )
0 commit comments