Repository: GoogleCloudPlatform/magic-modules
Pull request #12369: Add support for shielded instance initial state
Author: login: NotTheEvilOne
Labels: name: service/compute-pd
Created: 2024-11-20T13:20:11Z | Merged: 2025-03-19T18:51:38Z

<!--
Complete the self-review checklist to help speed up the review process: https://googlecloudplatform.github.io/magic-modules/contribute/review-pr/

If your PR is still work in progress, please create it in draft mode.

Put a description of what this PR is for here, along with any references to issues that this resolves or contributes to.
For example: Fixes https://github.com/hashicorp/terraform-provider-google/issues/ISSUE_ID
-->
This PR provides support to use UEFI secure boot with `terraform-provider-google`. The requirement originates from enabling UEFI secure boot with custom config and keys. See https://github.com/gardenlinux/gardenlinux/issues/2473

Fixes https://github.com/hashicorp/terraform-provider-google/issues/20303

**Release Note Template for Downstream PRs (will be copied)**

```release-note:enhancement
compute: Added `shieldedInstanceInitialState` structure to `google_compute_image` resource
```


Diff:
diff --git a/mmv1/products/compute/Image.yaml b/mmv1/products/compute/Image.yaml
index 733f0e7fa889..6b022ccebf9b 100644
--- a/mmv1/products/compute/Image.yaml
+++ b/mmv1/products/compute/Image.yaml
@@ -225,6 +225,7 @@ properties:
           An optional SHA1 checksum of the disk image before unpackaging.
           This is provided by the client when the disk image is created.
         api_name: sha1Checksum
+        diff_suppress_func: 'tpgresource.Base64DiffSuppress'
       # TODO(alexstephen): Figure out cross-module ResourceRefs
       - name: 'source'
         type: String
@@ -270,3 +271,74 @@ properties:
     custom_expand: 'templates/terraform/custom_expand/resourceref_with_validation.go.tmpl'
     resource: 'Snapshot'
     imports: 'selfLink'
+  - name: 'shieldedInstanceInitialState'
+    type: NestedObject
+    description: Set the secure boot keys of shielded instance.
+    default_from_api: true
+    properties:
+      - name: 'pk'
+        type: NestedObject
+        description: The Platform Key (PK).
+        properties:
+          - name: 'content'
+            type: String
+            description: |
+              The raw content in the secure keys file.
+
+              A base64-encoded string.
+            required: true
+            diff_suppress_func: 'tpgresource.Base64DiffSuppress'
+          - name: 'fileType'
+            type: String
+            description: The file type of source file.
+      - name: 'keks'
+        type: Array
+        description: The Key Exchange Key (KEK).
+        item_type:
+          type: NestedObject
+          properties:
+            - name: 'content'
+              type: String
+              description: |
+                The raw content in the secure keys file.
+
+                A base64-encoded string.
+              required: true
+              diff_suppress_func: 'tpgresource.Base64DiffSuppress'
+            - name: 'fileType'
+              type: String
+              description: The file type of source file.
+      - name: 'dbs'
+        type: Array
+        description: The Key Database (db).
+        item_type:
+          type: NestedObject
+          properties:
+            - name: 'content'
+              type: String
+              description: |
+                The raw content in the secure keys file.
+
+                A base64-encoded string.
+              required: true
+              diff_suppress_func: 'tpgresource.Base64DiffSuppress'
+            - name: 'fileType'
+              type: String
+              description: The file type of source file.
+      - name: 'dbxs'
+        type: Array
+        description: The forbidden key database (dbx).
+        item_type:
+          type: NestedObject
+          properties:
+            - name: 'content'
+              type: String
+              description: |
+                The raw content in the secure keys file.
+
+                A base64-encoded string.
+              required: true
+              diff_suppress_func: 'tpgresource.Base64DiffSuppress'
+            - name: 'fileType'
+              type: String
+              description: The file type of source file.
diff --git a/mmv1/third_party/terraform/services/compute/resource_compute_image_test.go.tmpl b/mmv1/third_party/terraform/services/compute/resource_compute_image_test.go.tmpl
index 02087011e908..c240993be629 100644
--- a/mmv1/third_party/terraform/services/compute/resource_compute_image_test.go.tmpl
+++ b/mmv1/third_party/terraform/services/compute/resource_compute_image_test.go.tmpl
@@ -50,7 +50,7 @@ func TestAccComputeImage_update(t *testing.T) {
 		"bucket_one":      "tf-test-compute-image-bucket-" + acctest.RandString(t, 10),
 		"bucket_two":      "tf-test-compute-image-bucket-" + acctest.RandString(t, 10),
 	}
-	
+
 	// Only labels supports an update
 	acctest.VcrTest(t, resource.TestCase{
 		PreCheck:                 func() { acctest.AccTestPreCheck(t) },
@@ -112,6 +112,75 @@ func TestAccComputeImage_basedondisk(t *testing.T) {
 	})
 }
 
+func TestAccComputeImage_shieldedInstance_InitialState(t *testing.T) {
+	t.Parallel()
+
+	var image compute.Image
+	imageName := fmt.Sprintf("tf-test-%s", acctest.RandString(t, 10))
+
+	acctest.VcrTest(t, resource.TestCase{
+		PreCheck:                 func() { acctest.AccTestPreCheck(t) },
+		ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
+		CheckDestroy:             testAccCheckComputeImageDestroyProducer(t),
+		Steps: []resource.TestStep{
+			{
+				Config: testAccComputeImage_shieldedInstance_InitialState(imageName),
+				Check: resource.ComposeTestCheckFunc(
+					testAccCheckComputeImageExists(
+						t, "google_compute_image.foobar", &image),
+					testAccCheckComputeImageHasShieldedInstanceInitialState(&image),
+				),
+			},
+			{
+				ResourceName:      "google_compute_image.foobar",
+				ImportState:       true,
+				ImportStateVerify: true,
+			},
+		},
+	})
+}
+
+func TestAccComputeImage_shieldedInstance_UpdatedState(t *testing.T) {
+	t.Parallel()
+
+	var image compute.Image
+	imageName := fmt.Sprintf("tf-test-%s", acctest.RandString(t, 10))
+
+	acctest.VcrTest(t, resource.TestCase{
+		PreCheck:                 func() { acctest.AccTestPreCheck(t) },
+		ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
+		CheckDestroy:             testAccCheckComputeImageDestroyProducer(t),
+		Steps: []resource.TestStep{
+			{
+				Config: testAccComputeImage_shieldedInstance_InitialState(imageName),
+				Check: resource.ComposeTestCheckFunc(
+					testAccCheckComputeImageExists(
+						t, "google_compute_image.foobar", &image),
+					testAccCheckComputeImageHasShieldedInstanceInitialState(&image),
+				),
+			},
+			{
+				ResourceName:      "google_compute_image.foobar",
+				ImportState:       true,
+				ImportStateVerify: true,
+			},
+			{
+				Config: testAccComputeImage_shieldedInstance_UpdatedState(imageName),
+				Check: resource.ComposeTestCheckFunc(
+					testAccCheckComputeImageExists(
+						t, "google_compute_image.foobar", &image),
+					testAccCheckComputeImageHasShieldedInstanceUpdatedState(&image),
+				),
+			},
+			{
+				ResourceName:      "google_compute_image.foobar",
+				ImportState:       true,
+				ImportStateVerify: true,
+			},
+		},
+	})
+}
+
 func TestAccComputeImage_sourceImage(t *testing.T) {
 	t.Parallel()
 
@@ -334,6 +403,87 @@ func testAccCheckComputeImageDoesNotContainLabel(image *compute.Image, key strin
 	}
 }
 
+func testAccCheckComputeImageHasShieldedInstanceInitialState(image *compute.Image) resource.TestCheckFunc {
+	return func(s *terraform.State) error {
+		if image.ShieldedInstanceInitialState == nil {
+			return fmt.Errorf("Expected ShieldedInstanceInitialState to be present")
+		}
+
+		// Check PK values
+		if image.ShieldedInstanceInitialState.Pk == nil {
+			return fmt.Errorf("Expected PK to be present")
+		}
+		if image.ShieldedInstanceInitialState.Pk.FileType != "X509" {
+			return fmt.Errorf("Expected PK FileType to be X509, got %s", image.ShieldedInstanceInitialState.Pk.FileType)
+		}
+
+		// Check KEK values
+		if len(image.ShieldedInstanceInitialState.Keks) != 1 {
+			return fmt.Errorf("Expected 1 KEK entry, got %d", len(image.ShieldedInstanceInitialState.Keks))
+		}
+		if image.ShieldedInstanceInitialState.Keks[0].FileType != "X509" {
+			return fmt.Errorf("Expected KEK FileType to be X509, got %s", image.ShieldedInstanceInitialState.Keks[0].FileType)
+		}
+
+		// Check DB values
+		if len(image.ShieldedInstanceInitialState.Dbs) != 1 {
+			return fmt.Errorf("Expected 1 DB entry, got %d", len(image.ShieldedInstanceInitialState.Dbs))
+		}
+		if image.ShieldedInstanceInitialState.Dbs[0].FileType != "X509" {
+			return fmt.Errorf("Expected DB FileType to be X509, got %s", image.ShieldedInstanceInitialState.Dbs[0].FileType)
+		}
+
+		// Check DBX values
+		if len(image.ShieldedInstanceInitialState.Dbxs) != 1 {
+			return fmt.Errorf("Expected 1 DBX entry, got %d", len(image.ShieldedInstanceInitialState.Dbxs))
+		}
+		if image.ShieldedInstanceInitialState.Dbxs[0].FileType != "X509" {
+			return fmt.Errorf("Expected DBX FileType to be X509, got %s", image.ShieldedInstanceInitialState.Dbxs[0].FileType)
+		}
+
+		return nil
+	}
+}
+
+func testAccCheckComputeImageHasShieldedInstanceUpdatedState(image *compute.Image) resource.TestCheckFunc {
+	return func(s *terraform.State) error {
+		if image.ShieldedInstanceInitialState == nil {
+			return fmt.Errorf("Expected ShieldedInstanceInitialState to be present")
+		}
+
+		// Check PK values - now BIN
+		if image.ShieldedInstanceInitialState.Pk == nil {
+			return fmt.Errorf("Expected PK to be present")
+		}
+		if image.ShieldedInstanceInitialState.Pk.FileType != "BIN" {
+			return fmt.Errorf("Expected PK FileType to be BIN, got %s", image.ShieldedInstanceInitialState.Pk.FileType)
+		}
+
+		// Check KEK values - now BIN
+		if len(image.ShieldedInstanceInitialState.Keks) != 1 {
+			return fmt.Errorf("Expected 1 KEK entry, got %d", len(image.ShieldedInstanceInitialState.Keks))
+		}
+		if image.ShieldedInstanceInitialState.Keks[0].FileType != "BIN" {
+			return fmt.Errorf("Expected KEK FileType to be BIN, got %s", image.ShieldedInstanceInitialState.Keks[0].FileType)
+		}
+
+		// Check DB values - now BIN
+		if len(image.ShieldedInstanceInitialState.Dbs) != 1 {
+			return fmt.Errorf("Expected 1 DB entry, got %d", len(image.ShieldedInstanceInitialState.Dbs))
+		}
+		if image.ShieldedInstanceInitialState.Dbs[0].FileType != "BIN" {
+			return fmt.Errorf("Expected DB FileType to be BIN, got %s", image.ShieldedInstanceInitialState.Dbs[0].FileType)
+		}
+
+		// Check DBX values - now missing
+		if len(image.ShieldedInstanceInitialState.Dbxs) != 0 {
+			return fmt.Errorf("Expected no DBX entry, got %d", len(image.ShieldedInstanceInitialState.Dbxs))
+		}
+
+		return nil
+	}
+}
+
 func testAccCheckComputeImageHasSourceType(image *compute.Image) resource.TestCheckFunc {
 	return func(s *terraform.State) error {
 		if image.SourceType == "" {
@@ -469,6 +619,66 @@ resource "google_compute_image" "foobar" {
 `, diskName, imageName)
 }
 
+func testAccComputeImage_shieldedInstance_InitialState(imageName string) string {
+	return fmt.Sprintf(`
+data "google_compute_image" "my_image" {
+  family  = "debian-11"
+  project = "debian-cloud"
+}
+
+resource "google_compute_image" "foobar" {
+  name         = "%s"
+  source_image = data.google_compute_image.my_image.self_link
+  shielded_instance_initial_state {
+    pk {
+      content   = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURDVENDQWZHZ0F3SUJBZ0lVQVNIVCtxS0Z0MjNweTFXbmk3UWFDYi9ibzh3d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0ZERVNNQkFHQTFVRUF3d0pibTlpYjJSNUlGQkxNQjRYRFRJMU1ERXdPREV4TURZMU5Gb1hEVE0xTURFdwpOakV4TURZMU5Gb3dGREVTTUJBR0ExVUVBd3dKYm05aWIyUjVJRkJMTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGCkFBT0NBUThBTUlJQkNnS0NBUUVBbkNab3Ezdk92bTk4K2FVdW14SFpsOXZ2R3pVc2FvZkUvZnJWcVRrMDVFTHYKVkJKM0ovUWpKY0VpNGtxdnVGT3Rnb1UwcnFpOG81aW5IMnpyQThtQkp1akVEekRJS1NLRFhZVThmVVk1Skw5Qwo0a1RQT0xIeEFQeVR2QjJ5dzAzUkhpUTJPUE5YY2JEU3VHcnBIMVlSb29aMnhNUzZtek5TOUxEN2Y1RXg1cnpUCmpsaHhCY1RqUUhnakptTmZQVk5aWWMwcy9yVjZTbUViYTRraGlWem1VaE9NVzhFZ2ZuVUc2d1VBTG5hZVFpaUMKdmFITi9YdTd5WjVjS3ovTFIyeDRJTFJ6WUNCZXVpdjk1ZHdGem8yNk13L1Z2Q29wUGxZdkdEKzI5Y1dXaEFVMgp0d2VyUGQrL2c1dWkxNTEwdVA4Zk0rc0pCMFJmT3hHMDloS2tVUFR4Y1FJREFRQUJvMU13VVRBZEJnTlZIUTRFCkZnUVVvVWtFRVNTcVVKZi9hRXYxSnI3bStDQTFPVEV3SHdZRFZSMGpCQmd3Rm9BVW9Va0VFU1NxVUpmL2FFdjEKSnI3bStDQTFPVEV3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBakRmTwoxMVc1U09KcndveUZwS0ozRm9qV2RNT3Z6TXBGQzJCZkFDQkxlMS9jR29QTUxIUWNEVVIra21FN2V5L042eEE2CjlPUGhXdmxjZ1g2KzlkUThaTzEzbGl0Zmtwakg2UVlUUEp0ZHE0OHFpeFVLV1U3MGNhUURoL2RsRnZlVG00bDUKdE8zSFlDQ0NnNjlCY05neUtkcGZxMFpxVnNidWRyNlFlN2RCbEJkQ1dNSUo1R0pzWnlnNmFSZUhoSnhrb3ZtYgpMeHgwR2lFMUprNlVDRU9vUFo4Z3l6VmUvS3QyL1VJUXgvNlg1RFFvODZmWmNNQ3lpWENNcDZWOXdZcmpXcDFxCnlOQVljRDBiSUZZbEZlMHJlK0h4WTZ3bUcwSjlUa2tNWVFjRTlVVk4waThHZWNwM3YvcHIxeVExM0VseEFVTS8KbEt1LzZNU1R3bTdzNzdrRWJBPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
+      file_type = "X509"
+    }
+    dbs {
+      content   = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURDVENDQWZHZ0F3SUJBZ0lVUmlvUEVOY1dYM21qdzJYZEFSMlo2T1dUb0p3d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0ZERVNNQkFHQTFVRUF3d0pibTlpYjJSNUlFUkNNQjRYRFRJMU1ERXdPREV4TURZMU5Gb1hEVE0xTURFdwpOakV4TURZMU5Gb3dGREVTTUJBR0ExVUVBd3dKYm05aWIyUjVJRVJDTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGCkFBT0NBUThBTUlJQkNnS0NBUUVBdjJndll6b0dDaEF2QzhKcEZpYjRmZFFpLytjemtYak91RnJydTBFMFV2anUKc003RVNvMi9sc0hEcjBJbm5QRzRUOVA5Zm51NWV4enlaeDRjc3lOeVJuYUo5ZVMycmZTZjF4aHNJWmdNNlB3UApmSm9yd09mRkdUYVQwVnZrOFhCT2VPN2hhMnRuN1diZkpnV28wQWlKSGpvY3JoZkhOckdIY3dkcGZKbTFNWHNXCllWMUNaa25nNWczWUpSRzJpUVdoTnZQMjVRcnN5d3ZnRGZLUUNvMnZZbjZlL1grT2MwOG14Ykp3MHlhcVNFRUEKTHg0Q0tFNUNhd2ppVlVGWCsxQm1uRG4yOVhUUHZSbG44UG82S3pacnFYV1VNV1FxOWNZOUJocGt0QXVVbDZsbwpaRUN2V20zUFhjOElXZkZ4LzJEY2dyYjNwb1BRZmRjUnM0bGNzVWxXTlFJREFRQUJvMU13VVRBZEJnTlZIUTRFCkZnUVVNak04WURHb3VGRVBHQ0RSS2Vmb2VsYmJKbDh3SHdZRFZSMGpCQmd3Rm9BVU1qTThZREdvdUZFUEdDRFIKS2Vmb2VsYmJKbDh3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBR2wrVQpoNk42Q1Z2UWRUT1lBN3dOQk9zVk4wOHUySkZiN2k2Y0NxTnZ5ZVFKSk9lV0h4Vmthb25aUG5NR0I4NFRrODJFCmRwUVR3aFJVcXpxdVZtbk8xcnhXODZmZ3lveTU5NE80TFpzNjhHV2tEYkVXVzJ2K0lzRnBkZjBncS9TaXhjUmQKbklrWThVTWRJOGt3aEhRMEVYUnZ1MFVLOVBuS0xBdy9GenQyaThnbmk1UXg3R2xralJnOGdrMXAyTDJQWTdXSwpENi94dDBUcjlUVkprRXYvUHROdTBCQ0pTQ3JTbWcxSGJPN1lXQU1CemoyL1VVcUM4d3BxWVdGOUl1WDhTcGRaCjJvTEJuVkNnd1N4aTU4QkVUY2pINk5BOEVSenJScUVsQm1EYVJ6eUREQThYVUw3N1RvM3VIdytaRjNMcUgwUkoKRlF4UjN0VXBYK1pxdWZ3M3VRPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
+      file_type = "X509"
+    }
+    dbxs {
+      content   = "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"
+      file_type = "X509"
+    }
+    keks {
+      content   = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURDekNDQWZPZ0F3SUJBZ0lVYWMzZG1qREh5bURKVmFnUHpZNWM2bUsweEU0d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0ZURVRNQkVHQTFVRUF3d0tibTlpYjJSNUlFdEZTekFlRncweU5UQXhNRGd4TVRBMk5UUmFGdzB6TlRBeApNRFl4TVRBMk5UUmFNQlV4RXpBUkJnTlZCQU1NQ201dlltOWtlU0JMUlVzd2dnRWlNQTBHQ1NxR1NJYjNEUUVCCkFRVUFBNElCRHdBd2dnRUtBb0lCQVFES2F5K0JXcDAyM0JpL201cUFwcXg5Z3JBSUFsQzgrRGRZMnpJbFNEb3MKblozSi8vMUxwWlU1N3BubzZuMG1GbmhrMGE5SWFRN1F4Z3Z6bWJzVGhmLzVvVWs3ZHl6Qk91S2NDenV2dnJGNQpCYWVPdUg4V3JLRS9zVUpuK0wvVXZubmVtN3BUaWtyemgxTjZuRVIvaHJkSUwvUzVHM09OT0E2clg1MDQ4UDhTCm0xT3kxYmlBaHNWY1RqVDZTNWFPMzJSWnNIUEJxZS9PbWJwRTZEVjNDSzJ3OFFpYTNvYUdtZFBySEdzNjZXa1IKNExHamhLMUVFaWlvUFFhQ2o4Zkk4SjBvcW1IOHF4WnE5enVQVXZuVkZ6VG12KzBLMmFhWFJJSVpCN1Q4RENqMwpPSS8rdEw3MDJ2M3BUTC8yNGoxOEVrN2RPY2hYdlhtN1VhSW5MZHJFeE9HN0FnTUJBQUdqVXpCUk1CMEdBMVVkCkRnUVdCQlF0Nk02M3p3TmdMS3lCckJ2d2dFR0RURXlJNGpBZkJnTlZIU01FR0RBV2dCUXQ2TTYzendOZ0xLeUIKckJ2d2dFR0RURXlJNGpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBYQpPSmdKZHVHK2dTMU5ZM3VIM2JVOUhZbjJXMi9KU0tWc1NaYnh5NnlZaHpNZXJES2xrd1RVQ21iR1lRbUp1K1hXCmhZS0p6K2FCdlBhWXZ2ZDFRb3lXVlFBd2F3UjlVcm1ubW9US2UzM3ZKUkg4emVYOVZhK3g2UzR3R2Z4LzQwbFMKeUFBZXNHeDB4Z0h5dGkyRUJWM0t1WlM2ZHd0RjAybS90dmZpSExUVzh4NHh3UFNyTlNFNHY4V3loeG1OUXk2MwpId2lOWWlydGYrTENoWnlqSzMyMHlkbnBkM28rNXJzZW9ob0o4Z05TbHhSSTlwb1Fka1BWRnROYVgwTjNhd3lCCjdwZHFVeU9XU2xpRHVpdXVZYi9XTGNuQlk4blZKUy9kTFMzRUVJem1yaSs5aDlVb2o1U0MwWk9FQ1pBdG5SYk8KK3JYUWpkTkkyb0FRMTFXRGhRQTEKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
+      file_type = "X509"
+    }
+}
+}
+`, imageName)
+}
+
+func testAccComputeImage_shieldedInstance_UpdatedState(imageName string) string {
+	return fmt.Sprintf(`
+data "google_compute_image" "my_image" {
+  family  = "debian-11"
+  project = "debian-cloud"
+}
+
+resource "google_compute_image" "foobar" {
+  name         = "%s"
+  source_image = data.google_compute_image.my_image.self_link
+  shielded_instance_initial_state {
+    pk {
+      content   = "MIIEowIBAAKCAQEA8ybZA+UQZvwK4kX1PdBkYYPGEx/SvHpCU2FaRHHs7OnmqVHI+KnANgPPpqQYHmtTwdZuGZPk0iU5/JkPJJ1PnNBXA9RlGrKVHXa+OVlgJPiJP5qDgqK5n2E9IF5kJHhylG5w4RXXspRWBHJELGALQz/Bu2qZCeiKh7FslZxHEJTs4ynDLJUxZBhRHBKKog/mL2nEcX1hx4LgCXzVJvzgxI+uDxHM+GMeNPtPQTX9Kt0zC7l0ajQpKY6Nyul5T+HvqF7a+4GaD1glXI2XUYv/WKo5Aj0KGzDhqBtXgFhSVtAEKpk9/+UvWoHMtEjRFQk+2WPdPZsqGVYo8Aw0ZLBCdQIDAQABAoIBAQDXiBXJqZDk0tC4"
+      file_type = "BIN"
+    }
+    dbs {
+      content   = "MIIEowIBAAKCAQEA8ybZA+UQZvwK4kX1PdBkYYPGEx/SvHpCU2FaRHHs7OnmqVHI+KnANgPPpqQYHmtTwdZuGZPk0iU5/JkPJJ1PnNBXA9RlGrKVHXa+OVlgJPiJP5qDgqK5n2E9IF5kJHhylG5w4RXXspRWBHJELGALQz/Bu2qZCeiKh7FslZxHEJTs4ynDLJUxZBhRHBKKog/mL2nEcX1hx4LgCXzVJvzgxI+uDxHM+GMeNPtPQTX9Kt0zC7l0ajQpKY6Nyul5T+HvqF7a+4GaD1glXI2XUYv/WKo5Aj0KGzDhqBtXgFhSVtAEKpk9/+UvWoHMtEjRFQk+2WPdPZsqGVYo8Aw0ZLBCdQIDAQABAoIBAQDXiBXJqZDk0tC4"
+      file_type = "BIN"
+    }
+    keks {
+      content   = "MIIEowIBAAKCAQEA8ybZA+UQZvwK4kX1PdBkYYPGEx/SvHpCU2FaRHHs7OnmqVHI+KnANgPPpqQYHmtTwdZuGZPk0iU5/JkPJJ1PnNBXA9RlGrKVHXa+OVlgJPiJP5qDgqK5n2E9IF5kJHhylG5w4RXXspRWBHJELGALQz/Bu2qZCeiKh7FslZxHEJTs4ynDLJUxZBhRHBKKog/mL2nEcX1hx4LgCXzVJvzgxI+uDxHM+GMeNPtPQTX9Kt0zC7l0ajQpKY6Nyul5T+HvqF7a+4GaD1glXI2XUYv/WKo5Aj0KGzDhqBtXgFhSVtAEKpk9/+UvWoHMtEjRFQk+2WPdPZsqGVYo8Aw0ZLBCdQIDAQABAoIBAQDXiBXJqZDk0tC4"
+      file_type = "BIN"
+    }
+  }
+}
+`, imageName)
+}
+
 func testAccComputeImage_sourceImage(imageName string) string {
 	return fmt.Sprintf(`
 data "google_compute_image" "my_image" {
diff --git a/mmv1/third_party/terraform/tpgresource/common_diff_suppress.go.tmpl b/mmv1/third_party/terraform/tpgresource/common_diff_suppress.go.tmpl
index d7ed7e3926d2..20db7453d0bc 100644
--- a/mmv1/third_party/terraform/tpgresource/common_diff_suppress.go.tmpl
+++ b/mmv1/third_party/terraform/tpgresource/common_diff_suppress.go.tmpl
@@ -133,4 +133,14 @@ func CompareCryptoKeyVersions(_, old, new string, _ *schema.ResourceData) bool {
 func CidrOrSizeDiffSuppress(k, old, new string, d *schema.ResourceData) bool {
 	// If the user specified a size and the API returned a full cidr block, suppress.
 	return strings.HasPrefix(new, "/") && strings.HasSuffix(old, new)
+}
+
+// Base64DiffSuppress compares two Base64 strings, ignoring differences
+// between standard encoding and web safe URL encoding, padding, and 
+// embedded line endings.
+func Base64DiffSuppress(_, old, new string, _ *schema.ResourceData) bool {
+	r := strings.NewReplacer("\r", "", "\n", "", "+", "-", "/", "_", "=", "")
+	normalizedOld := r.Replace(old)
+	normalizedNew := r.Replace(new)
+	return normalizedOld == normalizedNew
 }
\ No newline at end of file
diff --git a/mmv1/third_party/terraform/tpgresource/common_diff_suppress_test.go b/mmv1/third_party/terraform/tpgresource/common_diff_suppress_test.go
index 90be0b54264f..1c585ac1bed0 100644
--- a/mmv1/third_party/terraform/tpgresource/common_diff_suppress_test.go
+++ b/mmv1/third_party/terraform/tpgresource/common_diff_suppress_test.go
@@ -213,3 +213,42 @@ func TestEmptyOrUnsetBlockDiffSuppress(t *testing.T) {
 		}
 	}
 }
+
+func TestBase64DiffSuppress(t *testing.T) {
+	cases := map[string]struct {
+		Old, New           string
+		ExpectDiffSuppress bool
+	}{
+		"identical strings": {
+			Old:                "aGVsbG8=",
+			New:                "aGVsbG8=",
+			ExpectDiffSuppress: true,
+		},
+		"standard vs url safe": {
+			Old:                "hello+world/123==",
+			New:                "hello-world_123",
+			ExpectDiffSuppress: true,
+		},
+		"with line endings": {
+			Old:                "aGVs\nbG8=\r\n",
+			New:                "aGVsbG8=",
+			ExpectDiffSuppress: true,
+		},
+		"different content": {
+			Old:                "aGVsbG8=",
+			New:                "d29ybGQ=",
+			ExpectDiffSuppress: false,
+		},
+		"empty strings": {
+			Old:                "",
+			New:                "",
+			ExpectDiffSuppress: true,
+		},
+	}
+
+	for tn, tc := range cases {
+		if Base64DiffSuppress("key", tc.Old, tc.New, nil) != tc.ExpectDiffSuppress {
+			t.Fatalf("bad: %s, '%s' => '%s' expect %t", tn, tc.Old, tc.New, tc.ExpectDiffSuppress)
+		}
+	}
+}


Reviews:
user: login: BBBmau
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2024-12-18T20:43:16Z
user: login: BBBmau
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-01-09T16:24:21Z
user: login: NotTheEvilOne
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-01-09T16:52:27Z
user: login: SirGitsalot
body: The problem is that the provider is sending a base64 string using standard encoding and getting back a base64 string in URL safe encoding. That's valid (the [proto JSON encoding standard](https://protobuf.dev/programming-guides/json/) says "JSON value will be the data encoded as a string using standard base64 encoding with paddings. Either standard or URL-safe base64 encoding with/without paddings are accepted.") I'm actually surprised we haven't run into this before.

The fix is to assign a [diff_suppress_func](https://googlecloudplatform.github.io/magic-modules/reference/field/#diff_suppress_func) to `content` that does a standard encoding/URL encoding agnostic compare a la:

```
// Base64DiffSuppress compares two Base64 strings, ignoring differences
// between standard encoding and web safe URL encoding, padding, and 
// embedded line endings.
func Base64DiffSuppress(_, old, new string, _ *schema.ResourceData) bool {
	r := strings.NewReplacer("\r", "", "\n", "", "+", "-", "/", "_", "=", "")
	normalizedOld = r.Replace(old)
	normalizedNew = r.Replace(new)
	return normalizedOld == normalizedNew
}
```

I wrote this in the GitHub comment editor so it may be a little off. It should go in `mmv1/third_party/terraform/tpgresource/common_diff_suppress.go.tmpl` (along with an accompanying unit test in `mmv1/third_party/terraform/tpgresource/common_diff_suppress_test.go` please!)
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-02-19T19:28:13Z
user: login: SirGitsalot
body: The good news is that the diff suppress did fix the problem, the bad news is that there's a broken test elsewhere (but in more good news it's an easy fix - see the other comment)
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-02-25T21:03:03Z
user: login: yeoldegrove
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-27T13:48:09Z
user: login: SirGitsalot
body: The test failures are unrelated; just one last quick question
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-03-13T00:16:10Z
user: login: NotTheEvilOne
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-17T06:57:32Z
user: login: SirGitsalot
state: APPROVED
author_association: MEMBER
submitted_at: 2025-03-19T18:35:32Z

Review comments:
diff_hunk: @@ -277,3 +277,69 @@ properties:
     custom_expand: 'templates/terraform/custom_expand/resourceref_with_validation.go.tmpl'
     resource: 'Snapshot'
     imports: 'selfLink'
+  - name: 'shieldedInstanceInitialState'
path: mmv1/products/compute/Image.yaml
user: login: BBBmau
body: although you've added the fields it's still required to include example tests as well as tests that test the update functionality. More can be found here: https://googlecloudplatform.github.io/magic-modules/test/test/#add-an-update-test 
created_at: 2024-12-18T20:43:16Z
author_association: COLLABORATOR
diff_hunk: @@ -270,3 +270,69 @@ properties:
     custom_expand: 'templates/terraform/custom_expand/resourceref_with_validation.go.tmpl'
     resource: 'Snapshot'
     imports: 'selfLink'
+  - name: 'shieldedInstanceInitialState'
+    type: NestedObject
+    description: Set the secure boot keys of shielded instance.
+    properties:
+      - name: 'pk'
+        type: NestedObject
+        description: The Platform Key (PK).
+        properties:
+          - name: 'content'
+            type: String
+            description: |
+              The raw content in the secure keys file.
+
+              A base64-encoded string.
+            required: true
+          - name: 'fileType'
+            type: String
+            description: The file type of source file.
+      - name: 'keks'
+        type: Array
+        description: The Key Exchange Key (KEK).
+        item_type:
+          type: NestedObject
+          properties:
+            - name: 'content'
+              type: String
+              description: |
+                The raw content in the secure keys file.
+
+                A base64-encoded string.
+              required: true
+            - name: 'fileType'
+              type: String
+              description: The file type of source file.
+      - name: 'dbs'
+        type: Array
+        description: The Key Database (db).
+        item_type:
+          type: NestedObject
+          properties:
+            - name: 'content'
+              type: String
+              description: |
+                The raw content in the secure keys file.
+
+                A base64-encoded string.
+              required: true
+            - name: 'fileType'
+              type: String
+              description: The file type of source file.
+      - name: 'dbxs'
+        type: Array
+        description: The forbidden key database (dbx).
+        item_type:
+          type: NestedObject
+          properties:
+            - name: 'content'
path: mmv1/products/compute/Image.yaml
user: login: BBBmau
body: There seems to be a diff happening for `shielded_instance_initial_state.dbxs.content` in the tests causing the test to fail due to a `force replacement`. Could you take a look at this? 
```hcl
resource_compute_image_test.go:119: Step 1/2 error: After applying this test step, the plan was not empty.
        stdout:
        
        
        Terraform used the selected providers to generate the following execution
        plan. Resource actions are indicated with the following symbols:
        -/+ destroy and then create replacement
        
        Terraform will perform the following actions:
        
          # google_compute_image.foobar must be replaced
        -/+ resource "google_compute_image" "foobar" {
              ~ archive_size_bytes = 675924992 -> (known after apply)
              ~ creation_timestamp = "2025-01-09T08:08:42.344-08:00" -> (known after apply)
              ~ disk_size_gb       = 10 -> (known after apply)
              ~ id                 = "projects/ci-test-project-188019/global/images/tf-test-ugt40aiafp" -> (known after apply)
              ~ label_fingerprint  = "vezUS-42LLM=" -> (known after apply)
              ~ licenses           = [
                  - "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/debian-11-bullseye",
                ] -> (known after apply)
                name               = "tf-test-ugt40aiafp"
              ~ self_link          = "https://www.googleapis.com/compute/v1/projects/ci-test-project-188019/global/images/tf-test-ugt40aiafp" -> (known after apply)
              ~ source_image       = "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-11-bullseye-v20241210" -> "https://www.googleapis.com/compute/beta/projects/debian-cloud/global/images/debian-11-bullseye-v20241210"
              ~ storage_locations  = [
                  - "us",
                ] -> (known after apply)
                # (7 unchanged attributes hidden)
        
              ~ guest_os_features (known after apply)
              - guest_os_features {
                  - type = "GVNIC" -> null
                }
              - guest_os_features {
                  - type = "UEFI_COMPATIBLE" -> null
                }
              - guest_os_features {
                  - type = "VIRTIO_SCSI_MULTIQUEUE" -> null
                }
        
              ~ shielded_instance_initial_state {
                  ~ dbxs {
                      ~ content   = "2gcDBhMRFQAAAAAAAAAAAPYMAAAAAvEOndKvSt9o7kmKqTR9N1ZlpzCCDNoCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGgggrtMIIE_TCCA-WgAwIBAgITMwAAACWW0gxcUxIAQwAAAAAAJTANBgkqhkiG9w0BAQsFADCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEqMCgGA1UEAxMhTWljcm9zb2Z0IENvcnBvcmF0aW9uIEtFSyBDQSAyMDExMB4XDTIxMDkwMjE4MjQzMVoXDTIyMDkwMTE4MjQzMVowgYYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMDAuBgNVBAMTJ01pY3Jvc29mdCBXaW5kb3dzIFVFRkkgS2V5IEV4Y2hhbmdlIEtleTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMq-iu-bD4aSVG22jmbhWF8U6-vm7tInyPoyNnSyLiTvuvoWnnpfpMLm8lIHarJFpPjPNY0NnGGMr66K0YB81QwZI6dBo1JaTjLnjSG4OwY1FwM0neVjXneyrD5QL7cjHFnj88l3E57rZeRDJPbPBHAf1ZYpldD1cwEnae6iCUKnvsH35n1LLm7YqVipjkBDqm9iC2dr7OurRH9uy_F0_aNDuhDL_B4FwtZS06E5Ym9KGOf4vz-kEvY_wTrzMgQASdKybqJwxc-RT1ZmHeDVTOO8M5ngHgFhkKA9yIJqh7Ay4BUm2t12fvB8C6cpU9AhEV-HJkvyHGy42-bH8GcIfLcCAwEAAaOCAWYwggFiMBQGA1UdJQQNMAsGCSsGAQQBgjdPATAdBgNVHQ4EFgQUdT2cqzJltzyvzCL5sWuh443PjWEwRQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEWMBQGA1UEBRMNMjI5OTYxKzQ2NzU5MzAfBgNVHSMEGDAWgBRi_EPNoD6ky2cS0lvZVax7zLaKXzBTBgNVHR8ETDBKMEigRqBEhkJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb3JLRUtDQTIwMTFfMjAxMS0wNi0yNC5jcmwwYAYIKwYBBQUHAQEEVDBSMFAGCCsGAQUFBzAChkRodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvcktFS0NBMjAxMV8yMDExLTA2LTI0LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQBpZiumZLMOf0fjMI6cvw9sElC9juzSJ8iiI8XO0EGjW--diqQaMc7udXFjoV1P3JIVGNqhcIc5IuhTJKbSp8KnS0g6SI9-8CYjJFaNY5FKnWaRXun2pMHA8HWSaJwWgzqHAGzg9lCxUxSw9PO7Cz1iPbd6TVJujcHZNY8qOmp2ZhpBZ39NAKKXnoST4nEG47VBTRHckdDA2-g-o7GIlZtIiJNQKTZpyL-TFbNNKq4PZLeONgUcNBzefXfsBqpHxqo18L9vNkVfvBfEMbYEi8IAPIi0jwSzUtoPvvkAovICYthnpU1N2EFgXh1LACTUb2x5zU_Vs8AiEHrJIe1x4IpZMIIF6DCCA9CgAwIBAgIKYQrRiAAAAAAAAzANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE7MDkGA1UEAxMyTWljcm9zb2Z0IENvcnBvcmF0aW9uIFRoaXJkIFBhcnR5IE1hcmtldHBsYWNlIFJvb3QwHhcNMTEwNjI0MjA0MTI5WhcNMjYwNjI0MjA1MTI5WjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEqMCgGA1UEAxMhTWljcm9zb2Z0IENvcnBvcmF0aW9uIEtFSyBDQSAyMDExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxOi1ir-tVyawJsPq5_tXekQCXQcN2krldCrmsA_sbevsf7njWmMyfBEXTw7jC6c4FZOOxvXghLGamyzn9beR1gnh4sAEqKwwHN9I8wZQmmSnUX_IhU-PIIbO_i_hn_-CwO3pzc70U2piOgtDueIl_f4F-dTEFKsR4iOJjXC3pB1N7K7lnPoWwtfBy9ToxC_lme4kiwPsjfKL6sNK-0MREgt-tUeSbNzmBInr9TME6xABKnHl-YMTPP8lCS9odkb_uk--3K1xKliq-w7SeT3km2U7zCkqn_xyWaLrrpLv9jUTgMYC7ORfzJ12ze9jksGveUCEeYd_41Ko6J17B2mPFQIDAQABo4IBTzCCAUswEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFGL8Q82gPqTLZxLSW9lVrHvMtopfMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH_MB8GA1UdIwQYMBaAFEVmUkPhflgRv9ZOniNVCDs6ImqoMFwGA1UdHwRVMFMwUaBPoE2GS2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvclRoaVBhck1hclJvb18yMDEwLTEwLTA1LmNybDBgBggrBgEFBQcBAQRUMFIwUAYIKwYBBQUHMAKGRGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29yVGhpUGFyTWFyUm9vXzIwMTAtMTAtMDUuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQDUhIj1FJQYAsoqPPsqkhwM16DR8ehSZqjuorV1epAAqi2kdlrqebe5N2pRexBk9uFk8gJnvveoG3i9us6IWGQM1lfIGaNfBdbbxtBpzkhLMrfrXdIw9cD1uLp4B6Mr_pvbNFaE7ILKrkElcJxr6f6QD9eWH-XnlB-yKgyNS_8oKRB799d8pdF2uQXIee0PkJKcwv7fb35sD3vUwUXdNFGWOQ_lXlbYGAWW9AemQrOgd_0IGfJxVsyfhiOkh8um_Vh-1GlnFZF-gfJ_E-UNi4o8h4Tr4869Q-WtLYSTjmorWnxE-lKqgcgtHLvgUt8AEfiaPcFgsOEztaOI0WUZChrnrHykwYKHTjixLw3FFIdv_Y0uvDm25-bD4OTNJ4TvlELvKYuQRkE7gRtn2PlDWWXLDbz9AJJP9HU7p6kk_FBBQHngLU8Kaid2blLtlml7rw_3hwXQRcKtUxSBH_swBKo3NmHaSmkbNNho7dYCz2yUDNPPbCJ5rbHwvAOiRmCpxAfCIYLx_fLoeTJgv9ispSIUS8rB2EvrfT9XNbLmT3W0sGADIlOukXkd1ptBHxWGVHCy3g01D3ywNHK6l2A78HnrorIcXaIWuIfF6Rv2tZclbzif45H6inmYw2kOt6McIAWX-MoUrgDXxPPAFBB1azSgG7WZYPNcsMVXTjbSMoS_njGCAcQwggHAAgEBMIGYMIGAMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSowKAYDVQQDEyFNaWNyb3NvZnQgQ29ycG9yYXRpb24gS0VLIENBIDIwMTECEzMAAAAlltIMXFMSAEMAAAAAACUwDQYJYIZIAWUDBAIBBQAwDQYJKoZIhvcNAQEBBQAEggEAAvz20_scPnryv_OgKLDS3azlGenTv56szAuJ5punguQqa3tyPLyn-TEwt5BT21H1yeMLBgfLYUQXCh4gU7oe3RVTxEz2lMCU5ZTpBNNB0Vd4ms678ye1KpAnETGVQDYlpHE33I13lBTTz0NNAHfWHeOTqWDxUlu7jJC225_6F2O__FDp-JozyKWPw69qYXTRjuQrYLMu0O3wFBJODLZZQ7VztyucNrg3tobxAmh0QoxrYctv7DBf1R3eU7MurXV12Km43kB51kdrFtt9GwKa1Z92oe17Uy0F5Qhw64c82GyEOxmp4q5BKtDxx2iAJiYJjcjhUTUp5sfgYoAeHufaoCYWxMFMUJJArKlB-TaTQyjMKAAAAAAAADAAAAC9mvp3WQMyTb1gKPTnj3hLgLTZaTG_DQL9kaYeGdFPHaRS5m2yQIyoYE1BH5Jlnwq9mvp3WQMyTb1gKPTnj3hL9S-Do_qc-9aSD3IoJNvkA0U00luFByRrO5V9rG4bznq9mvp3WQMyTb1gKPTnj3hLxdnYoYbiyC0Jr6oqb38uc4cNPmT3LE4I72d5aoQPD729mvp3WQMyTb1gKPTnj3hLGuyEuEtsZaUSIKm-cYGWUjAhDWLW0zxImZxrKVorCga9mvp3WQMyTb1gKPTnj3hLw6maRg2kZKBXw1htg8719K4ItxA5ee2JMnQt8O1TDGa9mvp3WQMyTb1gKPTnj3hLWPuUGu-VollDs_tfJRCg3z_kTFjJXgq4BIcpdWirl3G9mvp3WQMyTb1gKPTnj3hLU5HDovsRIQKmqh7cJa534Z9dbwnNCe6yUJkiv81Zkuq9mvp3WQMyTb1gKPTnj3hL1iYVfh1qcYvBJKuNony7ZQcsoDp7ayV9vcu9YPZe89G9mvp3WQMyTb1gKPTnj3hL0GPsKPZ-ulPxZC2_ff8zxqMq3YafYBP-Fi4sMvHL5W29mvp3WQMyTb1gKPTnj3hLKcbrUrQ8OqGLLNjtbqhgfO88-uG6_hFldVzy5hSESkS9mvp3WQMyTb1gKPTnj3hLkPvnDmnWM0CNPhcMaDLbstIJ4CclJ9-2PUnSlXKm9Ey9mvp3WQMyTb1gKPTnj3hLEG-s6s_s_U4wO3T0gKCAmOLQgCuTb47HdM4h8xaGaJy9mvp3WQMyTb1gKPTnj3hLF046C1tDxqYHu9NATwU0Hj3POWJnzpT4tQ4uI6nakgy9mvp3WQMyTb1gKPTnj3hLK5nPJkIukv42X79Lww0nCGye4Ut6b_9E-y9rkAFpmTm9mvp3WQMyTb1gKPTnj3hLLnCRZ4am93NRH6cYH6sPHXC1V8YyLqkjsqjTuStRr329mvp3WQMyTb1gKPTnj3hLP86bn98-8J1UUrD5XuSBwrfwbXQ6c3lxVY5wE2rOPnO9mvp3WQMyTb1gKPTnj3hLR8wIYSfiBpqG4Dpr7yzUEPjFWm1r2zYhaMMbLOMqWt-9mvp3WQMyTb1gKPTnj3hLcfKQb9IiSX5Uo0ZiqySX_MgQIHcP9RNo6ePZv8v9Y3W9mvp3WQMyTb1gKPTnj3hLgts7zrT2CEPOnZfD0YfNm1lBzT3oEA5YbyvaVjdXX2e9mvp3WQMyTb1gKPTnj3hLitZIWfGVtfWNr6qUC2phZ6zWeohuj0aTZBdyIcVZRbm9mvp3WQMyTb1gKPTnj3hLjY6iic_nChwHq3NlyyjuUe3TPPJQbeiI-63WDr-ASBy9mvp3WQMyTb1gKPTnj3hLruuuMVEnEnPtlaouZxE57TGphWcwOjMimPg3CanVWqG9mvp3WQMyTb1gKPTnj3hLxAm9rEd1rdjbkqoitbcY-4yUoUYsH-mkFrldijOIwvy9mvp3WQMyTb1gKPTnj3hLxhfBqLHuKoEcKLWoG0yD18mLWwwnKB1hAgfr5pLCln-9mvp3WQMyTb1gKPTnj3hLyQ8zZhe45_mDl1QTyZfxC3PrJn_YoQy5472_xmer24u9mvp3WQMyTb1gKPTnj3hLZFdb2RJ4mi4UrVb2NB9Sr2v4DPlEAHhZdenwTi1k10W9mvp3WQMyTb1gKPTnj3hLRcfIrnUKz7tI_DdSfWQS3WRNrtiRPM2KJMlNhWln3469mvp3WQMyTb1gKPTnj3hLgdj7TJ4ueoIlZWtLgnO3y6SwPvLp6yDgoCkWJOyhuoa9mvp3WQMyTb1gKPTnj3hLuSrymNwIBJt4x3SS1lUbcQzXKq2j13vlRgnkMnjvbk29mvp3WQMyTb1gKPTnj3hL4Z2ug8AubygTWNTr0R13I7T16g41eQfVRD3sxfk8Hp29mvp3WQMyTb1gKPTnj3hLOdvCKI70S1-VMyy3d-MRA-hA26aAY0qoBvXJsQAGGAK9mvp3WQMyTb1gKPTnj3hLMvWUDKKd2BKiwUXm_IlkZij_zHx6QsrlEjN9jSnEC729mvp3WQMyTb1gKPTnj3hLENRfy6OWrvMVPuj27K5Yr-hHaigKICb8cfYhfc9Jui-9mvp3WQMyTb1gKPTnj3hLS4ZopdRlvN2QAKqN_P9CBE_L0K7OMvxwEag-kWDonwm9mvp3WQMyTb1gKPTnj3hLifPR9uSFwzTNBZ0JlePN_cAFcbGEmFSEekTcVUji3Pu9mvp3WQMyTb1gKPTnj3hLyew1BAbyblWa_7QDDeLr3lQ1BUw1qZhgW4_PBJctjVW9mvp3WQMyTb1gKPTnj3hLs-UGNA-_a1eGlzOTB58ktmukZQfjXpEdsDYqKs3pcEm9mvp3WQMyTb1gKPTnj3hLnxhj7VcXw5S0LvEKZgexRKZboR-2V535S46y8MTNYMG9mvp3WQMyTb1gKPTnj3hL3VmvVghEBuOMY_vghQ8woM0Sd0YqIZJZD7BbwlnmEnO9mvp3WQMyTb1gKPTnj3hL26-eBW09Wzi2hVMwSryIgn68APgMucfhl828WCLNMWy9mvp3WQMyTb1gKPTnj3hLZfPAoBuEAtNiuXIumPdeXpkebBhuk097Ky5r5t7IAOy9mvp3WQMyTb1gKPTnj3hLWySOkT1xhT09pa7djZpLxXqRcSZXOBf7X8sthqLxyIa9mvp3WQMyTb1gKPTnj3hLJnllD-NB8s8eqINGCzVWqq93pw1rjcSEyTAdG3Rs97W9mvp3WQMyTb1gKPTnj3hLux3RbVMACGNvIyMDp6hvPf-Wn4SIFcBXSxLC14f-yT-9mvp3WQMyTb1gKPTnj3hLDOAhAPZ8fvhfTu02jwK_cJI4CjwjypH9fxlDDZSwDBm9mvp3WQMyTb1gKPTnj3hLlQSfDkE3x5Cw0nZxleVvc4B9Ejrc-Pbnvy1NmR0wX4m9mvp3WQMyTb1gKPTnj3hLAuYhasrvZAFAH6VV7L7ZQLGl8laa7ZKVYTeuWEgu8be9mvp3WQMyTb1gKPTnj3hLbv7-C1sBR4t7lEwQ06isosykIIiI4gWfigbLWCTXurC9mvp3WQMyTb1gKPTnj3hLnQCuTNR6QceD3EjzQsB2wsFvNBP00t9Q0YHKO7WthZ29mvp3WQMyTb1gKPTnj3hL2NTm3fbkLXSmpTbqYv0SF-QpCxRcnlw2laMbQu-19aS9mvp3WQMyTb1gKPTnj3hL8nevT5vckYron6NcwbNONJhMBK6XZTIsPLBJV002UJy9mvp3WQMyTb1gKPTnj3hLDcJMdesa71a58Tq53mDi7KHEUQA04pC7s2z2ClSbI0y9mvp3WQMyTb1gKPTnj3hLg1iB8qVXLXBZtchjUBhVKJLpRWJvEV_Jyges973oV6S9mvp3WQMyTb1gKPTnj3hLut_15PD-pxFwHKj7IuTEOCHjHiEM9S0dT3TdUPHQOby9mvp3WQMyTb1gKPTnj3hLxFKrhGBz31rOJcymTWt6CdkGMIoaZetSQOPE68qpzAy9mvp3WQMyTb1gKPTnj3hL8YY-yLf0P5StFPsLi0ppSXqMZey8KlXgu0IOdyuM3JG9mvp3WQMyTb1gKPTnj3hLe8nLVGPODwEftQheuLp30azSg8Q_SldgPMET8izrxXm9mvp3WQMyTb1gKPTnj3hL6AA5Xb4OBFeB6ABReLS69aJX8G4VkSGmfFlfauIlBv29mvp3WQMyTb1gKPTnj3hLHLTcyvLIEs-ntJOOE3H-K5aRD-QHIW_ZVChnLWx-cxa9mvp3WQMyTb1gKPTnj3hLPs4ny7PsRDjM5SO5J8TwX9xcWTo3ZtuYTF5Dej_2oWu9mvp3WQMyTb1gKPTnj3hLaO5GMse-HGbIPondk-ruEpQVmr9FtMLHLX3HSZqioEO9mvp3WQMyTb1gKPTnj3hL4ksxWlUWcUg9i5Bzsy3hG03h6y6rIRr9LZwxn_VeCNC9mvp3WQMyTb1gKPTnj3hL58ILOrSB7IhVAeylKTeB2EtaGsJPiCZrUnDn7LSqJTi9mvp3WQMyTb1gKPTnj3hL3Mw84cAO5LCxBIfTcqD6R_XCb1ejWb57J4AeFE6susS9mvp3WQMyTb1gKPTnj3hLAlf_cQ8qFuSJs3STwHYEp82pYSnYqP1o0ravYzkEMV29mvp3WQMyTb1gKPTnj3hLOpHw-eUof6KZTH2TCywaXuFM6OHIMErkla3FjMRFPAy9mvp3WQMyTb1gKPTnj3hLSVMAeQ5sm_JRDaulnbPVfp0rhdfXZAQ07HW6o4UcdOW9mvp3WQMyTb1gKPTnj3hLgaiyyXUa6x-rp9veXulpHcDq7ioxw4sUkagUZ1amt3C9mvp3WQMyTb1gKPTnj3hLjlPv3BX4Us7lpukpMbxC5hY80w_2Scyn6HJSw6RZlgu9mvp3WQMyTb1gKPTnj3hLmS01mqel94nSaLlMEblIWmsc5kNisO20RBzMGHw5ZHu9mvp3WQMyTb1gKPTnj3hLn6TVAj_UPsr_QgC6fo1DUyWdK35ecrUJbv-AJ9ZtEEO9mvp3WQMyTb1gKPTnj3hL03LA0PT9yfUunh8j_FbuckFKF_NQ0M6mwmo1psMhehO9mvp3WQMyTb1gKPTnj3hLXFgFGWqF6TeJRXAX1PnraCi5fEHLm6bT3B_MEV9SelW9mvp3WQMyTb1gKPTnj3hLA_ZKKZSKiL7_2wNeCwmnNwzPDNnOa8-OZAwhBzGPq4e9mvp3WQMyTb1gKPTnj3hLBdh-FXE0VGFvWw7XhJq1wXEquE8CNJR47Co4-XDAFIm9mvp3WQMyTb1gKPTnj3hLButbrdJuT65l-aQjWN7vfBjlLMBfu3_HZ3bmnRuYKhS9mvp3WQMyTb1gKPTnj3hLCLsiienpG00g_z8VYlFqsH6Xmyxs7-KrcMbfwRmfjaW9mvp3WQMyTb1gKPTnj3hLCSjwQIv3JeYdZ9hxOKjuvFKWLShH8W41hxY7Fg5Btq29mvp3WQMyTb1gKPTnj3hLCfmKqQ-FGYwNc_ibp36H7G9ZbEkTUPuPi7qApi-7kUu9mvp3WQMyTb1gKPTnj3hLCnXqCx1w6qTT83QkbbVPx7Q-f1lqNTMJucNrT9l1cl69mvp3WQMyTb1gKPTnj3hLDFHXkG_EkxFJdl2ohoJCayz-nmqk8nJT6rQAERQy46e9mvp3WQMyTb1gKPTnj3hLD6OimtBRMNf-W_TSWWVjze0dh0CWqswYEGmTKi5JUZq9mvp3WQMyTb1gKPTnj3hLFHcwtC8R_kk_6QK2JR6XzStvNNNq9ZMw8R0CpC-UDQe9mvp3WQMyTb1gKPTnj3hLFI_hj3Fan8_hpETOD_9_hYaetCIzDcBLMUwPKV1tp569mvp3WQMyTb1gKPTnj3hLG5CRFajUc-UTKKh4I71iHOZV365U-iv6cv3AKYYR1ri9mvp3WQMyTb1gKPTnj3hLHYtYwf242oszzO4eX5c69zTZDvMX4z9dsVc8K6CIqAy9mvp3WQMyTb1gKPTnj3hLHxeRhu_fXvLeAYJFug6ugTSGhgG6DTX_PZhlwVN87ZO9mvp3WQMyTb1gKPTnj3hLJwyEsp2G8WMSsGqq5Ou43_jefQgNgluIOf8XZidO_0e9mvp3WQMyTb1gKPTnj3hLKcykVE6jMNYVkceEaVwUnGsEACKse1uJy9coANEIQOq9mvp3WQMyTb1gKPTnj3hLKyKY6qJrncSkVYrpLnuw5Phc80v4SP32NsDBH77EmJe9mvp3WQMyTb1gKPTnj3hLLc-OjYFwI9Ho4UUaPWjW7DDZvtlMvLh_Gd3BzAEWrBq9mvp3WQMyTb1gKPTnj3hLMRoqxVtQwJsws8yTuZShGRU-7qxU74kvxEe7vZYQGqG9mvp3WQMyTb1gKPTnj3hLMq0yloKbxG3PrF7dy52_LB7tXBH4OyIQz5xuYMeY1Ke9mvp3WQMyTb1gKPTnj3hLNA2jK1gzHI4rVhuvMAyp39a5HNInDuDio0lYscYlnoW9mvp3WQMyTb1gKPTnj3hLNi7THSCx4AOSKBIxqW8KCs_eAmGJU-aVye8usLrDdVC9mvp3WQMyTb1gKPTnj3hLNnox5YOIMa0sB0ZHiGps3_IX5rG6kQv_hdx6h66bXpi9mvp3WQMyTb1gKPTnj3hLN2XXacBb-YtCezURkDshN-ikm2-FnQrxWe1qhnhqpjS9mvp3WQMyTb1gKPTnj3hLOG1pXN8tRXbgG8rM9eSeeNpRr5lVwLj6dgY3OwB5lLO9mvp3WQMyTb1gKPTnj3hLOk90vq-uK5ODrYIV0jOmzz0Ff7PH4hPol77vQlX67p29mvp3WQMyTb1gKPTnj3hLOudsRcpw6RgMFVmYH0JiLdJRvKH75rkBxS7BFnOwNRS9mvp3WQMyTb1gKPTnj3hLO-jn6zSNNcGSjxnHaYRniJkWQdH2zwlRTKECaZNPc1m9mvp3WQMyTb1gKPTnj3hLPjkm8LihWtWhQWe7ZHqEPD1DIeNdvETc6Mg3QX8tKLC9mvp3WQMyTb1gKPTnj3hLQArGbVm3sJSp4wsBpr0BOv8dMFcPg-dZL0Idvl_0uo-9mvp3WQMyTb1gKPTnj3hLQYWCH22rW6g0e3iiK1-aCnVwylyTp01Hink9g7rEmAW9mvp3WQMyTb1gKPTnj3hLQdHusXfAMk4X3WVX84TlMt4M9RoBmkRrAe-zUbwlnXe9mvp3WQMyTb1gKPTnj3hLRYdrTdhh1Fs6lIAHdAJ6XbRaSLKnKUEJCLZBL4qH6V29mvp3WQMyTb1gKPTnj3hLRme_JQzXwaBrhHTGE82x32SKf1hzb79X0F1vdV2rZ_S9mvp3WQMyTb1gKPTnj3hLR_8bY7FAtvwE7XkTEzHmUdpbLi8XD12u9BU9wvvFMrG9mvp3WQMyTb1gKPTnj3hLV-aROvrMUiK9ds2vMfjtiIlUZCVTdO8JeoLX9ZrTlZa9mvp3WQMyTb1gKPTnj3hLWJD6InEhx22Q7Z5jyH46ZTPuoPbwoaI_H8RFE5vGvN-9mvp3WQMyTb1gKPTnj3hLXR6ay7tKfQJLaFLfAllw4s7Wb_Yi7gGc0O1_2EHMrQK9mvp3WQMyTb1gKPTnj3hLYc7Eo3e_WQLA_q7jcDS_l9W8bgYV4joc37rm4_X7PP29mvp3WQMyTb1gKPTnj3hLYx8IV7QYRTYskMaYC0sQxLYo4j2-JLbpbBKK49yw1ay9mvp3WQMyTb1gKPTnj3hLZbLnzBjZA8Mx3xFS33PKDcky0p8XmXSBxW8wh7LdMUe9mvp3WQMyTb1gKPTnj3hLZqoToO3CGThNnEJdOSfm7UpdGUDF581NrIj1dwED8vG9mvp3WQMyTb1gKPTnj3hLaHPS9hwpvVLpVO7_WXeqg2dDmZeBGmL_ISyUgTPGjZe9mvp3WQMyTb1gKPTnj3hLbbvq0j6Mhgz4tH90-_ylIE3j4ouIExO7HR7M3EdHk069mvp3WQMyTb1gKPTnj3hLberRMlffw8zGpLNwFrqRdV_p4OwfQVAwlC5avEfwfIi9mvp3WQMyTb1gKPTnj3hLcKFFCvKtOVVprQr-sdnBJTJO6QrsOcJYiAE01IktUau9mvp3WQMyTb1gKPTnj3hLcsJvgnzrkpiXmJYbxq50jRQeBdPrz7ZdkEGyZskgvoK9mvp3WQMyTb1gKPTnj3hLeBdkECGIqLSxc9So9eyU2ChkcVYJf5k1elgeYks3dQm9mvp3WQMyTb1gKPTnj3hLeIODpMczu4fSv1FnPcc-kt8Vq31R3HFWJ653aG2NI7y9mvp3WQMyTb1gKPTnj3hLeLTtyqvI2Qk-IOIXgCyutPCeI6M5TErMbofo81OVMQ-9mvp3WQMyTb1gKPTnj3hLf0nMswkyOxx6sRyTyVW4x0TwordcMR9JXhiQYHBQACe9mvp3WQMyTb1gKPTnj3hLgqy6SNUjbM_3ZZr8FFlN7pAr1ggu8aMKC5tQhijPNPS9mvp3WQMyTb1gKPTnj3hLiU14OTaPMpjMkVrodC7zMNeiZpn0WUeM8iwra7KFAWa9mvp3WQMyTb1gKPTnj3hLjANJ1whXGuWqIcETY0gjMgcyl9ho8pBYkWUp78Ug73C9mvp3WQMyTb1gKPTnj3hLjZPWDGkZWWUUduXcRkvhKoX6UoC29STUocP8ydBIz629mvp3WQMyTb1gKPTnj3hLkGP1-8XlerbebJSIFGAg4XKxdtWrV9TInw9gDhf-LeK9mvp3WQMyTb1gKPTnj3hLkWVqpO9JOzgkoLcmMkjk4tZXpchIjYgMtlsBcwky-1O9mvp3WQMyTb1gKPTnj3hLkZccFJe_jlvGhDmsxI1j67j6q_12TcvoLzupd8rIz2q9mvp3WQMyTb1gKPTnj3hLlHB4-XxhlpaMOumcml1YZn6GiCz2yMnViWeklrt69Dy9mvp3WQMyTb1gKPTnj3hLluRQlFDTgNrDYv-OKVWJEoofHOVYhdINicJ7oqnQCQm9mvp3WQMyTb1gKPTnj3hLl4O17kSS6eiRxlXx9IA1lZ2tRTwOYjrw_nvywKV4heO9mvp3WQMyTb1gKPTnj3hLl6UaCUREYg3zjNjGUSyskJp1_UN64eTSKSmAdmEjgSe9mvp3WQMyTb1gKPTnj3hLl6jFuhHWH--7XWoF2k4VukctxMbNSXL8GgNd4yE0L-S9mvp3WQMyTb1gKPTnj3hLmSgg5uyMQdquS9irSPWCaOlDpnDTXKXivc0-fEyUoHK9mvp3WQMyTb1gKPTnj3hLmVShqZ1V6LGJqxvKQUuR9qAXGR9sQKhrbz7zaN2GADG9mvp3WQMyTb1gKPTnj3hLm69Pdtdr9daol7-9X0KboU0E4ItIw-6NdpMKgo__OJG9mvp3WQMyTb1gKPTnj3hLnCWfyzAdX8c5ftV1mWPg72s25CBX_XMEbmvQixSfdRy9mvp3WQMyTb1gKPTnj3hLndLcty9edBYn8ungOrGFA6NAPPapBKR5pNsF2X4iUKm9mvp3WQMyTb1gKPTnj3hLntM_D7wYC8Ay-JCcosSrNBjtwzpFpQ0lIaO1h2qj6iy9mvp3WQMyTb1gKPTnj3hLpNl4t8S9oVQ11Qj4uVkuwqWt-xLqe60UajXstTCUZC-9mvp3WQMyTb1gKPTnj3hLqSTTytbaQrc5m5aglaBvGPaxq6W4c7DV86DuIXO0i2y9mvp3WQMyTb1gKPTnj3hLrTvlicBHTpfeW7K_M1NJSLdruAN239xYsf7XZ7WhW_y9mvp3WQMyTb1gKPTnj3hLuNa154V7RYMOAXx749hWreuXxykOsGZaPUc6S-tR3PO9mvp3WQMyTb1gKPTnj3hLuT8GmVmPiyD6DazBLPz8HyVoeT9ud54EeV5tfCJTD3W9mvp3WQMyTb1gKPTnj3hLuwHaAzO7Y5x-HIBtsFYdyYpTFvIv7xCQ-40L5G2uSZq9mvp3WQMyTb1gKPTnj3hLvHX5EP8yD1y1mZ5mu9QDT0rlN6Qv3-81FhxTSONm4ha9mvp3WQMyTb1gKPTnj3hLvdARJunYVxDT_nWvHMFwKinwgbT2_faishNcApepzsW9mvp3WQMyTb1gKPTnj3hLvkNd980oqip8jbT8gXNHW3flq_OS92t8dvo_aYy3Gpq9mvp3WQMyTb1gKPTnj3hLvvdmO-XqTb_YaG4kcB4Db0wD-3_NZ6bFZu2UzgnERHC9mvp3WQMyTb1gKPTnj3hLwkaXWcGUfhT0tl9yqfWzr4tvbnJ7aLsNkThcv0IXaoq9mvp3WQMyTb1gKPTnj3hLw1Bb8-wQpR2s5BfHa4vRCTmgZdHzTnW4owZe4xzGm5a9mvp3WQMyTb1gKPTnj3hLxC0RxwzPXozz-5H98h2IQCGtg2ymit8su3mVwQv1iNS9mvp3WQMyTb1gKPTnj3hLxp1kpbg55BuhZ0JSfhcFahjOPCdv0m40kBobx9DjIhm9mvp3WQMyTb1gKPTnj3hLyzQAEa_rDXTEpYizbrqkQZYWCOjS-oDcqME4cshQeWu9mvp3WQMyTb1gKPTnj3hLzI7sbrkhLL-JelrOfoq-7OEHnxpt7wp4lZHLFUfx8IS9mvp3WQMyTb1gKPTnj3hLzxOiQ8HNLjyM635wEAOHzsv7gwUlu_nQtwx5rfPoQSi9mvp3WQMyTb1gKPTnj3hL2JoR0WxIjdT7vFQdSwf6-GcNZgmUSI_lSx-_8nBOQoi9mvp3WQMyTb1gKPTnj3hL2WaKtSeFCGeGwTS15L3b9yRSgTtpcyKauSqhpU0gG_W9mvp3WQMyTb1gKPTnj3hL2jVg_QwytUyD1PL_hpAD0giTaazyyJYI-K-nQ2v6RlW9mvp3WQMyTb1gKPTnj3hL3wKqtIOHqeHUxlIoCJy2q-GWyPSzlsfku8OV3hNpd_a9mvp3WQMyTb1gKPTnj3hL35GshalPzQz7gVW9fL76rBS4xe5zl_4syFmERZ4uoU69mvp3WQMyTb1gKPTnj3hL4FG3iOy67aUwRscOavYFj5UiLARhV7jEwbnCz8ZfRuW9mvp3WQMyTb1gKPTnj3hL4238cZ0hFMLjmuqIhJ4oRasyb29_504OU5t-VNgfNjG9mvp3WQMyTb1gKPTnj3hL45iR9Iu8xZO47YbOgs5mb8EUW5_L_SsHutCom_THv7-9mvp3WQMyTb1gKPTnj3hL5oVvE395mS3JT6L0MpfsMtLZp2975mEUxqE-_DvN9ci9mvp3WQMyTb1gKPTnj3hL6v-MhcIIuk1ba4BG9dYIF0fXebrad2jmSdBH_5sfZgy9mvp3WQMyTb1gKPTnj3hL7oOlZklhCadPasbkEN8AuymikOACFRauO4ojKI5-LnK9mvp3WQMyTb1gKPTnj3hL7tfg7_LtVZ4qee42H5lirzsemZEx4wu3_QdUb64Kcme9mvp3WQMyTb1gKPTnj3hL8bT2UTsNVEpojROtwpHvqMWfQgyl3LI-C1oG-n4NCD29mvp3WQMyTb1gKPTnj3hL8qFtNbVUaUGHpw1AymgpWfTzXCzg6rj9ZPesKrn1wkq9mvp3WQMyTb1gKPTnj3hL8x_UYcXplRBAP8l8HaLYqcvicFl9Mrrfj9Zrd0lfjZS9mvp3WQMyTb1gKPTnj3hL9I5t2HGOlTtgok8svqYKlSHermfbJUJbfTrOPFF92be9mvp3WQMyTb1gKPTnj3hLyAVgPE-gOHduQvJjxgS0nZaEAyLhki1WBqmwu7W__m-9mvp3WQMyTb1gKPTnj3hLHxYHjM4AnfYu255xcOZsquZwvOcbj5LTgoDFaqNyAx29mvp3WQMyTb1gKPTnj3hLN6SAN02vYgLOeQwxiiu4qjeXMRJhFgqOMFWLfep4x6a9mvp3WQMyTb1gKPTnj3hLQIuLPfWrsENSGkk1JQIxdasSYbHeIQZNa_JHzhQhU7m9mvp3WQMyTb1gKPTnj3hLVAgB3TRdwcM-9DGzW_TA5ovTGbV3uavhqc_xy8OfVI-9mvp3WQMyTb1gKPTnj3hLBAs7wznptvms2Ci4jzSCpcP2TmflpxS6HainBFOzSva9mvp3WQMyTb1gKPTnj3hLEUKgzHyQBN_2TFlISE1qfsNRThdvXKa97tegk5QLk8y9mvp3WQMyTb1gKPTnj3hLKIh48S6LnGzL9gHHPV9OmFysD_P8sMJORBSRKz65HxW9mvp3WQMyTb1gKPTnj3hLLqTLah8esdPc6C1U_eJt7SQ7o-GN58bSEZAqWU_lZ4i9mvp3WQMyTb1gKPTnj3hLQNbK4ClzeJCAz0w6mtEbWgpNi7pEOKuW4nbMeERU3ue9mvp3WQMyTb1gKPTnj3hLTwIU_OT6iJfQyApG1tq0Ekcm0Tb8JJLv0Bv-36OIepy9mvp3WQMyTb1gKPTnj3hLXCr-NL2Keuu7Q5wlHftqQk8A5TWsTfYewZdFtvEOiTq9mvp3WQMyTb1gKPTnj3hLmdetoNZ-UjMQjb12cC9LFoCHz8TsZUlNbKirqFj-utq9mvp3WQMyTb1gKPTnj3hLpgiof1G991MrS4D6lerf3xv4sMu1in05OcnxHBLnHIW9mvp3WQMyTb1gKPTnj3hLvdQIbAGfXTiEU8bZNHXTmldlcrr_dWEsMhtGo1pTKbG9mvp3WQMyTb1gKPTnj3hLy5lLQAWQtmy_VfxmNVXK8NTxziZ0ZNBFLCNh4F7hzVC9mvp3WQMyTb1gKPTnj3hL1u6Nt4LjbK_7TZ-CB5AEh96TCqvMHRlvpFX7_W83Jz29mvp3WQMyTb1gKPTnj3hL3aASHc8WfbHiYi0Q9FRwGDesavMEoD7AazAnkEmIxWu9mvp3WQMyTb1gKPTnj3hL5CVyr6xyD11KHHqq-ALwlNrOtoL06SeDsrs_oAhir3-9mvp3WQMyTb1gKPTnj3hL5iNtwe4HTAd8ehybOWWUdDCEe-El9663HZGhKBM66n-9mvp3WQMyTb1gKPTnj3hL74e-iaQTZX3ochSYVSz54PPB9xvGLfpjufJbvGboZJS9mvp3WQMyTb1gKPTnj3hL9eiS3W7Ewt76SklcCSGbYhN5tk2j0bLjSt9LXxECvTm9mvp3WQMyTb1gKPTnj3hL1CQRkM1aNp2MNExmDiTzAn-45wZPqzN3DpP6dl_7FS69mvp3WQMyTb1gKPTnj3hLIxQuFEJPs_9O_HXQC2OGdyeEGrpQBRSQcO4kF9-Kt5m9mvp3WQMyTb1gKPTnj3hLkXIap2JmtbsvgAnxGIUQo25Ur9VulnOH6n0LEU14IIm9mvp3WQMyTb1gKPTnj3hL3Ir_f6qdGgCj4y7vv4mbMFnLsxOki4L6nI2TH9WPtp29mvp3WQMyTb1gKPTnj3hLmVntTgXlSLWfIZMIpFVj6oW7Ikwa2W3sDpbA5x_8zYG9mvp3WQMyTb1gKPTnj3hLR7MaHHhnZEsu6Ak7LV--IeIfd8FheiwIgS9XrOCFDp-9mvp3WQMyTb1gKPTnj3hL-rw3nfOV5vUkcrRPpQgvnw4NpIDwUZjGaBS3BVsD9Ea9mvp3WQMyTb1gKPTnj3hL43_z_A7_IL_BwGCkv1aIXh79VajpzjxfSGlETKz_rQu9mvp3WQMyTb1gKPTnj3hLTNrjkgpRLJwFKotKupCWlpsKAZe2FAMeTGSl2JjLCbm9mvp3WQMyTb1gKPTnj3hLW4nxqiQ1oD0Y2bID0X-0-6T49Qds8fm41tm4JiIiNcG9mvp3WQMyTb1gKPTnj3hLAH9MlRJXE7ESCT4hZj4tI-PBrpzktd4NWKKXMyM2oti9mvp3WQMyTb1gKPTnj3hL4GDaCVYa4A3PsXadbo6EaGih6ZpUsUql0GifKEDOxt-9mvp3WQMyTb1gKPTnj3hLSPRYTeHF7GUMJebGI2Nc4QG9gmF_xADUFQ8K7iNVtMq9mvp3WQMyTb1gKPTnj3hLr3mxQGRgG8CYfUdHrx6RSiKMBdYiztoDt6T2cBT-52e9mvp3WQMyTb1gKPTnj3hLw9ZeF01H03cstDHqWZu6drhnC_qlEIGJV5ZDLi72Rh-9mvp3WQMyTb1gKPTnj3hLHpGPFwp5a0sLFAC7m9rnW-HPhnBcLQ_I-53QxQFrkzu9mvp3WQMyTb1gKPTnj3hLZtCAPiVQ2eeQgprhtfgVR8yb--abUYFwaOy12rt6ify9mvp3WQMyTb1gKPTnj3hLKEFT59BKnxh-XD2_4Xsmcq0vvdEZ8nvseJQXt5GYU-y9mvp3WQMyTb1gKPTnj3hL7dLLVXJuEKvt7J3oyl3tKJrXk6s7aRnRY8h1_sEgnNW9mvp3WQMyTb1gKPTnj3hLkK7FxJlWdKhJwdE4RGPzsCtapiWlwyD8T-fZu1imI5g=" -> "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" # forces replacement
                        # (1 unchanged attribute hidden)
                    }
        
                    # (3 unchanged blocks hidden)
                }
            }
        
        Plan: 1 to add, 0 to change, 1 to destroy.
```
created_at: 2025-01-09T16:24:21Z
author_association: COLLABORATOR
diff_hunk: @@ -270,3 +270,69 @@ properties:
     custom_expand: 'templates/terraform/custom_expand/resourceref_with_validation.go.tmpl'
     resource: 'Snapshot'
     imports: 'selfLink'
+  - name: 'shieldedInstanceInitialState'
+    type: NestedObject
+    description: Set the secure boot keys of shielded instance.
+    properties:
+      - name: 'pk'
+        type: NestedObject
+        description: The Platform Key (PK).
+        properties:
+          - name: 'content'
+            type: String
+            description: |
+              The raw content in the secure keys file.
+
+              A base64-encoded string.
+            required: true
+          - name: 'fileType'
+            type: String
+            description: The file type of source file.
+      - name: 'keks'
+        type: Array
+        description: The Key Exchange Key (KEK).
+        item_type:
+          type: NestedObject
+          properties:
+            - name: 'content'
+              type: String
+              description: |
+                The raw content in the secure keys file.
+
+                A base64-encoded string.
+              required: true
+            - name: 'fileType'
+              type: String
+              description: The file type of source file.
+      - name: 'dbs'
+        type: Array
+        description: The Key Database (db).
+        item_type:
+          type: NestedObject
+          properties:
+            - name: 'content'
+              type: String
+              description: |
+                The raw content in the secure keys file.
+
+                A base64-encoded string.
+              required: true
+            - name: 'fileType'
+              type: String
+              description: The file type of source file.
+      - name: 'dbxs'
+        type: Array
+        description: The forbidden key database (dbx).
+        item_type:
+          type: NestedObject
+          properties:
+            - name: 'content'
path: mmv1/products/compute/Image.yaml
user: login: NotTheEvilOne
body: @BBBmau: The underlying issue seems to be not related to the intended code change. Validating the base64 strings listed above shows that the Terraform stored one is not valid base64 (trying to decode it brings up errors like `base64: invalid input`).

Digging deeper reveals that the replacement base64 string is exactly the same content as originally given to Terraform. See https://github.com/GoogleCloudPlatform/magic-modules/pull/12369/files#diff-76cff5fcb27bc557132d49c609a7aed73a0cd3f5d4f090cb667c565c182cd133R525

Your help in further debugging would be highly appreciated as I'm not sure why the string changes.
created_at: 2025-01-09T16:52:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -270,3 +271,73 @@ properties:
     custom_expand: 'templates/terraform/custom_expand/resourceref_with_validation.go.tmpl'
     resource: 'Snapshot'
     imports: 'selfLink'
+  - name: 'shieldedInstanceInitialState'
path: mmv1/products/compute/Image.yaml
user: login: SirGitsalot
body: It looks like `shieldedInstanceInitialState` needs `default_from_api: true` (documented [here](https://googlecloudplatform.github.io/magic-modules/reference/field/#default_from_api)).

[`TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain`](https://github.com/hashicorp/terraform-provider-google-beta/blob/f3e48ac118bcf39c752fbf7177228af83ee93b1c/google-beta/services/compute/resource_compute_instance_from_template_test.go#L1507) creates a new `google_compute_image` from an existing Ubuntu image, and that Ubuntu image has `shieldedInstanceInitialState` set, causing a plan mismatch (that is, if you create a new image from an existing image that has `shieldedInstanceInitialState` but don't specify your own `shieldedInstanceInitialState`, the API is returning the `shieldedInstanceInitialState` from the source image; Terraform is expecting there to be no `shieldedInstanceInitialState` on output since none was specified on input).

created_at: 2025-02-25T21:01:31Z
author_association: MEMBER
diff_hunk: @@ -270,3 +271,73 @@ properties:
     custom_expand: 'templates/terraform/custom_expand/resourceref_with_validation.go.tmpl'
     resource: 'Snapshot'
     imports: 'selfLink'
+  - name: 'shieldedInstanceInitialState'
path: mmv1/products/compute/Image.yaml
user: login: yeoldegrove
body: @SirGitsalot added `default_from_api: true`
created_at: 2025-02-27T13:48:09Z
author_association: CONTRIBUTOR
diff_hunk: @@ -225,6 +225,7 @@ properties:
           An optional SHA1 checksum of the disk image before unpackaging.
           This is provided by the client when the disk image is created.
         api_name: sha1Checksum
+        diff_suppress_func: 'tpgresource.Base64DiffSuppress'
path: mmv1/products/compute/Image.yaml
user: login: SirGitsalot
body: Is this newly necessary?
created_at: 2025-03-13T00:15:05Z
author_association: MEMBER
diff_hunk: @@ -225,6 +225,7 @@ properties:
           An optional SHA1 checksum of the disk image before unpackaging.
           This is provided by the client when the disk image is created.
         api_name: sha1Checksum
+        diff_suppress_func: 'tpgresource.Base64DiffSuppress'
path: mmv1/products/compute/Image.yaml
user: login: NotTheEvilOne
body: Hi @SirGitsalot,

We had an interesting side-effect with [base64-encoded strings [1]](https://github.com/GoogleCloudPlatform/magic-modules/pull/12369#pullrequestreview-2540385326). For that reason my colleague @yeoldegrove added [this function [2]](https://github.com/GoogleCloudPlatform/magic-modules/pull/12369/commits/7e02c79f194d0eb253c1edac21460b7e63e78ade).

[1] https://github.com/GoogleCloudPlatform/magic-modules/pull/12369#pullrequestreview-2540385326
[2] https://github.com/GoogleCloudPlatform/magic-modules/pull/12369/commits/7e02c79f194d0eb253c1edac21460b7e63e78ade
created_at: 2025-03-17T06:57:32Z
author_association: CONTRIBUTOR

PR comments:
user: login: google-cla[bot]
created_at: 2024-11-20T13:20:16Z
body: Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this [failed invocation](https://github.com/GoogleCloudPlatform/magic-modules/pull/12369/checks?check_run_id=33262950939) of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.
author_association: NONE
user: login: github-actions[bot]
created_at: 2024-11-20T13:20:50Z
body: Hello! I am a robot. Tests will require approval from a repository maintainer to run.

@SirGitsalot, a repository maintainer, has been assigned to [review your changes](https://googlecloudplatform.github.io/magic-modules/contribute/review-pr/). If you have not received review feedback within 2 business days, please leave a comment on this PR asking them to take a look.

You can help make sure that review is quick by [doing a self-review](https://googlecloudplatform.github.io/magic-modules/contribute/review-pr/) and by [running impacted tests locally](https://googlecloudplatform.github.io/magic-modules/get-started/run-provider-tests/).

author_association: NONE
user: login: modular-magician
created_at: 2024-11-22T19:21:35Z
body: Hi there, I'm the Modular magician. I've detected the following information about your changes:

## Diff report

Your PR generated some diffs in downstreams - here they are.

`google` provider: [Diff](https://github.com/modular-magician/terraform-provider-google/compare/auto-pr-12369-old..auto-pr-12369) ( 2 files changed, 497 insertions(+))
`google-beta` provider: [Diff](https://github.com/modular-magician/terraform-provider-google-beta/compare/auto-pr-12369-old..auto-pr-12369) ( 2 files changed, 497 insertions(+))
`terraform-google-conversion`: [Diff](https://github.com/modular-magician/terraform-google-conversion/compare/auto-pr-12369-old..auto-pr-12369) ( 1 file changed, 191 insertions(+))



## Missing test report
Your PR includes resource fields which are not covered by any test.

Resource: `google_compute_image` (567 total tests)
Please add an acceptance test which includes these fields. The test should include the following:

```hcl
resource "google_compute_image" "primary" {
  shielded_instance_initial_state {
    dbs {
      content   = # value needed
      file_type = # value needed
    }
    dbxs {
      content   = # value needed
      file_type = # value needed
    }
    keks {
      content   = # value needed
      file_type = # value needed
    }
    pk {
      content   = # value needed
      file_type = # value needed
    }
  }
}


```

author_association: COLLABORATOR
user: login: modular-magician
created_at: 2024-11-22T19:41:28Z
body: #### Tests analytics
Total tests: 1064
Passed tests: 989
Skipped tests: 73
Affected tests: 2

<details>
<summary>Click here to see the affected service packages</summary>
<blockquote>

<ul>
<li>compute</li>

</ul>

</blockquote>
</details>

#### Action taken
<details>
<summary>Found 2 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
</summary>
<blockquote>
<ul>
<li>TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain</li>
<li>TestAccComputeInstanceNetworkIntefaceWithSecurityPolicy</li>

</ul>
</blockquote>
</details>

[Get to know how VCR tests work](https://googlecloudplatform.github.io/magic-modules/docs/getting-started/contributing/#general-contributing-steps)
author_association: COLLABORATOR
user: login: modular-magician
created_at: 2024-11-22T20:06:13Z
body: 🔴 Tests failed during RECORDING mode:
`TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/build-log/recording_build/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/recording/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain.log)]
`TestAccComputeInstanceNetworkIntefaceWithSecurityPolicy` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/build-log/recording_build/TestAccComputeInstanceNetworkIntefaceWithSecurityPolicy_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/recording/TestAccComputeInstanceNetworkIntefaceWithSecurityPolicy.log)]



🔴 Errors occurred during RECORDING mode. Please fix them to complete your PR.



View the [build log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/build-log/recording_test.log) or the [debug log](https://console.cloud.google.com/storage/browser/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/recording) for each test
author_association: COLLABORATOR
user: login: NotTheEvilOne
created_at: 2024-11-24T09:19:23Z
body: > 🔴 Tests failed during RECORDING mode: `TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/build-log/recording_build/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/recording/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain.log)] `TestAccComputeInstanceNetworkIntefaceWithSecurityPolicy` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/build-log/recording_build/TestAccComputeInstanceNetworkIntefaceWithSecurityPolicy_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/recording/TestAccComputeInstanceNetworkIntefaceWithSecurityPolicy.log)]
> 
> 🔴 Errors occurred during RECORDING mode. Please fix them to complete your PR.
> 
> View the [build log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/build-log/recording_test.log) or the [debug log](https://console.cloud.google.com/storage/browser/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/f5b456c3-56cc-465d-ac07-c8fb7978e5ba/recording) for each test

The error message `[...] does not have storage.objects.list access to the Google Cloud Storage bucket. Permission 'storage.objects.list' denied on resource (or it may not exist). ` alternatively to `403 Forbidden` is not helpful in finding out what error occurred.
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2024-11-25T09:42:25Z
body: @BBBmau This PR has been waiting for review for 3 weekdays. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: github-actions[bot]
created_at: 2024-11-27T09:42:46Z
body: @GoogleCloudPlatform/terraform-team @BBBmau This PR has been waiting for review for 1 week. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: github-actions[bot]
created_at: 2024-12-04T09:42:47Z
body: @GoogleCloudPlatform/terraform-team @BBBmau This PR has been waiting for review for 2 weeks. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: github-actions[bot]
created_at: 2024-12-11T09:42:32Z
body: @GoogleCloudPlatform/terraform-team @BBBmau This PR has been waiting for review for 3 weeks. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: github-actions[bot]
created_at: 2024-12-18T09:42:15Z
body: @GoogleCloudPlatform/terraform-team @BBBmau This PR has been waiting for review for 4 weeks. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: modular-magician
created_at: 2024-12-18T19:49:39Z
body: Hi there, I'm the Modular magician. I've detected the following information about your changes:

## Diff report

Your PR generated some diffs in downstreams - here they are.

`google` provider: [Diff](https://github.com/modular-magician/terraform-provider-google/compare/auto-pr-12369-old..auto-pr-12369) ( 2 files changed, 497 insertions(+))
`google-beta` provider: [Diff](https://github.com/modular-magician/terraform-provider-google-beta/compare/auto-pr-12369-old..auto-pr-12369) ( 2 files changed, 497 insertions(+))
`terraform-google-conversion`: [Diff](https://github.com/modular-magician/terraform-google-conversion/compare/auto-pr-12369-old..auto-pr-12369) ( 1 file changed, 191 insertions(+))



## Missing test report
Your PR includes resource fields which are not covered by any test.

Resource: `google_compute_image` (581 total tests)
Please add an acceptance test which includes these fields. The test should include the following:

```hcl
resource "google_compute_image" "primary" {
  shielded_instance_initial_state {
    dbs {
      content   = # value needed
      file_type = # value needed
    }
    dbxs {
      content   = # value needed
      file_type = # value needed
    }
    keks {
      content   = # value needed
      file_type = # value needed
    }
    pk {
      content   = # value needed
      file_type = # value needed
    }
  }
}


```

author_association: COLLABORATOR
user: login: modular-magician
created_at: 2024-12-18T20:08:47Z
body: #### Tests analytics
Total tests: 1076
Passed tests: 1002
Skipped tests: 73
Affected tests: 1

<details>
<summary>Click here to see the affected service packages</summary>
<blockquote>

<ul>
<li>compute</li>

</ul>

</blockquote>
</details>

#### Action taken
<details>
<summary>Found 1 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
</summary>
<blockquote>
<ul>
<li>TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain</li>

</ul>
</blockquote>
</details>

[Get to know how VCR tests work](https://googlecloudplatform.github.io/magic-modules/develop/test/test/)
author_association: COLLABORATOR
user: login: modular-magician
created_at: 2024-12-18T20:13:36Z
body: 🔴 Tests failed during RECORDING mode:
`TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/41912502-6569-4fe6-91c5-6cf98970de23/build-log/recording_build/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/41912502-6569-4fe6-91c5-6cf98970de23/recording/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain.log)]



🔴 Errors occurred during RECORDING mode. Please fix them to complete your PR.



View the [build log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/41912502-6569-4fe6-91c5-6cf98970de23/build-log/recording_test.log) or the [debug log](https://console.cloud.google.com/storage/browser/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/41912502-6569-4fe6-91c5-6cf98970de23/recording) for each test
author_association: COLLABORATOR
user: login: github-actions[bot]
created_at: 2025-01-01T09:41:03Z
body: @NotTheEvilOne, this PR is waiting for action from you. If no action is taken, this PR will be closed in 28 days.

Please address any comments or change requests, or [re-request review](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review) from a core reviewer if no action is required.

![Image showing the re-request review button](https://docs.github.com/assets/cb-28785/mw-1440/images/help/pull_requests/request-re-review.webp)

This notification can be disabled with the `disable-automatic-closure` label.

author_association: NONE
user: login: modular-magician
created_at: 2025-01-09T15:49:27Z
body: Hi there, I'm the Modular magician. I've detected the following information about your changes:

## Diff report

Your PR generated some diffs in downstreams - here they are.

`google` provider: [Diff](https://github.com/modular-magician/terraform-provider-google/compare/auto-pr-12369-old..auto-pr-12369) ( 3 files changed, 566 insertions(+))
`google-beta` provider: [Diff](https://github.com/modular-magician/terraform-provider-google-beta/compare/auto-pr-12369-old..auto-pr-12369) ( 3 files changed, 566 insertions(+))
`terraform-google-conversion`: [Diff](https://github.com/modular-magician/terraform-google-conversion/compare/auto-pr-12369-old..auto-pr-12369) ( 1 file changed, 191 insertions(+))



author_association: COLLABORATOR
user: login: modular-magician
created_at: 2025-01-09T16:08:34Z
body: #### Tests analytics
Total tests: 1081
Passed tests: 1005
Skipped tests: 73
Affected tests: 3

<details>
<summary>Click here to see the affected service packages</summary>
<blockquote>

<ul>
<li>compute</li>

</ul>

</blockquote>
</details>

#### Action taken
<details>
<summary>Found 3 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
</summary>
<blockquote>
<ul>
<li>TestAccComputeImage_shieldedInstanceInitialState</li>
<li>TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain</li>
<li>TestAccComputeRegionPerInstanceConfig_removeInstanceOnDestroy</li>

</ul>
</blockquote>
</details>

[Get to know how VCR tests work](https://googlecloudplatform.github.io/magic-modules/develop/test/test/)
author_association: COLLABORATOR
user: login: modular-magician
created_at: 2025-01-09T16:18:30Z
body: 🟢 Tests passed during RECORDING mode:
`TestAccComputeRegionPerInstanceConfig_removeInstanceOnDestroy` [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/a53807d7-4f7d-405b-a9a9-cc67cf2560f4/recording/TestAccComputeRegionPerInstanceConfig_removeInstanceOnDestroy.log)]

🟢 No issues found for passed tests after REPLAYING rerun.

---


🔴 Tests failed during RECORDING mode:
`TestAccComputeImage_shieldedInstanceInitialState` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/a53807d7-4f7d-405b-a9a9-cc67cf2560f4/build-log/recording_build/TestAccComputeImage_shieldedInstanceInitialState_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/a53807d7-4f7d-405b-a9a9-cc67cf2560f4/recording/TestAccComputeImage_shieldedInstanceInitialState.log)]
`TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/a53807d7-4f7d-405b-a9a9-cc67cf2560f4/build-log/recording_build/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/a53807d7-4f7d-405b-a9a9-cc67cf2560f4/recording/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain.log)]



🔴 Errors occurred during RECORDING mode. Please fix them to complete your PR.



View the [build log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/a53807d7-4f7d-405b-a9a9-cc67cf2560f4/build-log/recording_test.log) or the [debug log](https://console.cloud.google.com/storage/browser/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/a53807d7-4f7d-405b-a9a9-cc67cf2560f4/recording) for each test
author_association: COLLABORATOR
user: login: github-actions[bot]
created_at: 2025-01-16T09:41:05Z
body: @BBBmau This PR has been waiting for review for 3 weekdays. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-01-20T09:41:47Z
body: @GoogleCloudPlatform/terraform-team @BBBmau This PR has been waiting for review for 1 week. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: modular-magician
created_at: 2025-01-24T19:59:53Z
body: Hi there, I'm the Modular magician. I've detected the following information about your changes:

## Diff report

Your PR generated some diffs in downstreams - here they are.

`google` provider: [Diff](https://github.com/modular-magician/terraform-provider-google/compare/auto-pr-12369-old..auto-pr-12369) ( 4 files changed, 574 insertions(+))
`google-beta` provider: [Diff](https://github.com/modular-magician/terraform-provider-google-beta/compare/auto-pr-12369-old..auto-pr-12369) ( 4 files changed, 574 insertions(+))
`terraform-google-conversion`: [Diff](https://github.com/modular-magician/terraform-google-conversion/compare/auto-pr-12369-old..auto-pr-12369) ( 1 file changed, 191 insertions(+))



author_association: COLLABORATOR
user: login: modular-magician
created_at: 2025-01-24T20:19:20Z
body: #### Tests analytics
Total tests: 1098
Passed tests: 1021
Skipped tests: 75
Affected tests: 2

<details>
<summary>Click here to see the affected service packages</summary>
<blockquote>

<ul>
<li>compute</li>

</ul>

</blockquote>
</details>

#### Action taken
<details>
<summary>Found 2 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
</summary>
<blockquote>
<ul>
<li>TestAccComputeImage_shieldedInstanceInitialState</li>
<li>TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain</li>

</ul>
</blockquote>
</details>

[Get to know how VCR tests work](https://googlecloudplatform.github.io/magic-modules/develop/test/test/)
author_association: COLLABORATOR
user: login: modular-magician
created_at: 2025-01-24T20:24:12Z
body: 🔴 Tests failed during RECORDING mode:
`TestAccComputeImage_shieldedInstanceInitialState` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/90cfdaca-6f3d-4a8d-b761-00c01426095b/build-log/recording_build/TestAccComputeImage_shieldedInstanceInitialState_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/90cfdaca-6f3d-4a8d-b761-00c01426095b/recording/TestAccComputeImage_shieldedInstanceInitialState.log)]
`TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/90cfdaca-6f3d-4a8d-b761-00c01426095b/build-log/recording_build/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/90cfdaca-6f3d-4a8d-b761-00c01426095b/recording/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain.log)]



🔴 Errors occurred during RECORDING mode. Please fix them to complete your PR.



View the [build log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/90cfdaca-6f3d-4a8d-b761-00c01426095b/build-log/recording_test.log) or the [debug log](https://console.cloud.google.com/storage/browser/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/90cfdaca-6f3d-4a8d-b761-00c01426095b/recording) for each test
author_association: COLLABORATOR
user: login: github-actions[bot]
created_at: 2025-01-27T09:42:11Z
body: @GoogleCloudPlatform/terraform-team @BBBmau This PR has been waiting for review for 2 weeks. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-02-03T09:41:59Z
body: @GoogleCloudPlatform/terraform-team @BBBmau This PR has been waiting for review for 3 weeks. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-02-10T09:42:01Z
body: @GoogleCloudPlatform/terraform-team @BBBmau This PR has been waiting for review for 4 weeks. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-02-17T09:42:35Z
body: @GoogleCloudPlatform/terraform-team @BBBmau This PR has been waiting for review for 5 weeks. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: melinath
created_at: 2025-02-19T16:55:56Z
body: @modular-magician reassign-reviewer
author_association: MEMBER
user: login: NotTheEvilOne
created_at: 2025-02-20T08:54:33Z
body: Interesting. I'll have a look at this implementation detail.
author_association: CONTRIBUTOR
user: login: yeoldegrove
created_at: 2025-02-24T18:10:34Z
body: @SirGitsalot I stepped in for @NotTheEvilOne and added `Base64DiffSuppress` and an additional test.
author_association: CONTRIBUTOR
user: login: SirGitsalot
created_at: 2025-02-24T23:41:59Z
body: /gcbrun
author_association: MEMBER
user: login: modular-magician
created_at: 2025-02-25T00:13:13Z
body: Hi there, I'm the Modular magician. I've detected the following information about your changes:

## Diff report

Your PR generated some diffs in downstreams - here they are.

`google` provider: [Diff](https://github.com/modular-magician/terraform-provider-google/compare/auto-pr-12369-old..auto-pr-12369) ( 6 files changed, 772 insertions(+), 3 deletions(-))
`google-beta` provider: [Diff](https://github.com/modular-magician/terraform-provider-google-beta/compare/auto-pr-12369-old..auto-pr-12369) ( 6 files changed, 772 insertions(+), 3 deletions(-))
`terraform-google-conversion`: [Diff](https://github.com/modular-magician/terraform-google-conversion/compare/auto-pr-12369-old..auto-pr-12369) ( 1 file changed, 191 insertions(+))



## Missing test report
Your PR includes resource fields which are not covered by any test.

Resource: `google_compute_image` (585 total tests)
Please add an acceptance test which includes these fields. The test should include the following:

```hcl
resource "google_compute_image" "primary" {
  raw_disk {
    sha1 = # value needed
  }
}


```

author_association: COLLABORATOR
user: login: modular-magician
created_at: 2025-02-25T02:13:45Z
body: #### Tests analytics
Total tests: 4614
Passed tests: 4176
Skipped tests: 432
Affected tests: 6

<details>
<summary>Click here to see the affected service packages</summary>
<blockquote>

All service packages are affected

</blockquote>
</details>

#### Action taken
<details>
<summary>Found 6 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
</summary>
<blockquote>
<ul>
<li>TestAccCloudbuildWorkerPool_basic</li>
<li>TestAccComputeImage_shieldedInstance_InitialState</li>
<li>TestAccComputeImage_shieldedInstance_UpdatedState</li>
<li>TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain</li>
<li>TestAccDataSourceGoogleGkeHubFeature_basic</li>
<li>TestAccEphemeralServiceAccountKey_basic</li>

</ul>
</blockquote>
</details>

[Get to know how VCR tests work](https://googlecloudplatform.github.io/magic-modules/develop/test/test/)
author_association: COLLABORATOR
user: login: modular-magician
created_at: 2025-02-25T02:23:42Z
body: 🟢 Tests passed during RECORDING mode:
`TestAccComputeImage_shieldedInstance_InitialState` [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/recording/TestAccComputeImage_shieldedInstance_InitialState.log)]
`TestAccComputeImage_shieldedInstance_UpdatedState` [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/recording/TestAccComputeImage_shieldedInstance_UpdatedState.log)]
`TestAccDataSourceGoogleGkeHubFeature_basic` [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/recording/TestAccDataSourceGoogleGkeHubFeature_basic.log)]


🔴 Tests failed when rerunning REPLAYING mode:
`TestAccDataSourceGoogleGkeHubFeature_basic` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/build-log/replaying_build_after_recording/TestAccDataSourceGoogleGkeHubFeature_basic_replaying_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/replaying_after_recording/TestAccDataSourceGoogleGkeHubFeature_basic.log)]


Tests failed due to non-determinism or randomness when the VCR replayed the response after the HTTP request was made.

Please fix these to complete your PR. If you believe these test failures to be incorrect or unrelated to your change, or if you have any questions, please raise the concern with your reviewer.


---


🔴 Tests failed during RECORDING mode:
`TestAccCloudbuildWorkerPool_basic` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/build-log/recording_build/TestAccCloudbuildWorkerPool_basic_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/recording/TestAccCloudbuildWorkerPool_basic.log)]
`TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/build-log/recording_build/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/recording/TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain.log)]
`TestAccEphemeralServiceAccountKey_basic` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/build-log/recording_build/TestAccEphemeralServiceAccountKey_basic_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/recording/TestAccEphemeralServiceAccountKey_basic.log)]



🔴 Errors occurred during RECORDING mode. Please fix them to complete your PR.



View the [build log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/build-log/recording_test.log) or the [debug log](https://console.cloud.google.com/storage/browser/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/beebd6ef-325f-4e7f-ace3-3a5044fafc73/recording) for each test
author_association: COLLABORATOR
user: login: github-actions[bot]
created_at: 2025-02-25T09:42:52Z
body: @SirGitsalot This PR has been waiting for review for 3 weekdays. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: SirGitsalot
created_at: 2025-02-27T19:48:08Z
body: /gcbrun
author_association: MEMBER
user: login: modular-magician
created_at: 2025-02-27T19:59:03Z
body: Hi there, I'm the Modular magician. I've detected the following information about your changes:

## Diff report

Your PR generated some diffs in downstreams - here they are.

`google` provider: [Diff](https://github.com/modular-magician/terraform-provider-google/compare/auto-pr-12369-old..auto-pr-12369) ( 6 files changed, 773 insertions(+), 3 deletions(-))
`google-beta` provider: [Diff](https://github.com/modular-magician/terraform-provider-google-beta/compare/auto-pr-12369-old..auto-pr-12369) ( 6 files changed, 773 insertions(+), 3 deletions(-))
`terraform-google-conversion`: [Diff](https://github.com/modular-magician/terraform-google-conversion/compare/auto-pr-12369-old..auto-pr-12369) ( 1 file changed, 191 insertions(+))



## Missing test report
Your PR includes resource fields which are not covered by any test.

Resource: `google_compute_image` (585 total tests)
Please add an acceptance test which includes these fields. The test should include the following:

```hcl
resource "google_compute_image" "primary" {
  raw_disk {
    sha1 = # value needed
  }
}


```



author_association: COLLABORATOR
user: login: modular-magician
created_at: 2025-02-27T21:58:52Z
body: #### Tests analytics
Total tests: 4645
Passed tests: 4202
Skipped tests: 436
Affected tests: 7

<details>
<summary>Click here to see the affected service packages</summary>
<blockquote>

All service packages are affected

</blockquote>
</details>

#### Action taken
<details>
<summary>Found 7 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
</summary>
<blockquote>
<ul>
<li>TestAccAccessContextManager</li>
<li>TestAccCloudbuildWorkerPool_basic</li>
<li>TestAccDataSourceGoogleGkeHubFeature_basic</li>
<li>TestAccEphemeralServiceAccountKey_basic</li>
<li>TestAccSecretManagerSecretVersion_secretVersionBasicWriteOnlyExample</li>
<li>TestAccSecretManagerSecretVersion_secretVersionWithBase64StringSecretDataWriteOnlyExample</li>
<li>TestAccSqlUser_password_wo</li>

</ul>
</blockquote>
</details>

[Get to know how VCR tests work](https://googlecloudplatform.github.io/magic-modules/develop/test/test/)
author_association: COLLABORATOR
user: login: modular-magician
created_at: 2025-02-27T22:17:18Z
body: 🟢 Tests passed during RECORDING mode:
`TestAccAccessContextManager` [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/recording/TestAccAccessContextManager.log)]
`TestAccDataSourceGoogleGkeHubFeature_basic` [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/recording/TestAccDataSourceGoogleGkeHubFeature_basic.log)]


🔴 Tests failed when rerunning REPLAYING mode:
`TestAccDataSourceGoogleGkeHubFeature_basic` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/build-log/replaying_build_after_recording/TestAccDataSourceGoogleGkeHubFeature_basic_replaying_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/replaying_after_recording/TestAccDataSourceGoogleGkeHubFeature_basic.log)]


Tests failed due to non-determinism or randomness when the VCR replayed the response after the HTTP request was made.

Please fix these to complete your PR. If you believe these test failures to be incorrect or unrelated to your change, or if you have any questions, please raise the concern with your reviewer.


---


🔴 Tests failed during RECORDING mode:
`TestAccCloudbuildWorkerPool_basic` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/build-log/recording_build/TestAccCloudbuildWorkerPool_basic_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/recording/TestAccCloudbuildWorkerPool_basic.log)]
`TestAccEphemeralServiceAccountKey_basic` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/build-log/recording_build/TestAccEphemeralServiceAccountKey_basic_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/recording/TestAccEphemeralServiceAccountKey_basic.log)]
`TestAccSecretManagerSecretVersion_secretVersionBasicWriteOnlyExample` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/build-log/recording_build/TestAccSecretManagerSecretVersion_secretVersionBasicWriteOnlyExample_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/recording/TestAccSecretManagerSecretVersion_secretVersionBasicWriteOnlyExample.log)]
`TestAccSecretManagerSecretVersion_secretVersionWithBase64StringSecretDataWriteOnlyExample` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/build-log/recording_build/TestAccSecretManagerSecretVersion_secretVersionWithBase64StringSecretDataWriteOnlyExample_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/recording/TestAccSecretManagerSecretVersion_secretVersionWithBase64StringSecretDataWriteOnlyExample.log)]
`TestAccSqlUser_password_wo` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/build-log/recording_build/TestAccSqlUser_password_wo_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/recording/TestAccSqlUser_password_wo.log)]



🔴 Errors occurred during RECORDING mode. Please fix them to complete your PR.



View the [build log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/build-log/recording_test.log) or the [debug log](https://console.cloud.google.com/storage/browser/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/abc4cdca-43c5-403b-91c3-fae77a074f78/recording) for each test
author_association: COLLABORATOR
user: login: github-actions[bot]
created_at: 2025-03-04T09:43:14Z
body: @SirGitsalot This PR has been waiting for review for 3 weekdays. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: NotTheEvilOne
created_at: 2025-03-04T12:30:59Z
body: Thanks for jumping in @yeoldegrove. Could you share some insight what went wrong with the last test run @SirGitsalot?
author_association: CONTRIBUTOR
user: login: SirGitsalot
created_at: 2025-03-05T00:19:12Z
body: /gcbrun
author_association: MEMBER
user: login: modular-magician
created_at: 2025-03-05T00:48:28Z
body: Hi there, I'm the Modular magician. I've detected the following information about your changes:

## Diff report

Your PR generated some diffs in downstreams - here they are.

`google` provider: [Diff](https://github.com/modular-magician/terraform-provider-google/compare/auto-pr-12369-old..auto-pr-12369) ( 6 files changed, 773 insertions(+), 3 deletions(-))
`google-beta` provider: [Diff](https://github.com/modular-magician/terraform-provider-google-beta/compare/auto-pr-12369-old..auto-pr-12369) ( 6 files changed, 773 insertions(+), 3 deletions(-))
`terraform-google-conversion`: [Diff](https://github.com/modular-magician/terraform-google-conversion/compare/auto-pr-12369-old..auto-pr-12369) ( 1 file changed, 191 insertions(+))



## Missing test report
Your PR includes resource fields which are not covered by any test.

Resource: `google_compute_image` (585 total tests)
Please add an acceptance test which includes these fields. The test should include the following:

```hcl
resource "google_compute_image" "primary" {
  raw_disk {
    sha1 = # value needed
  }
}


```



author_association: COLLABORATOR
user: login: modular-magician
created_at: 2025-03-05T02:47:06Z
body: #### Tests analytics
Total tests: 4653
Passed tests: 4210
Skipped tests: 436
Affected tests: 7

<details>
<summary>Click here to see the affected service packages</summary>
<blockquote>

All service packages are affected

</blockquote>
</details>

#### Action taken
<details>
<summary>Found 7 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
</summary>
<blockquote>
<ul>
<li>TestAccAccessContextManager</li>
<li>TestAccCloudbuildWorkerPool_basic</li>
<li>TestAccDataSourceGoogleGkeHubFeature_basic</li>
<li>TestAccEphemeralServiceAccountKey_basic</li>
<li>TestAccSecretManagerSecretVersion_secretVersionBasicWriteOnlyExample</li>
<li>TestAccSecretManagerSecretVersion_secretVersionWithBase64StringSecretDataWriteOnlyExample</li>
<li>TestAccSqlUser_password_wo</li>

</ul>
</blockquote>
</details>

[Get to know how VCR tests work](https://googlecloudplatform.github.io/magic-modules/develop/test/test/)
author_association: COLLABORATOR
user: login: modular-magician
created_at: 2025-03-05T03:05:42Z
body: 🟢 Tests passed during RECORDING mode:
`TestAccAccessContextManager` [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/recording/TestAccAccessContextManager.log)]
`TestAccDataSourceGoogleGkeHubFeature_basic` [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/recording/TestAccDataSourceGoogleGkeHubFeature_basic.log)]


🔴 Tests failed when rerunning REPLAYING mode:
`TestAccAccessContextManager` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/build-log/replaying_build_after_recording/TestAccAccessContextManager_replaying_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/replaying_after_recording/TestAccAccessContextManager.log)]
`TestAccDataSourceGoogleGkeHubFeature_basic` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/build-log/replaying_build_after_recording/TestAccDataSourceGoogleGkeHubFeature_basic_replaying_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/replaying_after_recording/TestAccDataSourceGoogleGkeHubFeature_basic.log)]


Tests failed due to non-determinism or randomness when the VCR replayed the response after the HTTP request was made.

Please fix these to complete your PR. If you believe these test failures to be incorrect or unrelated to your change, or if you have any questions, please raise the concern with your reviewer.


---


🔴 Tests failed during RECORDING mode:
`TestAccCloudbuildWorkerPool_basic` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/build-log/recording_build/TestAccCloudbuildWorkerPool_basic_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/recording/TestAccCloudbuildWorkerPool_basic.log)]
`TestAccEphemeralServiceAccountKey_basic` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/build-log/recording_build/TestAccEphemeralServiceAccountKey_basic_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/recording/TestAccEphemeralServiceAccountKey_basic.log)]
`TestAccSecretManagerSecretVersion_secretVersionBasicWriteOnlyExample` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/build-log/recording_build/TestAccSecretManagerSecretVersion_secretVersionBasicWriteOnlyExample_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/recording/TestAccSecretManagerSecretVersion_secretVersionBasicWriteOnlyExample.log)]
`TestAccSecretManagerSecretVersion_secretVersionWithBase64StringSecretDataWriteOnlyExample` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/build-log/recording_build/TestAccSecretManagerSecretVersion_secretVersionWithBase64StringSecretDataWriteOnlyExample_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/recording/TestAccSecretManagerSecretVersion_secretVersionWithBase64StringSecretDataWriteOnlyExample.log)]
`TestAccSqlUser_password_wo` [[Error message](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/build-log/recording_build/TestAccSqlUser_password_wo_recording_test.log)] [[Debug log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/recording/TestAccSqlUser_password_wo.log)]



🔴 Errors occurred during RECORDING mode. Please fix them to complete your PR.



View the [build log](https://storage.cloud.google.com/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/build-log/recording_test.log) or the [debug log](https://console.cloud.google.com/storage/browser/ci-vcr-logs/beta/refs/heads/auto-pr-12369/artifacts/8e842dff-412e-460a-b311-c54063114afc/recording) for each test
author_association: COLLABORATOR
user: login: github-actions[bot]
created_at: 2025-03-06T09:43:37Z
body: @GoogleCloudPlatform/terraform-team @SirGitsalot This PR has been waiting for review for 1 week. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE
user: login: github-actions[bot]
created_at: 2025-03-11T09:42:58Z
body: @SirGitsalot This PR has been waiting for review for 3 weekdays. Please take a look! Use the label `disable-review-reminders` to disable these notifications.
author_association: NONE