{"sha":"8c6e61bb62d52c950008340deafc1e2a2041898a","node_id":"C_kwDOCOtqMtoAKDhjNmU2MWJiNjJkNTJjOTUwMDA4MzQwZGVhZmMxZTJhMjA0MTg5OGE","commit":{"author":{"name":"The Magician","email":"magic-modules@google.com","date":"2023-10-13T20:56:16Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2023-10-13T20:56:16Z"},"message":"Add `additional_group_keys` attribute to `google_cloud_identity_group` resource (#9217) (#6504)\n\n* Add `additional_group_keys` attribute to `google_cloud_identity_group` resource\n\n* Update acceptance test to check for attribute\n\n* Fix test check\n\n* Add `output: true` to nested properties in output field\n[upstream:49d3741f9d4d810a0a4768363bb8498afa21c688]\n\nSigned-off-by: Modular Magician <magic-modules@google.com>","tree":{"sha":"ab46fd463c8129dab2b40125279557fc096a87f6","url":"https://api.github.com/repos/hashicorp/terraform-provider-google-beta/git/trees/ab46fd463c8129dab2b40125279557fc096a87f6"},"url":"https://api.github.com/repos/hashicorp/terraform-provider-google-beta/git/commits/8c6e61bb62d52c950008340deafc1e2a2041898a","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJlKa7wCRBK7hj4Ov3rIwAA59UIAC9tOuQD1+hydiFSL0Dx36/S\nWAvh1rE/+XFJUgQSv67uuasQf59iizfw1WxGTgwKnmezI3Vj24kRXi8ss4ReQ01E\nKsM5rv0mWIK2Vu/i+Ug7FH40IfU0e/eQK0ih8YlJqyFSAeSU7El015mPzss6PYm0\nUBXhgAZfwNGvgT4gQ1iBNBttshngjjuSyhN8gh/KmZHqrmOLEtNGtl+b8uL1CqvJ\nycw4Tpu7t5HQqc4r5qHxzxMN14qlpYeguTgSTvuIk2Bl+uVgWuYavEGRxwTlNOMm\nnqZYqBlmUc1eJlw5AQfY7yEmYYS3NcximlFIc1ErCxamaHk3bByCDHJGz+0fodM=\n=FCDw\n-----END PGP SIGNATURE-----\n","payload":"tree ab46fd463c8129dab2b40125279557fc096a87f6\nparent 626807ea438a58ceb435601527563d655a679fd1\nauthor The Magician <magic-modules@google.com> 1697230576 -0400\ncommitter GitHub <noreply@github.com> 1697230576 -0400\n\nAdd `additional_group_keys` attribute to `google_cloud_identity_group` resource (#9217) (#6504)\n\n* Add `additional_group_keys` attribute to `google_cloud_identity_group` resource\n\n* Update acceptance test to check for attribute\n\n* Fix test check\n\n* Add `output: true` to nested properties in output field\n[upstream:49d3741f9d4d810a0a4768363bb8498afa21c688]\n\nSigned-off-by: Modular Magician <magic-modules@google.com>","verified_at":"2024-01-16T19:59:59Z"}},"url":"https://api.github.com/repos/hashicorp/terraform-provider-google-beta/commits/8c6e61bb62d52c950008340deafc1e2a2041898a","html_url":"https://github.com/hashicorp/terraform-provider-google-beta/commit/8c6e61bb62d52c950008340deafc1e2a2041898a","comments_url":"https://api.github.com/repos/hashicorp/terraform-provider-google-beta/commits/8c6e61bb62d52c950008340deafc1e2a2041898a/comments","author":{"login":"modular-magician","id":36310445,"node_id":"MDQ6VXNlcjM2MzEwNDQ1","avatar_url":"https://avatars.githubusercontent.com/u/36310445?v=4","gravatar_id":"","url":"https://api.github.com/users/modular-magician","html_url":"https://github.com/modular-magician","followers_url":"https://api.github.com/users/modular-magician/followers","following_url":"https://api.github.com/users/modular-magician/following{/other_user}","gists_url":"https://api.github.com/users/modular-magician/gists{/gist_id}","starred_url":"https://api.github.com/users/modular-magician/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/modular-magician/subscriptions","organizations_url":"https://api.github.com/users/modular-magician/orgs","repos_url":"https://api.github.com/users/modular-magician/repos","events_url":"https://api.github.com/users/modular-magician/events{/privacy}","received_events_url":"https://api.github.com/users/modular-magician/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"626807ea438a58ceb435601527563d655a679fd1","url":"https://api.github.com/repos/hashicorp/terraform-provider-google-beta/commits/626807ea438a58ceb435601527563d655a679fd1","html_url":"https://github.com/hashicorp/terraform-provider-google-beta/commit/626807ea438a58ceb435601527563d655a679fd1"}],"stats":{"total":95,"additions":95,"deletions":0},"files":[{"sha":"57552ad1280b052c1e3a6ea021e97b287100efde","filename":".changelog/9217.txt","status":"added","additions":3,"deletions":0,"changes":3,"blob_url":"https://github.com/hashicorp/terraform-provider-google-beta/blob/8c6e61bb62d52c950008340deafc1e2a2041898a/.changelog%2F9217.txt","raw_url":"https://github.com/hashicorp/terraform-provider-google-beta/raw/8c6e61bb62d52c950008340deafc1e2a2041898a/.changelog%2F9217.txt","contents_url":"https://api.github.com/repos/hashicorp/terraform-provider-google-beta/contents/.changelog%2F9217.txt?ref=8c6e61bb62d52c950008340deafc1e2a2041898a","patch":"@@ -0,0 +1,3 @@\n+```release-note:enhancement\r\n+cloudidentity: Added `additional_group_keys` attribute to `google_cloud_identity_group` resource\r\n+```\r"},{"sha":"12b6b878e8505e112ebf5fe4f9f4109ef7e81af7","filename":"google-beta/services/cloudidentity/resource_cloud_identity_group.go","status":"modified","additions":64,"deletions":0,"changes":64,"blob_url":"https://github.com/hashicorp/terraform-provider-google-beta/blob/8c6e61bb62d52c950008340deafc1e2a2041898a/google-beta%2Fservices%2Fcloudidentity%2Fresource_cloud_identity_group.go","raw_url":"https://github.com/hashicorp/terraform-provider-google-beta/raw/8c6e61bb62d52c950008340deafc1e2a2041898a/google-beta%2Fservices%2Fcloudidentity%2Fresource_cloud_identity_group.go","contents_url":"https://api.github.com/repos/hashicorp/terraform-provider-google-beta/contents/google-beta%2Fservices%2Fcloudidentity%2Fresource_cloud_identity_group.go?ref=8c6e61bb62d52c950008340deafc1e2a2041898a","patch":"@@ -134,6 +134,40 @@ See the\n for possible values. Default value: \"EMPTY\" Possible values: [\"INITIAL_GROUP_CONFIG_UNSPECIFIED\", \"WITH_INITIAL_OWNER\", \"EMPTY\"]`,\n \t\t\t\tDefault: \"EMPTY\",\n \t\t\t},\n+\t\t\t\"additional_group_keys\": {\n+\t\t\t\tType:        schema.TypeList,\n+\t\t\t\tComputed:    true,\n+\t\t\t\tDescription: `Additional group keys associated with the Group`,\n+\t\t\t\tElem: &schema.Resource{\n+\t\t\t\t\tSchema: map[string]*schema.Schema{\n+\t\t\t\t\t\t\"id\": {\n+\t\t\t\t\t\t\tType:     schema.TypeString,\n+\t\t\t\t\t\t\tComputed: true,\n+\t\t\t\t\t\t\tDescription: `The ID of the entity.\n+\n+For Google-managed entities, the id must be the email address of an existing\n+group or user.\n+\n+For external-identity-mapped entities, the id must be a string conforming\n+to the Identity Source's requirements.\n+\n+Must be unique within a namespace.`,\n+\t\t\t\t\t\t},\n+\t\t\t\t\t\t\"namespace\": {\n+\t\t\t\t\t\t\tType:     schema.TypeString,\n+\t\t\t\t\t\t\tComputed: true,\n+\t\t\t\t\t\t\tDescription: `The namespace in which the entity exists.\n+\n+If not specified, the EntityKey represents a Google-managed entity\n+such as a Google user or a Google Group.\n+\n+If specified, the EntityKey represents an external-identity-mapped group.\n+The namespace must correspond to an identity source created in Admin Console\n+and must be in the form of 'identitysources/{identity_source_id}'.`,\n+\t\t\t\t\t\t},\n+\t\t\t\t\t},\n+\t\t\t\t},\n+\t\t\t},\n \t\t\t\"create_time\": {\n \t\t\t\tType:        schema.TypeString,\n \t\t\t\tComputed:    true,\n@@ -338,6 +372,9 @@ func resourceCloudIdentityGroupRead(d *schema.ResourceData, meta interface{}) er\n \tif err := d.Set(\"description\", flattenCloudIdentityGroupDescription(res[\"description\"], d, config)); err != nil {\n \t\treturn fmt.Errorf(\"Error reading Group: %s\", err)\n \t}\n+\tif err := d.Set(\"additional_group_keys\", flattenCloudIdentityGroupAdditionalGroupKeys(res[\"additionalGroupKeys\"], d, config)); err != nil {\n+\t\treturn fmt.Errorf(\"Error reading Group: %s\", err)\n+\t}\n \tif err := d.Set(\"create_time\", flattenCloudIdentityGroupCreateTime(res[\"createTime\"], d, config)); err != nil {\n \t\treturn fmt.Errorf(\"Error reading Group: %s\", err)\n \t}\n@@ -542,6 +579,33 @@ func flattenCloudIdentityGroupDescription(v interface{}, d *schema.ResourceData,\n \treturn v\n }\n \n+func flattenCloudIdentityGroupAdditionalGroupKeys(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {\n+\tif v == nil {\n+\t\treturn v\n+\t}\n+\tl := v.([]interface{})\n+\ttransformed := make([]interface{}, 0, len(l))\n+\tfor _, raw := range l {\n+\t\toriginal := raw.(map[string]interface{})\n+\t\tif len(original) < 1 {\n+\t\t\t// Do not include empty json objects coming back from the api\n+\t\t\tcontinue\n+\t\t}\n+\t\ttransformed = append(transformed, map[string]interface{}{\n+\t\t\t\"id\":        flattenCloudIdentityGroupAdditionalGroupKeysId(original[\"id\"], d, config),\n+\t\t\t\"namespace\": flattenCloudIdentityGroupAdditionalGroupKeysNamespace(original[\"namespace\"], d, config),\n+\t\t})\n+\t}\n+\treturn transformed\n+}\n+func flattenCloudIdentityGroupAdditionalGroupKeysId(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {\n+\treturn v\n+}\n+\n+func flattenCloudIdentityGroupAdditionalGroupKeysNamespace(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {\n+\treturn v\n+}\n+\n func flattenCloudIdentityGroupCreateTime(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {\n \treturn v\n }"},{"sha":"0935ccf13fa5fa93ed2f5e900bbc22e32665241b","filename":"google-beta/services/cloudidentity/resource_cloud_identity_group_test.go","status":"modified","additions":4,"deletions":0,"changes":4,"blob_url":"https://github.com/hashicorp/terraform-provider-google-beta/blob/8c6e61bb62d52c950008340deafc1e2a2041898a/google-beta%2Fservices%2Fcloudidentity%2Fresource_cloud_identity_group_test.go","raw_url":"https://github.com/hashicorp/terraform-provider-google-beta/raw/8c6e61bb62d52c950008340deafc1e2a2041898a/google-beta%2Fservices%2Fcloudidentity%2Fresource_cloud_identity_group_test.go","contents_url":"https://api.github.com/repos/hashicorp/terraform-provider-google-beta/contents/google-beta%2Fservices%2Fcloudidentity%2Fresource_cloud_identity_group_test.go?ref=8c6e61bb62d52c950008340deafc1e2a2041898a","patch":"@@ -103,6 +103,10 @@ func testAccCloudIdentityGroup_cloudIdentityGroupsBasicExampleTest(t *testing.T)\n \t\tSteps: []resource.TestStep{\n \t\t\t{\n \t\t\t\tConfig: testAccCloudIdentityGroup_cloudIdentityGroupsBasicExample(context),\n+\t\t\t\tCheck: resource.ComposeTestCheckFunc(\n+\t\t\t\t\tresource.TestCheckResourceAttrSet(\"google_cloud_identity_group.cloud_identity_group_basic\",\n+\t\t\t\t\t\t\"additional_group_keys.#\"),\n+\t\t\t\t),\n \t\t\t},\n \t\t\t{\n \t\t\t\tResourceName:            \"google_cloud_identity_group.cloud_identity_group_basic\","},{"sha":"a8243d8ac466157fa7ede8c4d851f59692225376","filename":"website/docs/r/cloud_identity_group.html.markdown","status":"modified","additions":24,"deletions":0,"changes":24,"blob_url":"https://github.com/hashicorp/terraform-provider-google-beta/blob/8c6e61bb62d52c950008340deafc1e2a2041898a/website%2Fdocs%2Fr%2Fcloud_identity_group.html.markdown","raw_url":"https://github.com/hashicorp/terraform-provider-google-beta/raw/8c6e61bb62d52c950008340deafc1e2a2041898a/website%2Fdocs%2Fr%2Fcloud_identity_group.html.markdown","contents_url":"https://api.github.com/repos/hashicorp/terraform-provider-google-beta/contents/website%2Fdocs%2Fr%2Fcloud_identity_group.html.markdown?ref=8c6e61bb62d52c950008340deafc1e2a2041898a","patch":"@@ -132,13 +132,37 @@ In addition to the arguments listed above, the following computed attributes are\n   Resource name of the Group in the format: groups/{group_id}, where group_id\n   is the unique ID assigned to the Group.\n \n+* `additional_group_keys` -\n+  Additional group keys associated with the Group\n+  Structure is [documented below](#nested_additional_group_keys).\n+\n * `create_time` -\n   The time when the Group was created.\n \n * `update_time` -\n   The time when the Group was last updated.\n \n \n+<a name=\"nested_additional_group_keys\"></a>The `additional_group_keys` block contains:\n+\n+* `id` -\n+  (Output)\n+  The ID of the entity.\n+  For Google-managed entities, the id must be the email address of an existing\n+  group or user.\n+  For external-identity-mapped entities, the id must be a string conforming\n+  to the Identity Source's requirements.\n+  Must be unique within a namespace.\n+\n+* `namespace` -\n+  (Output)\n+  The namespace in which the entity exists.\n+  If not specified, the EntityKey represents a Google-managed entity\n+  such as a Google user or a Google Group.\n+  If specified, the EntityKey represents an external-identity-mapped group.\n+  The namespace must correspond to an identity source created in Admin Console\n+  and must be in the form of `identitysources/{identity_source_id}`.\n+\n ## Timeouts\n \n This resource provides the following"}]}