Group Membership
A Membership defines a relationship between a Group and an entity belonging to that Group, referred to as a "member". To get more information about GroupMembership, see:
How-to Guides
Warning: If you are using User ADCs (Application Default Credentials) with this resource, you must specify a
billing_project
and setuser_project_override
to true in the provider configuration. Otherwise the Cloud Identity API will return a 403 error. Your account must have theserviceusage.services.use
permission on thebilling_project
you defined.
Example Usage
Cloud Identity Group Membership
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const group = new gcp.cloudidentity.Group("group", {
displayName: "my-identity-group",
parent: "customers/A01b123xz",
groupKey: {
id: "my-identity-group@example.com",
},
labels: {
"cloudidentity.googleapis.com/groups.discussion_forum": "",
},
});
const child_group = new gcp.cloudidentity.Group("child-group", {
displayName: "my-identity-group-child",
parent: "customers/A01b123xz",
groupKey: {
id: "my-identity-group-child@example.com",
},
labels: {
"cloudidentity.googleapis.com/groups.discussion_forum": "",
},
});
const cloudIdentityGroupMembershipBasic = new gcp.cloudidentity.GroupMembership("cloud_identity_group_membership_basic", {
group: group.id,
preferredMemberKey: {
id: child_group.groupKey.apply(groupKey => groupKey.id),
},
roles: [{
name: "MEMBER",
}],
});
import pulumi
import pulumi_gcp as gcp
group = gcp.cloudidentity.Group("group",
display_name="my-identity-group",
parent="customers/A01b123xz",
group_key={
"id": "my-identity-group@example.com",
},
labels={
"cloudidentity.googleapis.com/groups.discussion_forum": "",
})
child_group = gcp.cloudidentity.Group("child-group",
display_name="my-identity-group-child",
parent="customers/A01b123xz",
group_key={
"id": "my-identity-group-child@example.com",
},
labels={
"cloudidentity.googleapis.com/groups.discussion_forum": "",
})
cloud_identity_group_membership_basic = gcp.cloudidentity.GroupMembership("cloud_identity_group_membership_basic",
group=group.id,
preferred_member_key={
"id": child_group.group_key.id,
},
roles=[{
"name": "MEMBER",
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var @group = new Gcp.CloudIdentity.Group("group", new()
{
DisplayName = "my-identity-group",
Parent = "customers/A01b123xz",
GroupKey = new Gcp.CloudIdentity.Inputs.GroupGroupKeyArgs
{
Id = "my-identity-group@example.com",
},
Labels =
{
{ "cloudidentity.googleapis.com/groups.discussion_forum", "" },
},
});
var child_group = new Gcp.CloudIdentity.Group("child-group", new()
{
DisplayName = "my-identity-group-child",
Parent = "customers/A01b123xz",
GroupKey = new Gcp.CloudIdentity.Inputs.GroupGroupKeyArgs
{
Id = "my-identity-group-child@example.com",
},
Labels =
{
{ "cloudidentity.googleapis.com/groups.discussion_forum", "" },
},
});
var cloudIdentityGroupMembershipBasic = new Gcp.CloudIdentity.GroupMembership("cloud_identity_group_membership_basic", new()
{
Group = @group.Id,
PreferredMemberKey = new Gcp.CloudIdentity.Inputs.GroupMembershipPreferredMemberKeyArgs
{
Id = child_group.GroupKey.Apply(groupKey => groupKey.Id),
},
Roles = new[]
{
new Gcp.CloudIdentity.Inputs.GroupMembershipRoleArgs
{
Name = "MEMBER",
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudidentity"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
group, err := cloudidentity.NewGroup(ctx, "group", &cloudidentity.GroupArgs{
DisplayName: pulumi.String("my-identity-group"),
Parent: pulumi.String("customers/A01b123xz"),
GroupKey: &cloudidentity.GroupGroupKeyArgs{
Id: pulumi.String("my-identity-group@example.com"),
},
Labels: pulumi.StringMap{
"cloudidentity.googleapis.com/groups.discussion_forum": pulumi.String(""),
},
})
if err != nil {
return err
}
_, err = cloudidentity.NewGroup(ctx, "child-group", &cloudidentity.GroupArgs{
DisplayName: pulumi.String("my-identity-group-child"),
Parent: pulumi.String("customers/A01b123xz"),
GroupKey: &cloudidentity.GroupGroupKeyArgs{
Id: pulumi.String("my-identity-group-child@example.com"),
},
Labels: pulumi.StringMap{
"cloudidentity.googleapis.com/groups.discussion_forum": pulumi.String(""),
},
})
if err != nil {
return err
}
_, err = cloudidentity.NewGroupMembership(ctx, "cloud_identity_group_membership_basic", &cloudidentity.GroupMembershipArgs{
Group: group.ID(),
PreferredMemberKey: &cloudidentity.GroupMembershipPreferredMemberKeyArgs{
Id: child_group.GroupKey.ApplyT(func(groupKey cloudidentity.GroupGroupKey) (*string, error) {
return &groupKey.Id, nil
}).(pulumi.StringPtrOutput),
},
Roles: cloudidentity.GroupMembershipRoleArray{
&cloudidentity.GroupMembershipRoleArgs{
Name: pulumi.String("MEMBER"),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudidentity.Group;
import com.pulumi.gcp.cloudidentity.GroupArgs;
import com.pulumi.gcp.cloudidentity.inputs.GroupGroupKeyArgs;
import com.pulumi.gcp.cloudidentity.GroupMembership;
import com.pulumi.gcp.cloudidentity.GroupMembershipArgs;
import com.pulumi.gcp.cloudidentity.inputs.GroupMembershipPreferredMemberKeyArgs;
import com.pulumi.gcp.cloudidentity.inputs.GroupMembershipRoleArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var group = new Group("group", GroupArgs.builder()
.displayName("my-identity-group")
.parent("customers/A01b123xz")
.groupKey(GroupGroupKeyArgs.builder()
.id("my-identity-group@example.com")
.build())
.labels(Map.of("cloudidentity.googleapis.com/groups.discussion_forum", ""))
.build());
var child_group = new Group("child-group", GroupArgs.builder()
.displayName("my-identity-group-child")
.parent("customers/A01b123xz")
.groupKey(GroupGroupKeyArgs.builder()
.id("my-identity-group-child@example.com")
.build())
.labels(Map.of("cloudidentity.googleapis.com/groups.discussion_forum", ""))
.build());
var cloudIdentityGroupMembershipBasic = new GroupMembership("cloudIdentityGroupMembershipBasic", GroupMembershipArgs.builder()
.group(group.id())
.preferredMemberKey(GroupMembershipPreferredMemberKeyArgs.builder()
.id(child_group.groupKey().applyValue(groupKey -> groupKey.id()))
.build())
.roles(GroupMembershipRoleArgs.builder()
.name("MEMBER")
.build())
.build());
}
}
resources:
group:
type: gcp:cloudidentity:Group
properties:
displayName: my-identity-group
parent: customers/A01b123xz
groupKey:
id: my-identity-group@example.com
labels:
cloudidentity.googleapis.com/groups.discussion_forum:
child-group:
type: gcp:cloudidentity:Group
properties:
displayName: my-identity-group-child
parent: customers/A01b123xz
groupKey:
id: my-identity-group-child@example.com
labels:
cloudidentity.googleapis.com/groups.discussion_forum:
cloudIdentityGroupMembershipBasic:
type: gcp:cloudidentity:GroupMembership
name: cloud_identity_group_membership_basic
properties:
group: ${group.id}
preferredMemberKey:
id: ${["child-group"].groupKey.id}
roles:
- name: MEMBER
Cloud Identity Group Membership User
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const group = new gcp.cloudidentity.Group("group", {
displayName: "my-identity-group",
parent: "customers/A01b123xz",
groupKey: {
id: "my-identity-group@example.com",
},
labels: {
"cloudidentity.googleapis.com/groups.discussion_forum": "",
},
});
const cloudIdentityGroupMembershipBasic = new gcp.cloudidentity.GroupMembership("cloud_identity_group_membership_basic", {
group: group.id,
preferredMemberKey: {
id: "cloud_identity_user@example.com",
},
roles: [
{
name: "MEMBER",
},
{
name: "MANAGER",
},
],
});
import pulumi
import pulumi_gcp as gcp
group = gcp.cloudidentity.Group("group",
display_name="my-identity-group",
parent="customers/A01b123xz",
group_key={
"id": "my-identity-group@example.com",
},
labels={
"cloudidentity.googleapis.com/groups.discussion_forum": "",
})
cloud_identity_group_membership_basic = gcp.cloudidentity.GroupMembership("cloud_identity_group_membership_basic",
group=group.id,
preferred_member_key={
"id": "cloud_identity_user@example.com",
},
roles=[
{
"name": "MEMBER",
},
{
"name": "MANAGER",
},
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var @group = new Gcp.CloudIdentity.Group("group", new()
{
DisplayName = "my-identity-group",
Parent = "customers/A01b123xz",
GroupKey = new Gcp.CloudIdentity.Inputs.GroupGroupKeyArgs
{
Id = "my-identity-group@example.com",
},
Labels =
{
{ "cloudidentity.googleapis.com/groups.discussion_forum", "" },
},
});
var cloudIdentityGroupMembershipBasic = new Gcp.CloudIdentity.GroupMembership("cloud_identity_group_membership_basic", new()
{
Group = @group.Id,
PreferredMemberKey = new Gcp.CloudIdentity.Inputs.GroupMembershipPreferredMemberKeyArgs
{
Id = "cloud_identity_user@example.com",
},
Roles = new[]
{
new Gcp.CloudIdentity.Inputs.GroupMembershipRoleArgs
{
Name = "MEMBER",
},
new Gcp.CloudIdentity.Inputs.GroupMembershipRoleArgs
{
Name = "MANAGER",
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudidentity"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
group, err := cloudidentity.NewGroup(ctx, "group", &cloudidentity.GroupArgs{
DisplayName: pulumi.String("my-identity-group"),
Parent: pulumi.String("customers/A01b123xz"),
GroupKey: &cloudidentity.GroupGroupKeyArgs{
Id: pulumi.String("my-identity-group@example.com"),
},
Labels: pulumi.StringMap{
"cloudidentity.googleapis.com/groups.discussion_forum": pulumi.String(""),
},
})
if err != nil {
return err
}
_, err = cloudidentity.NewGroupMembership(ctx, "cloud_identity_group_membership_basic", &cloudidentity.GroupMembershipArgs{
Group: group.ID(),
PreferredMemberKey: &cloudidentity.GroupMembershipPreferredMemberKeyArgs{
Id: pulumi.String("cloud_identity_user@example.com"),
},
Roles: cloudidentity.GroupMembershipRoleArray{
&cloudidentity.GroupMembershipRoleArgs{
Name: pulumi.String("MEMBER"),
},
&cloudidentity.GroupMembershipRoleArgs{
Name: pulumi.String("MANAGER"),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudidentity.Group;
import com.pulumi.gcp.cloudidentity.GroupArgs;
import com.pulumi.gcp.cloudidentity.inputs.GroupGroupKeyArgs;
import com.pulumi.gcp.cloudidentity.GroupMembership;
import com.pulumi.gcp.cloudidentity.GroupMembershipArgs;
import com.pulumi.gcp.cloudidentity.inputs.GroupMembershipPreferredMemberKeyArgs;
import com.pulumi.gcp.cloudidentity.inputs.GroupMembershipRoleArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var group = new Group("group", GroupArgs.builder()
.displayName("my-identity-group")
.parent("customers/A01b123xz")
.groupKey(GroupGroupKeyArgs.builder()
.id("my-identity-group@example.com")
.build())
.labels(Map.of("cloudidentity.googleapis.com/groups.discussion_forum", ""))
.build());
var cloudIdentityGroupMembershipBasic = new GroupMembership("cloudIdentityGroupMembershipBasic", GroupMembershipArgs.builder()
.group(group.id())
.preferredMemberKey(GroupMembershipPreferredMemberKeyArgs.builder()
.id("cloud_identity_user@example.com")
.build())
.roles(
GroupMembershipRoleArgs.builder()
.name("MEMBER")
.build(),
GroupMembershipRoleArgs.builder()
.name("MANAGER")
.build())
.build());
}
}
resources:
group:
type: gcp:cloudidentity:Group
properties:
displayName: my-identity-group
parent: customers/A01b123xz
groupKey:
id: my-identity-group@example.com
labels:
cloudidentity.googleapis.com/groups.discussion_forum:
cloudIdentityGroupMembershipBasic:
type: gcp:cloudidentity:GroupMembership
name: cloud_identity_group_membership_basic
properties:
group: ${group.id}
preferredMemberKey:
id: cloud_identity_user@example.com
roles:
- name: MEMBER
- name: MANAGER
Import
GroupMembership can be imported using any of these accepted formats:
{{name}}
When using thepulumi import
command, GroupMembership can be imported using one of the formats above. For example:
$ pulumi import gcp:cloudidentity/groupMembership:GroupMembership default {{name}}
Properties
The time when the Membership was created.
EntityKey of the member.
EntityKey of the member.
The MembershipRoles that apply to the Membership. Must not contain duplicate MembershipRoles with the same name. Structure is documented below.
The time when the Membership was last updated.