Skip to content

Commit dcc3ee0

Browse files
authored
Add creation_timestamp field to google_compute_instance and template resources (GoogleCloudPlatform#11955)
1 parent fa2e68e commit dcc3ee0

13 files changed

+49
-2
lines changed

mmv1/third_party/terraform/services/compute/data_source_google_compute_instance.go.tmpl

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ package compute
33
import (
44
"fmt"
55

6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
67
"github.com/hashicorp/terraform-provider-google/google/tpgresource"
78
transport_tpg "github.com/hashicorp/terraform-provider-google/google/transport"
8-
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
99
)
1010

1111
func DataSourceGoogleComputeInstance() *schema.Resource {
@@ -23,7 +23,7 @@ func DataSourceGoogleComputeInstance() *schema.Resource {
2323

2424
func dataSourceGoogleComputeInstanceRead(d *schema.ResourceData, meta interface{}) error {
2525
config := meta.(*transport_tpg.Config)
26-
userAgent, err := tpgresource.GenerateUserAgentString(d, config.UserAgent)
26+
userAgent, err := tpgresource.GenerateUserAgentString(d, config.UserAgent)
2727
if err != nil {
2828
return err
2929
}
@@ -202,6 +202,9 @@ func dataSourceGoogleComputeInstanceRead(d *schema.ResourceData, meta interface{
202202
if err := d.Set("name", instance.Name); err != nil {
203203
return fmt.Errorf("Error setting name: %s", err)
204204
}
205+
if err := d.Set("creation_timestamp", instance.CreationTimestamp); err != nil {
206+
return fmt.Errorf("Error setting creation_timestamp: %s", err)
207+
}
205208
d.SetId(fmt.Sprintf("projects/%s/zones/%s/instances/%s", project, tpgresource.GetResourceNameFromSelfLink(instance.Zone), instance.Name))
206209
return nil
207210
}

mmv1/third_party/terraform/services/compute/resource_compute_instance.go.tmpl

+9
Original file line numberDiff line numberDiff line change
@@ -1177,6 +1177,12 @@ be from 0 to 999,999,999 inclusive.`,
11771177
Description: `The server-assigned unique identifier of this instance.`,
11781178
},
11791179

1180+
"creation_timestamp": {
1181+
Type: schema.TypeString,
1182+
Computed: true,
1183+
Description: `Creation timestamp in RFC3339 text format.`,
1184+
},
1185+
11801186
"label_fingerprint": {
11811187
Type: schema.TypeString,
11821188
Computed: true,
@@ -1803,6 +1809,9 @@ func resourceComputeInstanceRead(d *schema.ResourceData, meta interface{}) error
18031809
if err := d.Set("instance_id", fmt.Sprintf("%d", instance.Id)); err != nil {
18041810
return fmt.Errorf("Error setting instance_id: %s", err)
18051811
}
1812+
if err := d.Set("creation_timestamp", instance.CreationTimestamp); err != nil {
1813+
return fmt.Errorf("Error setting creation_timestamp: %s", err)
1814+
}
18061815
if err := d.Set("project", project); err != nil {
18071816
return fmt.Errorf("Error setting project: %s", err)
18081817
}

mmv1/third_party/terraform/services/compute/resource_compute_instance_template.go.tmpl

+10
Original file line numberDiff line numberDiff line change
@@ -831,6 +831,13 @@ be from 0 to 999,999,999 inclusive.`,
831831
Description: `A special URI of the created resource that uniquely identifies this instance template.`,
832832
},
833833

834+
"creation_timestamp": {
835+
Type: schema.TypeString,
836+
ForceNew: true,
837+
Computed: true,
838+
Description: `Creation timestamp in RFC3339 text format.`,
839+
},
840+
834841
"service_account": {
835842
Type: schema.TypeList,
836843
MaxItems: 1,
@@ -1819,6 +1826,9 @@ func resourceComputeInstanceTemplateRead(d *schema.ResourceData, meta interface{
18191826
if err = d.Set("self_link_unique", fmt.Sprintf("%v?uniqueId=%v", instanceTemplate.SelfLink, instanceTemplate.Id)); err != nil {
18201827
return fmt.Errorf("Error setting self_link_unique: %s", err)
18211828
}
1829+
if err = d.Set("creation_timestamp", instanceTemplate.CreationTimestamp); err != nil {
1830+
return fmt.Errorf("Error setting creation_timestamp: %s", err)
1831+
}
18221832
if err = d.Set("name", instanceTemplate.Name); err != nil {
18231833
return fmt.Errorf("Error setting name: %s", err)
18241834
}

mmv1/third_party/terraform/services/compute/resource_compute_instance_template_test.go.tmpl

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ func TestAccComputeInstanceTemplate_basic(t *testing.T) {
5252
testAccCheckComputeInstanceTemplateMetadata(&instanceTemplate, "foo", "bar"),
5353
testAccCheckComputeInstanceTemplateContainsLabel(&instanceTemplate, "my_label", "foobar"),
5454
testAccCheckComputeInstanceTemplateLacksShieldedVmConfig(&instanceTemplate),
55+
resource.TestCheckResourceAttrSet("google_compute_instance_template.foobar", "creation_timestamp"),
5556
),
5657
},
5758
{

mmv1/third_party/terraform/services/compute/resource_compute_instance_test.go.tmpl

+1
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ func TestAccComputeInstance_basic1(t *testing.T) {
192192
testAccCheckComputeInstanceMetadata(&instance, "baz", "qux"),
193193
testAccCheckComputeInstanceDisk(&instance, instanceName, true, true),
194194
resource.TestCheckResourceAttr("google_compute_instance.foobar", "current_status", "RUNNING"),
195+
resource.TestCheckResourceAttrSet("google_compute_instance.foobar", "creation_timestamp"),
195196

196197
// by default, DeletionProtection is implicitly false. This should be false on any
197198
// instance resource without an explicit deletion_protection = true declaration.

mmv1/third_party/terraform/services/compute/resource_compute_region_instance_template.go.tmpl

+10
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,13 @@ be from 0 to 999,999,999 inclusive.`,
783783
Description: `The URI of the created resource.`,
784784
},
785785

786+
"creation_timestamp": {
787+
Type: schema.TypeString,
788+
Computed: true,
789+
ForceNew: true,
790+
Description: `The time at which the instance was created in RFC 3339 format.`,
791+
},
792+
786793
"service_account": {
787794
Type: schema.TypeList,
788795
MaxItems: 1,
@@ -1306,6 +1313,9 @@ func resourceComputeRegionInstanceTemplateRead(d *schema.ResourceData, meta inte
13061313
if err = d.Set("self_link", instanceTemplate["selfLink"]); err != nil {
13071314
return fmt.Errorf("Error setting self_link: %s", err)
13081315
}
1316+
if err := d.Set("creation_timestamp", instanceTemplate["creationTimestamp"]); err != nil {
1317+
return fmt.Errorf("Error setting creation_timestamp: %s", err)
1318+
}
13091319
if err = d.Set("name", instanceTemplate["name"]); err != nil {
13101320
return fmt.Errorf("Error setting name: %s", err)
13111321
}

mmv1/third_party/terraform/services/compute/resource_compute_region_instance_template_test.go.tmpl

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ func TestAccComputeRegionInstanceTemplate_basic(t *testing.T) {
4747
testAccCheckComputeRegionInstanceTemplateMetadata(&instanceTemplate, "foo", "bar"),
4848
testAccCheckComputeRegionInstanceTemplateContainsLabel(&instanceTemplate, "my_label", "foobar"),
4949
testAccCheckComputeRegionInstanceTemplateLacksShieldedVmConfig(&instanceTemplate),
50+
resource.TestCheckResourceAttrSet("google_compute_region_instance_template.foobar", "creation_timestamp"),
5051
),
5152
},
5253
{

mmv1/third_party/terraform/website/docs/d/compute_instance.html.markdown

+2
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ The following arguments are supported:
7373

7474
* `instance_id` - The server-assigned unique identifier of this instance.
7575

76+
* `creation_timestamp` - Creation timestamp in RFC3339 text format.
77+
7678
* `metadata_fingerprint` - The unique fingerprint of the metadata.
7779

7880
* `self_link` - The URI of the created resource.

mmv1/third_party/terraform/website/docs/d/compute_instance_template.html.markdown

+2
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,8 @@ The `disk_encryption_key` block supports:
318318

319319
* `id` - an identifier for the resource with format `projects/{{project}}/global/instanceTemplates/{{name}}`
320320

321+
* `creation_timestamp` - Creation timestamp in RFC3339 text format.
322+
321323
* `metadata_fingerprint` - The unique fingerprint of the metadata.
322324

323325
* `self_link` - The URI of the created resource.

mmv1/third_party/terraform/website/docs/d/compute_region_instance_template.html.markdown

+2
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,8 @@ The `disk_encryption_key` block supports:
302302

303303
* `id` - an identifier for the resource with format `projects/{{project}}/regions/{{region}}/instanceTemplates/{{name}}`
304304

305+
* `creation_timestamp` - Creation timestamp in RFC3339 text format.
306+
305307
* `metadata_fingerprint` - The unique fingerprint of the metadata.
306308

307309
* `self_link` - The URI of the created resource.

mmv1/third_party/terraform/website/docs/r/compute_instance.html.markdown

+2
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,8 @@ exported:
590590

591591
* `id` - an identifier for the resource with format `projects/{{project}}/zones/{{zone}}/instances/{{name}}`
592592

593+
* `creation_timestamp` - Creation timestamp in RFC3339 text format.
594+
593595
* `instance_id` - The server-assigned unique identifier of this instance.
594596

595597
* `metadata_fingerprint` - The unique fingerprint of the metadata.

mmv1/third_party/terraform/website/docs/r/compute_instance_template.html.markdown

+2
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,8 @@ exported:
733733

734734
* `id` - an identifier for the resource with format `projects/{{project}}/global/instanceTemplates/{{name}}`
735735

736+
* `creation_timestamp` - Creation timestamp in RFC3339 text format.
737+
736738
* `metadata_fingerprint` - The unique fingerprint of the metadata.
737739

738740
* `self_link` - The URI of the created resource.

mmv1/third_party/terraform/website/docs/r/compute_region_instance_template.html.markdown

+2
Original file line numberDiff line numberDiff line change
@@ -693,6 +693,8 @@ exported:
693693

694694
* `id` - an identifier for the resource with format `projects/{{project}}/regions/{{region}}/instanceTemplates/{{name}}`
695695

696+
* `creation_timestamp` - Creation timestamp in RFC3339 text format.
697+
696698
* `metadata_fingerprint` - The unique fingerprint of the metadata.
697699

698700
* `self_link` - The URI of the created resource.

0 commit comments

Comments
 (0)