GroupMembership

class GroupMembership : KotlinCustomResource

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:

Warning: If you are using User ADCs (Application Default Credentials) with this resource, you must specify a billing_project and set user_project_override to true in the provider configuration. Otherwise the Cloud Identity API will return a 403 error. Your account must have the serviceusage.services.use permission on the billing_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 the pulumi import command, GroupMembership can be imported using one of the formats above. For example:

$ pulumi import gcp:cloudidentity/groupMembership:GroupMembership default {{name}}

Properties

Link copied to clipboard
val createTime: Output<String>

The time when the Membership was created.

Link copied to clipboard
val group: Output<String>

The name of the Group to create this membership in.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard

EntityKey of the member.

Link copied to clipboard
val name: Output<String>

The resource name of the Membership, of the form groups/{group_id}/memberships/{membership_id}.

Link copied to clipboard

EntityKey of the member.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The MembershipRoles that apply to the Membership. Must not contain duplicate MembershipRoles with the same name. Structure is documented below.

Link copied to clipboard
val type: Output<String>

The type of the membership.

Link copied to clipboard
val updateTime: Output<String>

The time when the Membership was last updated.

Link copied to clipboard
val urn: Output<String>