1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. iam
  5. getRule
Google Cloud v9.4.0 published on Tuesday, Nov 4, 2025 by Pulumi

gcp.iam.getRule

Start a Neo task
Explain and create a gcp.iam.getRule resource
gcp logo
Google Cloud v9.4.0 published on Tuesday, Nov 4, 2025 by Pulumi

    Use this data source to get information about a Google IAM Role.

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const roleinfo = gcp.iam.getRule({
        name: "roles/compute.viewer",
    });
    export const theRolePermissions = roleinfo.then(roleinfo => roleinfo.includedPermissions);
    
    import pulumi
    import pulumi_gcp as gcp
    
    roleinfo = gcp.iam.get_rule(name="roles/compute.viewer")
    pulumi.export("theRolePermissions", roleinfo.included_permissions)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/iam"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		roleinfo, err := iam.GetRule(ctx, &iam.GetRuleArgs{
    			Name: "roles/compute.viewer",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		ctx.Export("theRolePermissions", roleinfo.IncludedPermissions)
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var roleinfo = Gcp.Iam.GetRule.Invoke(new()
        {
            Name = "roles/compute.viewer",
        });
    
        return new Dictionary<string, object?>
        {
            ["theRolePermissions"] = roleinfo.Apply(getRuleResult => getRuleResult.IncludedPermissions),
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.iam.IamFunctions;
    import com.pulumi.gcp.iam.inputs.GetRuleArgs;
    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) {
            final var roleinfo = IamFunctions.getRule(GetRuleArgs.builder()
                .name("roles/compute.viewer")
                .build());
    
            ctx.export("theRolePermissions", roleinfo.includedPermissions());
        }
    }
    
    variables:
      roleinfo:
        fn::invoke:
          function: gcp:iam:getRule
          arguments:
            name: roles/compute.viewer
    outputs:
      theRolePermissions: ${roleinfo.includedPermissions}
    

    Using getRule

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getRule(args: GetRuleArgs, opts?: InvokeOptions): Promise<GetRuleResult>
    function getRuleOutput(args: GetRuleOutputArgs, opts?: InvokeOptions): Output<GetRuleResult>
    def get_rule(name: Optional[str] = None,
                 opts: Optional[InvokeOptions] = None) -> GetRuleResult
    def get_rule_output(name: Optional[pulumi.Input[str]] = None,
                 opts: Optional[InvokeOptions] = None) -> Output[GetRuleResult]
    func GetRule(ctx *Context, args *GetRuleArgs, opts ...InvokeOption) (*GetRuleResult, error)
    func GetRuleOutput(ctx *Context, args *GetRuleOutputArgs, opts ...InvokeOption) GetRuleResultOutput

    > Note: This function is named GetRule in the Go SDK.

    public static class GetRule 
    {
        public static Task<GetRuleResult> InvokeAsync(GetRuleArgs args, InvokeOptions? opts = null)
        public static Output<GetRuleResult> Invoke(GetRuleInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetRuleResult> getRule(GetRuleArgs args, InvokeOptions options)
    public static Output<GetRuleResult> getRule(GetRuleArgs args, InvokeOptions options)
    
    fn::invoke:
      function: gcp:iam/getRule:getRule
      arguments:
        # arguments dictionary

    The following arguments are supported:

    Name string
    The name of the Role to lookup in the form roles/{ROLE_NAME}, organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME} or projects/{PROJECT_ID}/roles/{ROLE_NAME}
    Name string
    The name of the Role to lookup in the form roles/{ROLE_NAME}, organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME} or projects/{PROJECT_ID}/roles/{ROLE_NAME}
    name String
    The name of the Role to lookup in the form roles/{ROLE_NAME}, organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME} or projects/{PROJECT_ID}/roles/{ROLE_NAME}
    name string
    The name of the Role to lookup in the form roles/{ROLE_NAME}, organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME} or projects/{PROJECT_ID}/roles/{ROLE_NAME}
    name str
    The name of the Role to lookup in the form roles/{ROLE_NAME}, organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME} or projects/{PROJECT_ID}/roles/{ROLE_NAME}
    name String
    The name of the Role to lookup in the form roles/{ROLE_NAME}, organizations/{ORGANIZATION_ID}/roles/{ROLE_NAME} or projects/{PROJECT_ID}/roles/{ROLE_NAME}

    getRule Result

    The following output properties are available:

    Id string
    The provider-assigned unique ID for this managed resource.
    IncludedPermissions List<string>
    specifies the list of one or more permissions to include in the custom role, such as - iam.roles.get
    Name string
    Stage string
    indicates the stage of a role in the launch lifecycle, such as GA, BETA or ALPHA.
    Title string
    is a friendly title for the role, such as "Role Viewer"
    Id string
    The provider-assigned unique ID for this managed resource.
    IncludedPermissions []string
    specifies the list of one or more permissions to include in the custom role, such as - iam.roles.get
    Name string
    Stage string
    indicates the stage of a role in the launch lifecycle, such as GA, BETA or ALPHA.
    Title string
    is a friendly title for the role, such as "Role Viewer"
    id String
    The provider-assigned unique ID for this managed resource.
    includedPermissions List<String>
    specifies the list of one or more permissions to include in the custom role, such as - iam.roles.get
    name String
    stage String
    indicates the stage of a role in the launch lifecycle, such as GA, BETA or ALPHA.
    title String
    is a friendly title for the role, such as "Role Viewer"
    id string
    The provider-assigned unique ID for this managed resource.
    includedPermissions string[]
    specifies the list of one or more permissions to include in the custom role, such as - iam.roles.get
    name string
    stage string
    indicates the stage of a role in the launch lifecycle, such as GA, BETA or ALPHA.
    title string
    is a friendly title for the role, such as "Role Viewer"
    id str
    The provider-assigned unique ID for this managed resource.
    included_permissions Sequence[str]
    specifies the list of one or more permissions to include in the custom role, such as - iam.roles.get
    name str
    stage str
    indicates the stage of a role in the launch lifecycle, such as GA, BETA or ALPHA.
    title str
    is a friendly title for the role, such as "Role Viewer"
    id String
    The provider-assigned unique ID for this managed resource.
    includedPermissions List<String>
    specifies the list of one or more permissions to include in the custom role, such as - iam.roles.get
    name String
    stage String
    indicates the stage of a role in the launch lifecycle, such as GA, BETA or ALPHA.
    title String
    is a friendly title for the role, such as "Role Viewer"

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Google Cloud v9.4.0 published on Tuesday, Nov 4, 2025 by Pulumi
      Meet Neo: Your AI Platform Teammate