Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for shielded instance initial state #12369

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions mmv1/products/compute/Image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -270,3 +271,73 @@ properties:
custom_expand: 'templates/terraform/custom_expand/resourceref_with_validation.go.tmpl'
resource: 'Snapshot'
imports: 'selfLink'
- name: 'shieldedInstanceInitialState'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like shieldedInstanceInitialState needs default_from_api: true (documented here).

TestAccComputeInstanceFromTemplate_confidentialInstanceConfigMain 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).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SirGitsalot added default_from_api: true

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
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'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

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.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@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.

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.
Loading
Loading