IamMemberRemove class
Ensures that a member:role pairing does not exist in a project's IAM policy.
On create, this resource will modify the policy to remove the member from the
role. If the membership is ever re-added, the next refresh will clear this
resource from state, proposing re-adding it to correct the membership. Import is
not supported- this resource will acquire the current policy and modify it as
part of creating the resource.
This resource will conflict with gcp.projects.IAMPolicy and
gcp.projects.IAMBinding resources that share a role, as well as
gcp.projects.IAMMember resources that target the same membership. When
multiple resources conflict the final state is not guaranteed to include or omit
the membership. Subsequent pulumi up calls will always show a diff
until the configuration is corrected.
For more information see the official documentation and API reference.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const targetProject = gcp.organizations.getProject({});
const foo = new gcp.projects.IamMemberRemove("foo", {
role: "roles/editor",
project: targetProjectGoogleProject.projectId,
member: `serviceAccount:${targetProjectGoogleProject.number}-compute@developer.gserviceaccount.com`,
});
import pulumi
import pulumi_gcp as gcp
target_project = gcp.organizations.get_project()
foo = gcp.projects.IamMemberRemove("foo",
role="roles/editor",
project=target_project_google_project["projectId"],
member=f"serviceAccount:{target_project_google_project['number']}-compute@developer.gserviceaccount.com")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var targetProject = Gcp.Organizations.GetProject.Invoke();
var foo = new Gcp.Projects.IamMemberRemove("foo", new()
{
Role = "roles/editor",
Project = targetProjectGoogleProject.ProjectId,
Member = $"serviceAccount:{targetProjectGoogleProject.Number}-compute@developer.gserviceaccount.com",
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
if err != nil {
return err
}
_, err = projects.NewIamMemberRemove(ctx, "foo", &projects.IamMemberRemoveArgs{
Role: pulumi.String("roles/editor"),
Project: pulumi.Any(targetProjectGoogleProject.ProjectId),
Member: pulumi.Sprintf("serviceAccount:%v-compute@developer.gserviceaccount.com", targetProjectGoogleProject.Number),
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
gcp = {
source = "pulumi/gcp"
}
}
}
data "gcp_organizations_getproject" "targetProject" {
}
resource "gcp_projects_iammemberremove" "foo" {
role = "roles/editor"
project = targetProjectGoogleProject.projectId
member ="serviceAccount:${targetProjectGoogleProject.number}-compute@developer.gserviceaccount.com"
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.projects.IamMemberRemove;
import com.pulumi.gcp.projects.IamMemberRemoveArgs;
import java.util.ArrayList;
import java.util.Arrays;
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) {
final var targetProject = OrganizationsFunctions.getProject(GetProjectArgs.builder()
.build());
var foo = new IamMemberRemove("foo", IamMemberRemoveArgs.builder()
.role("roles/editor")
.project(targetProjectGoogleProject.get("projectId"))
.member(String.format("serviceAccount:%s-compute@developer.gserviceaccount.com", targetProjectGoogleProject.get("number")))
.build());
}
}
resources:
foo:
type: gcp:projects:IamMemberRemove
properties:
role: roles/editor
project: ${targetProjectGoogleProject.projectId}
member: serviceAccount:${targetProjectGoogleProject.number}-compute@developer.gserviceaccount.com
variables:
targetProject:
fn::invoke:
function: gcp:organizations:getProject
arguments: {}
Constructors
- IamMemberRemove(String name, {IamMemberRemoveArgs? args, CustomResourceOptions? options})
-
Creates a new IamMemberRemove.
nameThe Pulumi resource name.argsArguments used to configure this IamMemberRemove. The set of arguments for IamMemberRemove.optionsResource options controlling this resource's behavior. - IamMemberRemove.reference(String urn)
- Creates a typed reference to an existing IamMemberRemove resource.
Properties
-
childResources
→ Set<
Resource> -
finalinherited
-
completionSources
↔ Map<
String, IOutputCompletionSource> -
latefinalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
-
id
↔ Output<
String> -
getter/setter pairinherited
- isCustom → bool
-
Returns whether this resource is provider-managed.
no setterinherited
- isProtected → bool
-
Returns whether this resource is protected from deletion.
no setterinherited
- isRemote → bool
-
Whether this resource is registered as remote.
no setterinherited
- isResourceReference → bool
-
Whether this instance represents a resource value returned over RPC.
finalinherited
-
member
↔ Output<
String> -
The IAM principal that should not have the target role.
Each entry can have one of the following values:
latefinal
-
project
↔ Output<
String> -
The project id of the target project.
latefinal
-
resourceTransforms
→ List<
ResourceTransform> -
Inherited/explicit async transforms.
no setterinherited
-
role
↔ Output<
String> -
The target role that should be removed.
latefinal
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
transformations
→ List<
ResourceTransformation> -
Inherited/explicit legacy transformations.
no setterinherited
-
urn
↔ Output<
String> -
latefinalinherited
Methods
-
failId(
Object error) → void -
Completes this resource ID with an error when registration fails.
inherited
-
failOutputs(
Object error) → void -
Completes all output properties with
error.inherited -
failUrn(
Object error) → void -
Completes this resource URN with an error when registration fails.
inherited
-
getProvider(
String moduleMember) → ProviderResource? -
Returns provider for
moduleMember's package, if configured.inherited -
getResourceName(
) → String -
Returns this resource's logical name.
inherited
-
getResourceType(
) → String -
Returns this resource's Pulumi type token.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
registerOutput<
T> (String propertyName, {Object? decoder(Object?)?, bool isSecret = false}) → Output< T> -
Registers a dynamic output property for this resource.
inherited
-
resolveId(
String? value, {required bool isKnown}) → void -
Resolves the provider-assigned ID for this resource.
inherited
-
resolveOutputs(
Struct outputs) → void -
Resolves all output properties from a monitor response payload.
inherited
-
resolveUrn(
String value) → void -
Resolves this resource's URN once assigned by the engine.
inherited
-
serializeProperties(
Map< String, dynamic> properties) → Future<Struct> -
Serializes resource properties for RPC transmission.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
get(
String name, Input< String> id, {IamMemberRemoveState? state, CustomResourceOptions? options}) → IamMemberRemove -
Gets an existing IamMemberRemove resource's state with the given
nameandid.