1. Packages
  2. Ibm Provider
  3. API Docs
  4. IamAccessGroupPolicy
ibm 1.78.0 published on Wednesday, Apr 30, 2025 by ibm-cloud

ibm.IamAccessGroupPolicy

Explore with Pulumi AI

ibm logo
ibm 1.78.0 published on Wednesday, Apr 30, 2025 by ibm-cloud

    Create, update, or delete an IAM policy for an IAM access group. For more information, about IBM access group policy, see creating policies for account management service access.

    Example Usage

    Access group policy for all Identity and Access enabled services

    The following example creates an IAM policy that grants members of the access group the IAM Viewer platform role to all IAM-enabled services.

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        accessGroupId: accgrp.iamAccessGroupId,
        roles: ["Viewer"],
        resourceTags: [{
            name: "env",
            value: "dev",
        }],
        transactionId: "terraformUserPolicy",
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    policy = ibm.IamAccessGroupPolicy("policy",
        access_group_id=accgrp.iam_access_group_id,
        roles=["Viewer"],
        resource_tags=[{
            "name": "env",
            "value": "dev",
        }],
        transaction_id="terraformUserPolicy")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		accgrp, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			AccessGroupId: accgrp.IamAccessGroupId,
    			Roles: pulumi.StringArray{
    				pulumi.String("Viewer"),
    			},
    			ResourceTags: ibm.IamAccessGroupPolicyResourceTagArray{
    				&ibm.IamAccessGroupPolicyResourceTagArgs{
    					Name:  pulumi.String("env"),
    					Value: pulumi.String("dev"),
    				},
    			},
    			TransactionId: pulumi.String("terraformUserPolicy"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            AccessGroupId = accgrp.IamAccessGroupId,
            Roles = new[]
            {
                "Viewer",
            },
            ResourceTags = new[]
            {
                new Ibm.Inputs.IamAccessGroupPolicyResourceTagArgs
                {
                    Name = "env",
                    Value = "dev",
                },
            },
            TransactionId = "terraformUserPolicy",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourceTagArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .accessGroupId(accgrp.iamAccessGroupId())
                .roles("Viewer")
                .resourceTags(IamAccessGroupPolicyResourceTagArgs.builder()
                    .name("env")
                    .value("dev")
                    .build())
                .transactionId("terraformUserPolicy")
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          accessGroupId: ${accgrp.iamAccessGroupId}
          roles:
            - Viewer
          resourceTags:
            - name: env
              value: dev
          transactionId: terraformUserPolicy
    

    Access group policy for all Identity and Access enabled services within a resource group

    The following example creates an IAM policy that grants members of the access group the IAM Operator platform role and the Writer service access role to all IAM-enabled services within a resource group.

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const group = ibm.getResourceGroup({
        name: "default",
    });
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        accessGroupId: accgrp.iamAccessGroupId,
        roles: [
            "Operator",
            "Writer",
        ],
        resources: {
            resourceGroupId: group.then(group => group.id),
        },
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    group = ibm.get_resource_group(name="default")
    policy = ibm.IamAccessGroupPolicy("policy",
        access_group_id=accgrp.iam_access_group_id,
        roles=[
            "Operator",
            "Writer",
        ],
        resources={
            "resource_group_id": group.id,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		accgrp, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		group, err := ibm.LookupResourceGroup(ctx, &ibm.LookupResourceGroupArgs{
    			Name: pulumi.StringRef("default"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			AccessGroupId: accgrp.IamAccessGroupId,
    			Roles: pulumi.StringArray{
    				pulumi.String("Operator"),
    				pulumi.String("Writer"),
    			},
    			Resources: &ibm.IamAccessGroupPolicyResourcesArgs{
    				ResourceGroupId: pulumi.String(group.Id),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var @group = Ibm.GetResourceGroup.Invoke(new()
        {
            Name = "default",
        });
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            AccessGroupId = accgrp.IamAccessGroupId,
            Roles = new[]
            {
                "Operator",
                "Writer",
            },
            Resources = new Ibm.Inputs.IamAccessGroupPolicyResourcesArgs
            {
                ResourceGroupId = @group.Apply(@group => @group.Apply(getResourceGroupResult => getResourceGroupResult.Id)),
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.IbmFunctions;
    import com.pulumi.ibm.inputs.GetResourceGroupArgs;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourcesArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            final var group = IbmFunctions.getResourceGroup(GetResourceGroupArgs.builder()
                .name("default")
                .build());
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .accessGroupId(accgrp.iamAccessGroupId())
                .roles(            
                    "Operator",
                    "Writer")
                .resources(IamAccessGroupPolicyResourcesArgs.builder()
                    .resourceGroupId(group.applyValue(getResourceGroupResult -> getResourceGroupResult.id()))
                    .build())
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          accessGroupId: ${accgrp.iamAccessGroupId}
          roles:
            - Operator
            - Writer
          resources:
            resourceGroupId: ${group.id}
    variables:
      group:
        fn::invoke:
          function: ibm:getResourceGroup
          arguments:
            name: default
    

    Access group policy using service with region

    The following example creates an IAM policy that grants members of the access group the IAM Viewer platform role to all service instances of cloudantnosqldb in us-south region

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        accessGroupId: accgrp.iamAccessGroupId,
        roles: ["Viewer"],
        resources: {
            service: "cloudantnosqldb",
            region: "us-south",
        },
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    policy = ibm.IamAccessGroupPolicy("policy",
        access_group_id=accgrp.iam_access_group_id,
        roles=["Viewer"],
        resources={
            "service": "cloudantnosqldb",
            "region": "us-south",
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		accgrp, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			AccessGroupId: accgrp.IamAccessGroupId,
    			Roles: pulumi.StringArray{
    				pulumi.String("Viewer"),
    			},
    			Resources: &ibm.IamAccessGroupPolicyResourcesArgs{
    				Service: pulumi.String("cloudantnosqldb"),
    				Region:  pulumi.String("us-south"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            AccessGroupId = accgrp.IamAccessGroupId,
            Roles = new[]
            {
                "Viewer",
            },
            Resources = new Ibm.Inputs.IamAccessGroupPolicyResourcesArgs
            {
                Service = "cloudantnosqldb",
                Region = "us-south",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourcesArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .accessGroupId(accgrp.iamAccessGroupId())
                .roles("Viewer")
                .resources(IamAccessGroupPolicyResourcesArgs.builder()
                    .service("cloudantnosqldb")
                    .region("us-south")
                    .build())
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          accessGroupId: ${accgrp.iamAccessGroupId}
          roles:
            - Viewer
          resources:
            service: cloudantnosqldb
            region: us-south
    

    Access group policy using service_type with region

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        accessGroupId: accgrp.iamAccessGroupId,
        roles: ["Viewer"],
        resources: {
            serviceType: "service",
            region: "us-south",
        },
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    policy = ibm.IamAccessGroupPolicy("policy",
        access_group_id=accgrp.iam_access_group_id,
        roles=["Viewer"],
        resources={
            "service_type": "service",
            "region": "us-south",
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		accgrp, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			AccessGroupId: accgrp.IamAccessGroupId,
    			Roles: pulumi.StringArray{
    				pulumi.String("Viewer"),
    			},
    			Resources: &ibm.IamAccessGroupPolicyResourcesArgs{
    				ServiceType: pulumi.String("service"),
    				Region:      pulumi.String("us-south"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            AccessGroupId = accgrp.IamAccessGroupId,
            Roles = new[]
            {
                "Viewer",
            },
            Resources = new Ibm.Inputs.IamAccessGroupPolicyResourcesArgs
            {
                ServiceType = "service",
                Region = "us-south",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourcesArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .accessGroupId(accgrp.iamAccessGroupId())
                .roles("Viewer")
                .resources(IamAccessGroupPolicyResourcesArgs.builder()
                    .serviceType("service")
                    .region("us-south")
                    .build())
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          accessGroupId: ${accgrp.iamAccessGroupId}
          roles:
            - Viewer
          resources:
            serviceType: service
            region: us-south
    

    Access group policy using resource instance

    The following example creates an IAM policy that grants members of the access group the IAM Viewer and Administrator platform role, and the Manager service access role to a single service instance.

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const instance = new ibm.ResourceInstance("instance", {
        service: "kms",
        plan: "tiered-pricing",
        location: "us-south",
    });
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        accessGroupId: accgrp.iamAccessGroupId,
        roles: [
            "Manager",
            "Viewer",
            "Administrator",
        ],
        resources: {
            service: "kms",
            resourceInstanceId: instance.resourceInstanceId.apply(resourceInstanceId => resourceInstanceId.split(":"))[7],
        },
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    instance = ibm.ResourceInstance("instance",
        service="kms",
        plan="tiered-pricing",
        location="us-south")
    policy = ibm.IamAccessGroupPolicy("policy",
        access_group_id=accgrp.iam_access_group_id,
        roles=[
            "Manager",
            "Viewer",
            "Administrator",
        ],
        resources={
            "service": "kms",
            "resource_instance_id": instance.resource_instance_id.apply(lambda resource_instance_id: resource_instance_id.split(":"))[7],
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		accgrp, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		instance, err := ibm.NewResourceInstance(ctx, "instance", &ibm.ResourceInstanceArgs{
    			Service:  pulumi.String("kms"),
    			Plan:     pulumi.String("tiered-pricing"),
    			Location: pulumi.String("us-south"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			AccessGroupId: accgrp.IamAccessGroupId,
    			Roles: pulumi.StringArray{
    				pulumi.String("Manager"),
    				pulumi.String("Viewer"),
    				pulumi.String("Administrator"),
    			},
    			Resources: &ibm.IamAccessGroupPolicyResourcesArgs{
    				Service:            pulumi.String("kms"),
    				ResourceInstanceId: "TODO: call element",
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var instance = new Ibm.ResourceInstance("instance", new()
        {
            Service = "kms",
            Plan = "tiered-pricing",
            Location = "us-south",
        });
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            AccessGroupId = accgrp.IamAccessGroupId,
            Roles = new[]
            {
                "Manager",
                "Viewer",
                "Administrator",
            },
            Resources = new Ibm.Inputs.IamAccessGroupPolicyResourcesArgs
            {
                Service = "kms",
                ResourceInstanceId = instance.ResourceInstanceId.Apply(resourceInstanceId => resourceInstanceId.Split(":"))[7],
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.ResourceInstance;
    import com.pulumi.ibm.ResourceInstanceArgs;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourcesArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            var instance = new ResourceInstance("instance", ResourceInstanceArgs.builder()
                .service("kms")
                .plan("tiered-pricing")
                .location("us-south")
                .build());
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .accessGroupId(accgrp.iamAccessGroupId())
                .roles(            
                    "Manager",
                    "Viewer",
                    "Administrator")
                .resources(IamAccessGroupPolicyResourcesArgs.builder()
                    .service("kms")
                    .resourceInstanceId(instance.resourceInstanceId().applyValue(resourceInstanceId -> resourceInstanceId.split(":"))[7])
                    .build())
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      instance:
        type: ibm:ResourceInstance
        properties:
          service: kms
          plan: tiered-pricing
          location: us-south
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          accessGroupId: ${accgrp.iamAccessGroupId}
          roles:
            - Manager
            - Viewer
            - Administrator
          resources:
            service: kms
            resourceInstanceId:
              fn::select:
                - 7
                - fn::split:
                    - ${instance.resourceInstanceId}
                    - ':'
    

    Create a policy to all instances of an IBM Cloud service within a resource group

    The following example creates an IAM policy that grants members of the access group the IAM Viewer platform role to all instances of IBM Cloud Kubernetes Service that are created within a specific resource group.

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const group = ibm.getResourceGroup({
        name: "default",
    });
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        accessGroupId: accgrp.iamAccessGroupId,
        roles: ["Viewer"],
        resources: {
            service: "containers-kubernetes",
            resourceGroupId: group.then(group => group.id),
        },
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    group = ibm.get_resource_group(name="default")
    policy = ibm.IamAccessGroupPolicy("policy",
        access_group_id=accgrp.iam_access_group_id,
        roles=["Viewer"],
        resources={
            "service": "containers-kubernetes",
            "resource_group_id": group.id,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		accgrp, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		group, err := ibm.LookupResourceGroup(ctx, &ibm.LookupResourceGroupArgs{
    			Name: pulumi.StringRef("default"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			AccessGroupId: accgrp.IamAccessGroupId,
    			Roles: pulumi.StringArray{
    				pulumi.String("Viewer"),
    			},
    			Resources: &ibm.IamAccessGroupPolicyResourcesArgs{
    				Service:         pulumi.String("containers-kubernetes"),
    				ResourceGroupId: pulumi.String(group.Id),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var @group = Ibm.GetResourceGroup.Invoke(new()
        {
            Name = "default",
        });
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            AccessGroupId = accgrp.IamAccessGroupId,
            Roles = new[]
            {
                "Viewer",
            },
            Resources = new Ibm.Inputs.IamAccessGroupPolicyResourcesArgs
            {
                Service = "containers-kubernetes",
                ResourceGroupId = @group.Apply(@group => @group.Apply(getResourceGroupResult => getResourceGroupResult.Id)),
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.IbmFunctions;
    import com.pulumi.ibm.inputs.GetResourceGroupArgs;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourcesArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            final var group = IbmFunctions.getResourceGroup(GetResourceGroupArgs.builder()
                .name("default")
                .build());
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .accessGroupId(accgrp.iamAccessGroupId())
                .roles("Viewer")
                .resources(IamAccessGroupPolicyResourcesArgs.builder()
                    .service("containers-kubernetes")
                    .resourceGroupId(group.applyValue(getResourceGroupResult -> getResourceGroupResult.id()))
                    .build())
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          accessGroupId: ${accgrp.iamAccessGroupId}
          roles:
            - Viewer
          resources:
            service: containers-kubernetes
            resourceGroupId: ${group.id}
    variables:
      group:
        fn::invoke:
          function: ibm:getResourceGroup
          arguments:
            name: default
    

    Access group policy by using resource and resource type

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const group = ibm.getResourceGroup({
        name: "default",
    });
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        accessGroupId: accgrp.iamAccessGroupId,
        roles: ["Administrator"],
        resources: {
            resourceType: "resource-group",
            resource: group.then(group => group.id),
        },
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    group = ibm.get_resource_group(name="default")
    policy = ibm.IamAccessGroupPolicy("policy",
        access_group_id=accgrp.iam_access_group_id,
        roles=["Administrator"],
        resources={
            "resource_type": "resource-group",
            "resource": group.id,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		accgrp, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		group, err := ibm.LookupResourceGroup(ctx, &ibm.LookupResourceGroupArgs{
    			Name: pulumi.StringRef("default"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			AccessGroupId: accgrp.IamAccessGroupId,
    			Roles: pulumi.StringArray{
    				pulumi.String("Administrator"),
    			},
    			Resources: &ibm.IamAccessGroupPolicyResourcesArgs{
    				ResourceType: pulumi.String("resource-group"),
    				Resource:     pulumi.String(group.Id),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var @group = Ibm.GetResourceGroup.Invoke(new()
        {
            Name = "default",
        });
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            AccessGroupId = accgrp.IamAccessGroupId,
            Roles = new[]
            {
                "Administrator",
            },
            Resources = new Ibm.Inputs.IamAccessGroupPolicyResourcesArgs
            {
                ResourceType = "resource-group",
                Resource = @group.Apply(@group => @group.Apply(getResourceGroupResult => getResourceGroupResult.Id)),
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.IbmFunctions;
    import com.pulumi.ibm.inputs.GetResourceGroupArgs;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourcesArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            final var group = IbmFunctions.getResourceGroup(GetResourceGroupArgs.builder()
                .name("default")
                .build());
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .accessGroupId(accgrp.iamAccessGroupId())
                .roles("Administrator")
                .resources(IamAccessGroupPolicyResourcesArgs.builder()
                    .resourceType("resource-group")
                    .resource(group.applyValue(getResourceGroupResult -> getResourceGroupResult.id()))
                    .build())
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          accessGroupId: ${accgrp.iamAccessGroupId}
          roles:
            - Administrator
          resources:
            resourceType: resource-group
            resource: ${group.id}
    variables:
      group:
        fn::invoke:
          function: ibm:getResourceGroup
          arguments:
            name: default
    

    Access group policy by using attributes

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const group = ibm.getResourceGroup({
        name: "default",
    });
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        accessGroupId: accgrp.iamAccessGroupId,
        roles: ["Viewer"],
        resources: {
            service: "is",
            attributes: {
                vpcId: "*",
            },
            resourceGroupId: group.then(group => group.id),
        },
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    group = ibm.get_resource_group(name="default")
    policy = ibm.IamAccessGroupPolicy("policy",
        access_group_id=accgrp.iam_access_group_id,
        roles=["Viewer"],
        resources={
            "service": "is",
            "attributes": {
                "vpcId": "*",
            },
            "resource_group_id": group.id,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		accgrp, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		group, err := ibm.LookupResourceGroup(ctx, &ibm.LookupResourceGroupArgs{
    			Name: pulumi.StringRef("default"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			AccessGroupId: accgrp.IamAccessGroupId,
    			Roles: pulumi.StringArray{
    				pulumi.String("Viewer"),
    			},
    			Resources: &ibm.IamAccessGroupPolicyResourcesArgs{
    				Service: pulumi.String("is"),
    				Attributes: pulumi.StringMap{
    					"vpcId": pulumi.String("*"),
    				},
    				ResourceGroupId: pulumi.String(group.Id),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var @group = Ibm.GetResourceGroup.Invoke(new()
        {
            Name = "default",
        });
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            AccessGroupId = accgrp.IamAccessGroupId,
            Roles = new[]
            {
                "Viewer",
            },
            Resources = new Ibm.Inputs.IamAccessGroupPolicyResourcesArgs
            {
                Service = "is",
                Attributes = 
                {
                    { "vpcId", "*" },
                },
                ResourceGroupId = @group.Apply(@group => @group.Apply(getResourceGroupResult => getResourceGroupResult.Id)),
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.IbmFunctions;
    import com.pulumi.ibm.inputs.GetResourceGroupArgs;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourcesArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            final var group = IbmFunctions.getResourceGroup(GetResourceGroupArgs.builder()
                .name("default")
                .build());
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .accessGroupId(accgrp.iamAccessGroupId())
                .roles("Viewer")
                .resources(IamAccessGroupPolicyResourcesArgs.builder()
                    .service("is")
                    .attributes(Map.of("vpcId", "*"))
                    .resourceGroupId(group.applyValue(getResourceGroupResult -> getResourceGroupResult.id()))
                    .build())
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          accessGroupId: ${accgrp.iamAccessGroupId}
          roles:
            - Viewer
          resources:
            service: is
            attributes:
              vpcId: '*'
            resourceGroupId: ${group.id}
    variables:
      group:
        fn::invoke:
          function: ibm:getResourceGroup
          arguments:
            name: default
    

    Access Group Policy by using resource_attributes

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        accessGroupId: accgrp.iamAccessGroupId,
        roles: ["Viewer"],
        resourceAttributes: [
            {
                name: "resource",
                value: "test123*",
                operator: "stringMatch",
            },
            {
                name: "serviceName",
                value: "messagehub",
            },
        ],
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    policy = ibm.IamAccessGroupPolicy("policy",
        access_group_id=accgrp.iam_access_group_id,
        roles=["Viewer"],
        resource_attributes=[
            {
                "name": "resource",
                "value": "test123*",
                "operator": "stringMatch",
            },
            {
                "name": "serviceName",
                "value": "messagehub",
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		accgrp, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			AccessGroupId: accgrp.IamAccessGroupId,
    			Roles: pulumi.StringArray{
    				pulumi.String("Viewer"),
    			},
    			ResourceAttributes: ibm.IamAccessGroupPolicyResourceAttributeArray{
    				&ibm.IamAccessGroupPolicyResourceAttributeArgs{
    					Name:     pulumi.String("resource"),
    					Value:    pulumi.String("test123*"),
    					Operator: pulumi.String("stringMatch"),
    				},
    				&ibm.IamAccessGroupPolicyResourceAttributeArgs{
    					Name:  pulumi.String("serviceName"),
    					Value: pulumi.String("messagehub"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            AccessGroupId = accgrp.IamAccessGroupId,
            Roles = new[]
            {
                "Viewer",
            },
            ResourceAttributes = new[]
            {
                new Ibm.Inputs.IamAccessGroupPolicyResourceAttributeArgs
                {
                    Name = "resource",
                    Value = "test123*",
                    Operator = "stringMatch",
                },
                new Ibm.Inputs.IamAccessGroupPolicyResourceAttributeArgs
                {
                    Name = "serviceName",
                    Value = "messagehub",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourceAttributeArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .accessGroupId(accgrp.iamAccessGroupId())
                .roles("Viewer")
                .resourceAttributes(            
                    IamAccessGroupPolicyResourceAttributeArgs.builder()
                        .name("resource")
                        .value("test123*")
                        .operator("stringMatch")
                        .build(),
                    IamAccessGroupPolicyResourceAttributeArgs.builder()
                        .name("serviceName")
                        .value("messagehub")
                        .build())
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          accessGroupId: ${accgrp.iamAccessGroupId}
          roles:
            - Viewer
          resourceAttributes:
            - name: resource
              value: test123*
              operator: stringMatch
            - name: serviceName
              value: messagehub
    

    Access Group Policy by using service and rule_conditions

    rule_conditions can be used in conjunction with pattern and rule_operator to implement access group policies with time-based conditions. For information see Limiting access with time-based conditions. Note Currently, a policy resource created without rule_conditions, pattern, and rule_operator cannot be updated including those conditions on update.

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        accessGroupId: accgrp.iamAccessGroupId,
        roles: ["Viewer"],
        resources: {
            service: "kms",
        },
        ruleConditions: [
            {
                key: "{{environment.attributes.day_of_week}}",
                operator: "dayOfWeekAnyOf",
                values: [
                    "1+00:00",
                    "2+00:00",
                    "3+00:00",
                    "4+00:00",
                ],
            },
            {
                key: "{{environment.attributes.current_time}}",
                operator: "timeGreaterThanOrEquals",
                values: ["09:00:00+00:00"],
            },
            {
                key: "{{environment.attributes.current_time}}",
                operator: "timeLessThanOrEquals",
                values: ["17:00:00+00:00"],
            },
        ],
        ruleOperator: "and",
        pattern: "time-based-conditions:weekly:custom-hours",
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    policy = ibm.IamAccessGroupPolicy("policy",
        access_group_id=accgrp.iam_access_group_id,
        roles=["Viewer"],
        resources={
            "service": "kms",
        },
        rule_conditions=[
            {
                "key": "{{environment.attributes.day_of_week}}",
                "operator": "dayOfWeekAnyOf",
                "values": [
                    "1+00:00",
                    "2+00:00",
                    "3+00:00",
                    "4+00:00",
                ],
            },
            {
                "key": "{{environment.attributes.current_time}}",
                "operator": "timeGreaterThanOrEquals",
                "values": ["09:00:00+00:00"],
            },
            {
                "key": "{{environment.attributes.current_time}}",
                "operator": "timeLessThanOrEquals",
                "values": ["17:00:00+00:00"],
            },
        ],
        rule_operator="and",
        pattern="time-based-conditions:weekly:custom-hours")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		accgrp, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			AccessGroupId: accgrp.IamAccessGroupId,
    			Roles: pulumi.StringArray{
    				pulumi.String("Viewer"),
    			},
    			Resources: &ibm.IamAccessGroupPolicyResourcesArgs{
    				Service: pulumi.String("kms"),
    			},
    			RuleConditions: ibm.IamAccessGroupPolicyRuleConditionArray{
    				&ibm.IamAccessGroupPolicyRuleConditionArgs{
    					Key:      pulumi.String("{{environment.attributes.day_of_week}}"),
    					Operator: pulumi.String("dayOfWeekAnyOf"),
    					Values: pulumi.StringArray{
    						pulumi.String("1+00:00"),
    						pulumi.String("2+00:00"),
    						pulumi.String("3+00:00"),
    						pulumi.String("4+00:00"),
    					},
    				},
    				&ibm.IamAccessGroupPolicyRuleConditionArgs{
    					Key:      pulumi.String("{{environment.attributes.current_time}}"),
    					Operator: pulumi.String("timeGreaterThanOrEquals"),
    					Values: pulumi.StringArray{
    						pulumi.String("09:00:00+00:00"),
    					},
    				},
    				&ibm.IamAccessGroupPolicyRuleConditionArgs{
    					Key:      pulumi.String("{{environment.attributes.current_time}}"),
    					Operator: pulumi.String("timeLessThanOrEquals"),
    					Values: pulumi.StringArray{
    						pulumi.String("17:00:00+00:00"),
    					},
    				},
    			},
    			RuleOperator: pulumi.String("and"),
    			Pattern:      pulumi.String("time-based-conditions:weekly:custom-hours"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            AccessGroupId = accgrp.IamAccessGroupId,
            Roles = new[]
            {
                "Viewer",
            },
            Resources = new Ibm.Inputs.IamAccessGroupPolicyResourcesArgs
            {
                Service = "kms",
            },
            RuleConditions = new[]
            {
                new Ibm.Inputs.IamAccessGroupPolicyRuleConditionArgs
                {
                    Key = "{{environment.attributes.day_of_week}}",
                    Operator = "dayOfWeekAnyOf",
                    Values = new[]
                    {
                        "1+00:00",
                        "2+00:00",
                        "3+00:00",
                        "4+00:00",
                    },
                },
                new Ibm.Inputs.IamAccessGroupPolicyRuleConditionArgs
                {
                    Key = "{{environment.attributes.current_time}}",
                    Operator = "timeGreaterThanOrEquals",
                    Values = new[]
                    {
                        "09:00:00+00:00",
                    },
                },
                new Ibm.Inputs.IamAccessGroupPolicyRuleConditionArgs
                {
                    Key = "{{environment.attributes.current_time}}",
                    Operator = "timeLessThanOrEquals",
                    Values = new[]
                    {
                        "17:00:00+00:00",
                    },
                },
            },
            RuleOperator = "and",
            Pattern = "time-based-conditions:weekly:custom-hours",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourcesArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyRuleConditionArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .accessGroupId(accgrp.iamAccessGroupId())
                .roles("Viewer")
                .resources(IamAccessGroupPolicyResourcesArgs.builder()
                    .service("kms")
                    .build())
                .ruleConditions(            
                    IamAccessGroupPolicyRuleConditionArgs.builder()
                        .key("{{environment.attributes.day_of_week}}")
                        .operator("dayOfWeekAnyOf")
                        .values(                    
                            "1+00:00",
                            "2+00:00",
                            "3+00:00",
                            "4+00:00")
                        .build(),
                    IamAccessGroupPolicyRuleConditionArgs.builder()
                        .key("{{environment.attributes.current_time}}")
                        .operator("timeGreaterThanOrEquals")
                        .values("09:00:00+00:00")
                        .build(),
                    IamAccessGroupPolicyRuleConditionArgs.builder()
                        .key("{{environment.attributes.current_time}}")
                        .operator("timeLessThanOrEquals")
                        .values("17:00:00+00:00")
                        .build())
                .ruleOperator("and")
                .pattern("time-based-conditions:weekly:custom-hours")
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          accessGroupId: ${accgrp.iamAccessGroupId}
          roles:
            - Viewer
          resources:
            service: kms
          ruleConditions:
            - key: '{{environment.attributes.day_of_week}}'
              operator: dayOfWeekAnyOf
              values:
                - 1+00:00
                - 2+00:00
                - 3+00:00
                - 4+00:00
            - key: '{{environment.attributes.current_time}}'
              operator: timeGreaterThanOrEquals
              values:
                - 09:00:00+00:00
            - key: '{{environment.attributes.current_time}}'
              operator: timeLessThanOrEquals
              values:
                - 17:00:00+00:00
          ruleOperator: and
          pattern: time-based-conditions:weekly:custom-hours
    

    Access Group Policy by using service_group_id resource attribute

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        resourceAttributes: [{
            name: "service_group_id",
            operator: "stringEquals",
            value: "IAM",
        }],
        roles: [
            "Service ID creator",
            "User API key creator",
            "Administrator",
        ],
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    policy = ibm.IamAccessGroupPolicy("policy",
        resource_attributes=[{
            "name": "service_group_id",
            "operator": "stringEquals",
            "value": "IAM",
        }],
        roles=[
            "Service ID creator",
            "User API key creator",
            "Administrator",
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			ResourceAttributes: ibm.IamAccessGroupPolicyResourceAttributeArray{
    				&ibm.IamAccessGroupPolicyResourceAttributeArgs{
    					Name:     pulumi.String("service_group_id"),
    					Operator: pulumi.String("stringEquals"),
    					Value:    pulumi.String("IAM"),
    				},
    			},
    			Roles: pulumi.StringArray{
    				pulumi.String("Service ID creator"),
    				pulumi.String("User API key creator"),
    				pulumi.String("Administrator"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            ResourceAttributes = new[]
            {
                new Ibm.Inputs.IamAccessGroupPolicyResourceAttributeArgs
                {
                    Name = "service_group_id",
                    Operator = "stringEquals",
                    Value = "IAM",
                },
            },
            Roles = new[]
            {
                "Service ID creator",
                "User API key creator",
                "Administrator",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourceAttributeArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .resourceAttributes(IamAccessGroupPolicyResourceAttributeArgs.builder()
                    .name("service_group_id")
                    .operator("stringEquals")
                    .value("IAM")
                    .build())
                .roles(            
                    "Service ID creator",
                    "User API key creator",
                    "Administrator")
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          resourceAttributes:
            - name: service_group_id
              operator: stringEquals
              value: IAM
          roles:
            - Service ID creator
            - User API key creator
            - Administrator
    

    Access Group Policy by using Attribute Based Condition

    rule_conditions can be used in conjunction with pattern = attribute-based-condition:resource:literal-and-wildcard and rule_operator to implement more complex policy conditions. Note Currently, a policy resource created without rule_conditions, pattern, and rule_operator cannot be updated including those conditions on update.

    import * as pulumi from "@pulumi/pulumi";
    import * as ibm from "@pulumi/ibm";
    
    const accgrp = new ibm.IamAccessGroup("accgrp", {});
    const policy = new ibm.IamAccessGroupPolicy("policy", {
        accessGroupId: accgrp.iamAccessGroupId,
        roles: ["Writer"],
        resourceAttributes: [
            {
                value: "cloud-object-storage",
                operator: "stringEquals",
                name: "serviceName",
            },
            {
                value: "cos-instance",
                operator: "stringEquals",
                name: "serviceInstance",
            },
            {
                value: "bucket",
                operator: "stringEquals",
                name: "resourceType",
            },
            {
                value: "fgac-tf-test",
                operator: "stringEquals",
                name: "resource",
            },
        ],
        ruleConditions: [
            {
                operator: "and",
                conditions: [
                    {
                        key: "{{resource.attributes.prefix}}",
                        operator: "stringMatch",
                        values: ["folder1/subfolder1/*"],
                    },
                    {
                        key: "{{resource.attributes.delimiter}}",
                        operator: "stringEqualsAnyOf",
                        values: [
                            "/",
                            "",
                        ],
                    },
                ],
            },
            {
                key: "{{resource.attributes.path}}",
                operator: "stringMatch",
                values: ["folder1/subfolder1/*"],
            },
            {
                operator: "and",
                conditions: [
                    {
                        key: "{{resource.attributes.delimiter}}",
                        operator: "stringExists",
                        values: ["false"],
                    },
                    {
                        key: "{{resource.attributes.prefix}}",
                        operator: "stringExists",
                        values: ["false"],
                    },
                ],
            },
        ],
        ruleOperator: "or",
        pattern: "attribute-based-condition:resource:literal-and-wildcard",
        description: "IAM User Policy Attribute Based Condition Creation for test scenario",
    });
    
    import pulumi
    import pulumi_ibm as ibm
    
    accgrp = ibm.IamAccessGroup("accgrp")
    policy = ibm.IamAccessGroupPolicy("policy",
        access_group_id=accgrp.iam_access_group_id,
        roles=["Writer"],
        resource_attributes=[
            {
                "value": "cloud-object-storage",
                "operator": "stringEquals",
                "name": "serviceName",
            },
            {
                "value": "cos-instance",
                "operator": "stringEquals",
                "name": "serviceInstance",
            },
            {
                "value": "bucket",
                "operator": "stringEquals",
                "name": "resourceType",
            },
            {
                "value": "fgac-tf-test",
                "operator": "stringEquals",
                "name": "resource",
            },
        ],
        rule_conditions=[
            {
                "operator": "and",
                "conditions": [
                    {
                        "key": "{{resource.attributes.prefix}}",
                        "operator": "stringMatch",
                        "values": ["folder1/subfolder1/*"],
                    },
                    {
                        "key": "{{resource.attributes.delimiter}}",
                        "operator": "stringEqualsAnyOf",
                        "values": [
                            "/",
                            "",
                        ],
                    },
                ],
            },
            {
                "key": "{{resource.attributes.path}}",
                "operator": "stringMatch",
                "values": ["folder1/subfolder1/*"],
            },
            {
                "operator": "and",
                "conditions": [
                    {
                        "key": "{{resource.attributes.delimiter}}",
                        "operator": "stringExists",
                        "values": ["false"],
                    },
                    {
                        "key": "{{resource.attributes.prefix}}",
                        "operator": "stringExists",
                        "values": ["false"],
                    },
                ],
            },
        ],
        rule_operator="or",
        pattern="attribute-based-condition:resource:literal-and-wildcard",
        description="IAM User Policy Attribute Based Condition Creation for test scenario")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		accgrp, err := ibm.NewIamAccessGroup(ctx, "accgrp", nil)
    		if err != nil {
    			return err
    		}
    		_, err = ibm.NewIamAccessGroupPolicy(ctx, "policy", &ibm.IamAccessGroupPolicyArgs{
    			AccessGroupId: accgrp.IamAccessGroupId,
    			Roles: pulumi.StringArray{
    				pulumi.String("Writer"),
    			},
    			ResourceAttributes: ibm.IamAccessGroupPolicyResourceAttributeArray{
    				&ibm.IamAccessGroupPolicyResourceAttributeArgs{
    					Value:    pulumi.String("cloud-object-storage"),
    					Operator: pulumi.String("stringEquals"),
    					Name:     pulumi.String("serviceName"),
    				},
    				&ibm.IamAccessGroupPolicyResourceAttributeArgs{
    					Value:    pulumi.String("cos-instance"),
    					Operator: pulumi.String("stringEquals"),
    					Name:     pulumi.String("serviceInstance"),
    				},
    				&ibm.IamAccessGroupPolicyResourceAttributeArgs{
    					Value:    pulumi.String("bucket"),
    					Operator: pulumi.String("stringEquals"),
    					Name:     pulumi.String("resourceType"),
    				},
    				&ibm.IamAccessGroupPolicyResourceAttributeArgs{
    					Value:    pulumi.String("fgac-tf-test"),
    					Operator: pulumi.String("stringEquals"),
    					Name:     pulumi.String("resource"),
    				},
    			},
    			RuleConditions: ibm.IamAccessGroupPolicyRuleConditionArray{
    				&ibm.IamAccessGroupPolicyRuleConditionArgs{
    					Operator: pulumi.String("and"),
    					Conditions: ibm.IamAccessGroupPolicyRuleConditionConditionArray{
    						&ibm.IamAccessGroupPolicyRuleConditionConditionArgs{
    							Key:      pulumi.String("{{resource.attributes.prefix}}"),
    							Operator: pulumi.String("stringMatch"),
    							Values: pulumi.StringArray{
    								pulumi.String("folder1/subfolder1/*"),
    							},
    						},
    						&ibm.IamAccessGroupPolicyRuleConditionConditionArgs{
    							Key:      pulumi.String("{{resource.attributes.delimiter}}"),
    							Operator: pulumi.String("stringEqualsAnyOf"),
    							Values: pulumi.StringArray{
    								pulumi.String("/"),
    								pulumi.String(""),
    							},
    						},
    					},
    				},
    				&ibm.IamAccessGroupPolicyRuleConditionArgs{
    					Key:      pulumi.String("{{resource.attributes.path}}"),
    					Operator: pulumi.String("stringMatch"),
    					Values: pulumi.StringArray{
    						pulumi.String("folder1/subfolder1/*"),
    					},
    				},
    				&ibm.IamAccessGroupPolicyRuleConditionArgs{
    					Operator: pulumi.String("and"),
    					Conditions: ibm.IamAccessGroupPolicyRuleConditionConditionArray{
    						&ibm.IamAccessGroupPolicyRuleConditionConditionArgs{
    							Key:      pulumi.String("{{resource.attributes.delimiter}}"),
    							Operator: pulumi.String("stringExists"),
    							Values: pulumi.StringArray{
    								pulumi.String("false"),
    							},
    						},
    						&ibm.IamAccessGroupPolicyRuleConditionConditionArgs{
    							Key:      pulumi.String("{{resource.attributes.prefix}}"),
    							Operator: pulumi.String("stringExists"),
    							Values: pulumi.StringArray{
    								pulumi.String("false"),
    							},
    						},
    					},
    				},
    			},
    			RuleOperator: pulumi.String("or"),
    			Pattern:      pulumi.String("attribute-based-condition:resource:literal-and-wildcard"),
    			Description:  pulumi.String("IAM User Policy Attribute Based Condition Creation for test scenario"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Ibm = Pulumi.Ibm;
    
    return await Deployment.RunAsync(() => 
    {
        var accgrp = new Ibm.IamAccessGroup("accgrp");
    
        var policy = new Ibm.IamAccessGroupPolicy("policy", new()
        {
            AccessGroupId = accgrp.IamAccessGroupId,
            Roles = new[]
            {
                "Writer",
            },
            ResourceAttributes = new[]
            {
                new Ibm.Inputs.IamAccessGroupPolicyResourceAttributeArgs
                {
                    Value = "cloud-object-storage",
                    Operator = "stringEquals",
                    Name = "serviceName",
                },
                new Ibm.Inputs.IamAccessGroupPolicyResourceAttributeArgs
                {
                    Value = "cos-instance",
                    Operator = "stringEquals",
                    Name = "serviceInstance",
                },
                new Ibm.Inputs.IamAccessGroupPolicyResourceAttributeArgs
                {
                    Value = "bucket",
                    Operator = "stringEquals",
                    Name = "resourceType",
                },
                new Ibm.Inputs.IamAccessGroupPolicyResourceAttributeArgs
                {
                    Value = "fgac-tf-test",
                    Operator = "stringEquals",
                    Name = "resource",
                },
            },
            RuleConditions = new[]
            {
                new Ibm.Inputs.IamAccessGroupPolicyRuleConditionArgs
                {
                    Operator = "and",
                    Conditions = new[]
                    {
                        new Ibm.Inputs.IamAccessGroupPolicyRuleConditionConditionArgs
                        {
                            Key = "{{resource.attributes.prefix}}",
                            Operator = "stringMatch",
                            Values = new[]
                            {
                                "folder1/subfolder1/*",
                            },
                        },
                        new Ibm.Inputs.IamAccessGroupPolicyRuleConditionConditionArgs
                        {
                            Key = "{{resource.attributes.delimiter}}",
                            Operator = "stringEqualsAnyOf",
                            Values = new[]
                            {
                                "/",
                                "",
                            },
                        },
                    },
                },
                new Ibm.Inputs.IamAccessGroupPolicyRuleConditionArgs
                {
                    Key = "{{resource.attributes.path}}",
                    Operator = "stringMatch",
                    Values = new[]
                    {
                        "folder1/subfolder1/*",
                    },
                },
                new Ibm.Inputs.IamAccessGroupPolicyRuleConditionArgs
                {
                    Operator = "and",
                    Conditions = new[]
                    {
                        new Ibm.Inputs.IamAccessGroupPolicyRuleConditionConditionArgs
                        {
                            Key = "{{resource.attributes.delimiter}}",
                            Operator = "stringExists",
                            Values = new[]
                            {
                                "false",
                            },
                        },
                        new Ibm.Inputs.IamAccessGroupPolicyRuleConditionConditionArgs
                        {
                            Key = "{{resource.attributes.prefix}}",
                            Operator = "stringExists",
                            Values = new[]
                            {
                                "false",
                            },
                        },
                    },
                },
            },
            RuleOperator = "or",
            Pattern = "attribute-based-condition:resource:literal-and-wildcard",
            Description = "IAM User Policy Attribute Based Condition Creation for test scenario",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.ibm.IamAccessGroup;
    import com.pulumi.ibm.IamAccessGroupPolicy;
    import com.pulumi.ibm.IamAccessGroupPolicyArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyResourceAttributeArgs;
    import com.pulumi.ibm.inputs.IamAccessGroupPolicyRuleConditionArgs;
    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 accgrp = new IamAccessGroup("accgrp");
    
            var policy = new IamAccessGroupPolicy("policy", IamAccessGroupPolicyArgs.builder()
                .accessGroupId(accgrp.iamAccessGroupId())
                .roles("Writer")
                .resourceAttributes(            
                    IamAccessGroupPolicyResourceAttributeArgs.builder()
                        .value("cloud-object-storage")
                        .operator("stringEquals")
                        .name("serviceName")
                        .build(),
                    IamAccessGroupPolicyResourceAttributeArgs.builder()
                        .value("cos-instance")
                        .operator("stringEquals")
                        .name("serviceInstance")
                        .build(),
                    IamAccessGroupPolicyResourceAttributeArgs.builder()
                        .value("bucket")
                        .operator("stringEquals")
                        .name("resourceType")
                        .build(),
                    IamAccessGroupPolicyResourceAttributeArgs.builder()
                        .value("fgac-tf-test")
                        .operator("stringEquals")
                        .name("resource")
                        .build())
                .ruleConditions(            
                    IamAccessGroupPolicyRuleConditionArgs.builder()
                        .operator("and")
                        .conditions(                    
                            IamAccessGroupPolicyRuleConditionConditionArgs.builder()
                                .key("{{resource.attributes.prefix}}")
                                .operator("stringMatch")
                                .values("folder1/subfolder1/*")
                                .build(),
                            IamAccessGroupPolicyRuleConditionConditionArgs.builder()
                                .key("{{resource.attributes.delimiter}}")
                                .operator("stringEqualsAnyOf")
                                .values(                            
                                    "/",
                                    "")
                                .build())
                        .build(),
                    IamAccessGroupPolicyRuleConditionArgs.builder()
                        .key("{{resource.attributes.path}}")
                        .operator("stringMatch")
                        .values("folder1/subfolder1/*")
                        .build(),
                    IamAccessGroupPolicyRuleConditionArgs.builder()
                        .operator("and")
                        .conditions(                    
                            IamAccessGroupPolicyRuleConditionConditionArgs.builder()
                                .key("{{resource.attributes.delimiter}}")
                                .operator("stringExists")
                                .values("false")
                                .build(),
                            IamAccessGroupPolicyRuleConditionConditionArgs.builder()
                                .key("{{resource.attributes.prefix}}")
                                .operator("stringExists")
                                .values("false")
                                .build())
                        .build())
                .ruleOperator("or")
                .pattern("attribute-based-condition:resource:literal-and-wildcard")
                .description("IAM User Policy Attribute Based Condition Creation for test scenario")
                .build());
    
        }
    }
    
    resources:
      accgrp:
        type: ibm:IamAccessGroup
      policy:
        type: ibm:IamAccessGroupPolicy
        properties:
          accessGroupId: ${accgrp.iamAccessGroupId}
          roles:
            - Writer
          resourceAttributes:
            - value: cloud-object-storage
              operator: stringEquals
              name: serviceName
            - value: cos-instance
              operator: stringEquals
              name: serviceInstance
            - value: bucket
              operator: stringEquals
              name: resourceType
            - value: fgac-tf-test
              operator: stringEquals
              name: resource
          ruleConditions:
            - operator: and
              conditions:
                - key: '{{resource.attributes.prefix}}'
                  operator: stringMatch
                  values:
                    - folder1/subfolder1/*
                - key: '{{resource.attributes.delimiter}}'
                  operator: stringEqualsAnyOf
                  values:
                    - /
                    - ""
            - key: '{{resource.attributes.path}}'
              operator: stringMatch
              values:
                - folder1/subfolder1/*
            - operator: and
              conditions:
                - key: '{{resource.attributes.delimiter}}'
                  operator: stringExists
                  values:
                    - 'false'
                - key: '{{resource.attributes.prefix}}'
                  operator: stringExists
                  values:
                    - 'false'
          ruleOperator: or
          pattern: attribute-based-condition:resource:literal-and-wildcard
          description: IAM User Policy Attribute Based Condition Creation for test scenario
    

    Create IamAccessGroupPolicy Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new IamAccessGroupPolicy(name: string, args: IamAccessGroupPolicyArgs, opts?: CustomResourceOptions);
    @overload
    def IamAccessGroupPolicy(resource_name: str,
                             args: IamAccessGroupPolicyArgs,
                             opts: Optional[ResourceOptions] = None)
    
    @overload
    def IamAccessGroupPolicy(resource_name: str,
                             opts: Optional[ResourceOptions] = None,
                             access_group_id: Optional[str] = None,
                             roles: Optional[Sequence[str]] = None,
                             resource_tags: Optional[Sequence[IamAccessGroupPolicyResourceTagArgs]] = None,
                             iam_access_group_policy_id: Optional[str] = None,
                             pattern: Optional[str] = None,
                             resource_attributes: Optional[Sequence[IamAccessGroupPolicyResourceAttributeArgs]] = None,
                             description: Optional[str] = None,
                             resources: Optional[IamAccessGroupPolicyResourcesArgs] = None,
                             account_management: Optional[bool] = None,
                             rule_conditions: Optional[Sequence[IamAccessGroupPolicyRuleConditionArgs]] = None,
                             rule_operator: Optional[str] = None,
                             tags: Optional[Sequence[str]] = None,
                             transaction_id: Optional[str] = None)
    func NewIamAccessGroupPolicy(ctx *Context, name string, args IamAccessGroupPolicyArgs, opts ...ResourceOption) (*IamAccessGroupPolicy, error)
    public IamAccessGroupPolicy(string name, IamAccessGroupPolicyArgs args, CustomResourceOptions? opts = null)
    public IamAccessGroupPolicy(String name, IamAccessGroupPolicyArgs args)
    public IamAccessGroupPolicy(String name, IamAccessGroupPolicyArgs args, CustomResourceOptions options)
    
    type: ibm:IamAccessGroupPolicy
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args IamAccessGroupPolicyArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args IamAccessGroupPolicyArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args IamAccessGroupPolicyArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args IamAccessGroupPolicyArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args IamAccessGroupPolicyArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var iamAccessGroupPolicyResource = new Ibm.IamAccessGroupPolicy("iamAccessGroupPolicyResource", new()
    {
        AccessGroupId = "string",
        Roles = new[]
        {
            "string",
        },
        ResourceTags = new[]
        {
            new Ibm.Inputs.IamAccessGroupPolicyResourceTagArgs
            {
                Name = "string",
                Value = "string",
                Operator = "string",
            },
        },
        IamAccessGroupPolicyId = "string",
        Pattern = "string",
        ResourceAttributes = new[]
        {
            new Ibm.Inputs.IamAccessGroupPolicyResourceAttributeArgs
            {
                Name = "string",
                Value = "string",
                Operator = "string",
            },
        },
        Description = "string",
        Resources = new Ibm.Inputs.IamAccessGroupPolicyResourcesArgs
        {
            Attributes = 
            {
                { "string", "string" },
            },
            Region = "string",
            Resource = "string",
            ResourceGroupId = "string",
            ResourceInstanceId = "string",
            ResourceType = "string",
            Service = "string",
            ServiceGroupId = "string",
            ServiceType = "string",
        },
        AccountManagement = false,
        RuleConditions = new[]
        {
            new Ibm.Inputs.IamAccessGroupPolicyRuleConditionArgs
            {
                Operator = "string",
                Conditions = new[]
                {
                    new Ibm.Inputs.IamAccessGroupPolicyRuleConditionConditionArgs
                    {
                        Key = "string",
                        Operator = "string",
                        Values = new[]
                        {
                            "string",
                        },
                    },
                },
                Key = "string",
                Values = new[]
                {
                    "string",
                },
            },
        },
        RuleOperator = "string",
        Tags = new[]
        {
            "string",
        },
        TransactionId = "string",
    });
    
    example, err := ibm.NewIamAccessGroupPolicy(ctx, "iamAccessGroupPolicyResource", &ibm.IamAccessGroupPolicyArgs{
    	AccessGroupId: pulumi.String("string"),
    	Roles: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	ResourceTags: ibm.IamAccessGroupPolicyResourceTagArray{
    		&ibm.IamAccessGroupPolicyResourceTagArgs{
    			Name:     pulumi.String("string"),
    			Value:    pulumi.String("string"),
    			Operator: pulumi.String("string"),
    		},
    	},
    	IamAccessGroupPolicyId: pulumi.String("string"),
    	Pattern:                pulumi.String("string"),
    	ResourceAttributes: ibm.IamAccessGroupPolicyResourceAttributeArray{
    		&ibm.IamAccessGroupPolicyResourceAttributeArgs{
    			Name:     pulumi.String("string"),
    			Value:    pulumi.String("string"),
    			Operator: pulumi.String("string"),
    		},
    	},
    	Description: pulumi.String("string"),
    	Resources: &ibm.IamAccessGroupPolicyResourcesArgs{
    		Attributes: pulumi.StringMap{
    			"string": pulumi.String("string"),
    		},
    		Region:             pulumi.String("string"),
    		Resource:           pulumi.String("string"),
    		ResourceGroupId:    pulumi.String("string"),
    		ResourceInstanceId: pulumi.String("string"),
    		ResourceType:       pulumi.String("string"),
    		Service:            pulumi.String("string"),
    		ServiceGroupId:     pulumi.String("string"),
    		ServiceType:        pulumi.String("string"),
    	},
    	AccountManagement: pulumi.Bool(false),
    	RuleConditions: ibm.IamAccessGroupPolicyRuleConditionArray{
    		&ibm.IamAccessGroupPolicyRuleConditionArgs{
    			Operator: pulumi.String("string"),
    			Conditions: ibm.IamAccessGroupPolicyRuleConditionConditionArray{
    				&ibm.IamAccessGroupPolicyRuleConditionConditionArgs{
    					Key:      pulumi.String("string"),
    					Operator: pulumi.String("string"),
    					Values: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    			},
    			Key: pulumi.String("string"),
    			Values: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    	},
    	RuleOperator: pulumi.String("string"),
    	Tags: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	TransactionId: pulumi.String("string"),
    })
    
    var iamAccessGroupPolicyResource = new IamAccessGroupPolicy("iamAccessGroupPolicyResource", IamAccessGroupPolicyArgs.builder()
        .accessGroupId("string")
        .roles("string")
        .resourceTags(IamAccessGroupPolicyResourceTagArgs.builder()
            .name("string")
            .value("string")
            .operator("string")
            .build())
        .iamAccessGroupPolicyId("string")
        .pattern("string")
        .resourceAttributes(IamAccessGroupPolicyResourceAttributeArgs.builder()
            .name("string")
            .value("string")
            .operator("string")
            .build())
        .description("string")
        .resources(IamAccessGroupPolicyResourcesArgs.builder()
            .attributes(Map.of("string", "string"))
            .region("string")
            .resource("string")
            .resourceGroupId("string")
            .resourceInstanceId("string")
            .resourceType("string")
            .service("string")
            .serviceGroupId("string")
            .serviceType("string")
            .build())
        .accountManagement(false)
        .ruleConditions(IamAccessGroupPolicyRuleConditionArgs.builder()
            .operator("string")
            .conditions(IamAccessGroupPolicyRuleConditionConditionArgs.builder()
                .key("string")
                .operator("string")
                .values("string")
                .build())
            .key("string")
            .values("string")
            .build())
        .ruleOperator("string")
        .tags("string")
        .transactionId("string")
        .build());
    
    iam_access_group_policy_resource = ibm.IamAccessGroupPolicy("iamAccessGroupPolicyResource",
        access_group_id="string",
        roles=["string"],
        resource_tags=[{
            "name": "string",
            "value": "string",
            "operator": "string",
        }],
        iam_access_group_policy_id="string",
        pattern="string",
        resource_attributes=[{
            "name": "string",
            "value": "string",
            "operator": "string",
        }],
        description="string",
        resources={
            "attributes": {
                "string": "string",
            },
            "region": "string",
            "resource": "string",
            "resource_group_id": "string",
            "resource_instance_id": "string",
            "resource_type": "string",
            "service": "string",
            "service_group_id": "string",
            "service_type": "string",
        },
        account_management=False,
        rule_conditions=[{
            "operator": "string",
            "conditions": [{
                "key": "string",
                "operator": "string",
                "values": ["string"],
            }],
            "key": "string",
            "values": ["string"],
        }],
        rule_operator="string",
        tags=["string"],
        transaction_id="string")
    
    const iamAccessGroupPolicyResource = new ibm.IamAccessGroupPolicy("iamAccessGroupPolicyResource", {
        accessGroupId: "string",
        roles: ["string"],
        resourceTags: [{
            name: "string",
            value: "string",
            operator: "string",
        }],
        iamAccessGroupPolicyId: "string",
        pattern: "string",
        resourceAttributes: [{
            name: "string",
            value: "string",
            operator: "string",
        }],
        description: "string",
        resources: {
            attributes: {
                string: "string",
            },
            region: "string",
            resource: "string",
            resourceGroupId: "string",
            resourceInstanceId: "string",
            resourceType: "string",
            service: "string",
            serviceGroupId: "string",
            serviceType: "string",
        },
        accountManagement: false,
        ruleConditions: [{
            operator: "string",
            conditions: [{
                key: "string",
                operator: "string",
                values: ["string"],
            }],
            key: "string",
            values: ["string"],
        }],
        ruleOperator: "string",
        tags: ["string"],
        transactionId: "string",
    });
    
    type: ibm:IamAccessGroupPolicy
    properties:
        accessGroupId: string
        accountManagement: false
        description: string
        iamAccessGroupPolicyId: string
        pattern: string
        resourceAttributes:
            - name: string
              operator: string
              value: string
        resourceTags:
            - name: string
              operator: string
              value: string
        resources:
            attributes:
                string: string
            region: string
            resource: string
            resourceGroupId: string
            resourceInstanceId: string
            resourceType: string
            service: string
            serviceGroupId: string
            serviceType: string
        roles:
            - string
        ruleConditions:
            - conditions:
                - key: string
                  operator: string
                  values:
                    - string
              key: string
              operator: string
              values:
                - string
        ruleOperator: string
        tags:
            - string
        transactionId: string
    

    IamAccessGroupPolicy Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The IamAccessGroupPolicy resource accepts the following input properties:

    AccessGroupId string
    The ID of the access group.
    Roles List<string>
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    AccountManagement bool
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    Description string
    Description of the Policy
    IamAccessGroupPolicyId string
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    Pattern string
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    ResourceAttributes List<IamAccessGroupPolicyResourceAttribute>

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    ResourceTags List<IamAccessGroupPolicyResourceTag>

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    Resources IamAccessGroupPolicyResources

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    RuleConditions List<IamAccessGroupPolicyRuleCondition>

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    RuleOperator string
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    Tags List<string>
    TransactionId string
    The TransactionID can be passed to your request for tracking the calls.
    AccessGroupId string
    The ID of the access group.
    Roles []string
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    AccountManagement bool
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    Description string
    Description of the Policy
    IamAccessGroupPolicyId string
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    Pattern string
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    ResourceAttributes []IamAccessGroupPolicyResourceAttributeArgs

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    ResourceTags []IamAccessGroupPolicyResourceTagArgs

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    Resources IamAccessGroupPolicyResourcesArgs

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    RuleConditions []IamAccessGroupPolicyRuleConditionArgs

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    RuleOperator string
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    Tags []string
    TransactionId string
    The TransactionID can be passed to your request for tracking the calls.
    accessGroupId String
    The ID of the access group.
    roles List<String>
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    accountManagement Boolean
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    description String
    Description of the Policy
    iamAccessGroupPolicyId String
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    pattern String
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    resourceAttributes List<IamAccessGroupPolicyResourceAttribute>

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    resourceTags List<IamAccessGroupPolicyResourceTag>

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    resources IamAccessGroupPolicyResources

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    ruleConditions List<IamAccessGroupPolicyRuleCondition>

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    ruleOperator String
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    tags List<String>
    transactionId String
    The TransactionID can be passed to your request for tracking the calls.
    accessGroupId string
    The ID of the access group.
    roles string[]
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    accountManagement boolean
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    description string
    Description of the Policy
    iamAccessGroupPolicyId string
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    pattern string
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    resourceAttributes IamAccessGroupPolicyResourceAttribute[]

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    resourceTags IamAccessGroupPolicyResourceTag[]

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    resources IamAccessGroupPolicyResources

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    ruleConditions IamAccessGroupPolicyRuleCondition[]

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    ruleOperator string
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    tags string[]
    transactionId string
    The TransactionID can be passed to your request for tracking the calls.
    access_group_id str
    The ID of the access group.
    roles Sequence[str]
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    account_management bool
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    description str
    Description of the Policy
    iam_access_group_policy_id str
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    pattern str
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    resource_attributes Sequence[IamAccessGroupPolicyResourceAttributeArgs]

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    resource_tags Sequence[IamAccessGroupPolicyResourceTagArgs]

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    resources IamAccessGroupPolicyResourcesArgs

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    rule_conditions Sequence[IamAccessGroupPolicyRuleConditionArgs]

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    rule_operator str
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    tags Sequence[str]
    transaction_id str
    The TransactionID can be passed to your request for tracking the calls.
    accessGroupId String
    The ID of the access group.
    roles List<String>
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    accountManagement Boolean
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    description String
    Description of the Policy
    iamAccessGroupPolicyId String
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    pattern String
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    resourceAttributes List<Property Map>

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    resourceTags List<Property Map>

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    resources Property Map

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    ruleConditions List<Property Map>

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    ruleOperator String
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    tags List<String>
    transactionId String
    The TransactionID can be passed to your request for tracking the calls.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the IamAccessGroupPolicy resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    Version string
    (String) The version of the access group policy.
    Id string
    The provider-assigned unique ID for this managed resource.
    Version string
    (String) The version of the access group policy.
    id String
    The provider-assigned unique ID for this managed resource.
    version String
    (String) The version of the access group policy.
    id string
    The provider-assigned unique ID for this managed resource.
    version string
    (String) The version of the access group policy.
    id str
    The provider-assigned unique ID for this managed resource.
    version str
    (String) The version of the access group policy.
    id String
    The provider-assigned unique ID for this managed resource.
    version String
    (String) The version of the access group policy.

    Look up Existing IamAccessGroupPolicy Resource

    Get an existing IamAccessGroupPolicy resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: IamAccessGroupPolicyState, opts?: CustomResourceOptions): IamAccessGroupPolicy
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            access_group_id: Optional[str] = None,
            account_management: Optional[bool] = None,
            description: Optional[str] = None,
            iam_access_group_policy_id: Optional[str] = None,
            pattern: Optional[str] = None,
            resource_attributes: Optional[Sequence[IamAccessGroupPolicyResourceAttributeArgs]] = None,
            resource_tags: Optional[Sequence[IamAccessGroupPolicyResourceTagArgs]] = None,
            resources: Optional[IamAccessGroupPolicyResourcesArgs] = None,
            roles: Optional[Sequence[str]] = None,
            rule_conditions: Optional[Sequence[IamAccessGroupPolicyRuleConditionArgs]] = None,
            rule_operator: Optional[str] = None,
            tags: Optional[Sequence[str]] = None,
            transaction_id: Optional[str] = None,
            version: Optional[str] = None) -> IamAccessGroupPolicy
    func GetIamAccessGroupPolicy(ctx *Context, name string, id IDInput, state *IamAccessGroupPolicyState, opts ...ResourceOption) (*IamAccessGroupPolicy, error)
    public static IamAccessGroupPolicy Get(string name, Input<string> id, IamAccessGroupPolicyState? state, CustomResourceOptions? opts = null)
    public static IamAccessGroupPolicy get(String name, Output<String> id, IamAccessGroupPolicyState state, CustomResourceOptions options)
    resources:  _:    type: ibm:IamAccessGroupPolicy    get:      id: ${id}
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AccessGroupId string
    The ID of the access group.
    AccountManagement bool
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    Description string
    Description of the Policy
    IamAccessGroupPolicyId string
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    Pattern string
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    ResourceAttributes List<IamAccessGroupPolicyResourceAttribute>

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    ResourceTags List<IamAccessGroupPolicyResourceTag>

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    Resources IamAccessGroupPolicyResources

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    Roles List<string>
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    RuleConditions List<IamAccessGroupPolicyRuleCondition>

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    RuleOperator string
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    Tags List<string>
    TransactionId string
    The TransactionID can be passed to your request for tracking the calls.
    Version string
    (String) The version of the access group policy.
    AccessGroupId string
    The ID of the access group.
    AccountManagement bool
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    Description string
    Description of the Policy
    IamAccessGroupPolicyId string
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    Pattern string
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    ResourceAttributes []IamAccessGroupPolicyResourceAttributeArgs

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    ResourceTags []IamAccessGroupPolicyResourceTagArgs

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    Resources IamAccessGroupPolicyResourcesArgs

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    Roles []string
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    RuleConditions []IamAccessGroupPolicyRuleConditionArgs

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    RuleOperator string
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    Tags []string
    TransactionId string
    The TransactionID can be passed to your request for tracking the calls.
    Version string
    (String) The version of the access group policy.
    accessGroupId String
    The ID of the access group.
    accountManagement Boolean
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    description String
    Description of the Policy
    iamAccessGroupPolicyId String
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    pattern String
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    resourceAttributes List<IamAccessGroupPolicyResourceAttribute>

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    resourceTags List<IamAccessGroupPolicyResourceTag>

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    resources IamAccessGroupPolicyResources

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    roles List<String>
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    ruleConditions List<IamAccessGroupPolicyRuleCondition>

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    ruleOperator String
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    tags List<String>
    transactionId String
    The TransactionID can be passed to your request for tracking the calls.
    version String
    (String) The version of the access group policy.
    accessGroupId string
    The ID of the access group.
    accountManagement boolean
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    description string
    Description of the Policy
    iamAccessGroupPolicyId string
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    pattern string
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    resourceAttributes IamAccessGroupPolicyResourceAttribute[]

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    resourceTags IamAccessGroupPolicyResourceTag[]

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    resources IamAccessGroupPolicyResources

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    roles string[]
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    ruleConditions IamAccessGroupPolicyRuleCondition[]

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    ruleOperator string
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    tags string[]
    transactionId string
    The TransactionID can be passed to your request for tracking the calls.
    version string
    (String) The version of the access group policy.
    access_group_id str
    The ID of the access group.
    account_management bool
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    description str
    Description of the Policy
    iam_access_group_policy_id str
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    pattern str
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    resource_attributes Sequence[IamAccessGroupPolicyResourceAttributeArgs]

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    resource_tags Sequence[IamAccessGroupPolicyResourceTagArgs]

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    resources IamAccessGroupPolicyResourcesArgs

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    roles Sequence[str]
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    rule_conditions Sequence[IamAccessGroupPolicyRuleConditionArgs]

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    rule_operator str
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    tags Sequence[str]
    transaction_id str
    The TransactionID can be passed to your request for tracking the calls.
    version str
    (String) The version of the access group policy.
    accessGroupId String
    The ID of the access group.
    accountManagement Boolean
    Gives access to all account management services if set to true. Default value false. If you set this option, do not specify resources at the same time. Note Conflicts with resources and resource_attributes.
    description String
    Description of the Policy
    iamAccessGroupPolicyId String
    (String) The unique identifier of the access group policy. The ID is composed of <access_group_id>/<access_group_policy_id>.
    pattern String
    The pattern that the rule follows, e.g., time-based-conditions:weekly:all-day.
    resourceAttributes List<Property Map>

    A nested block describing the resource of this policy. Note Conflicts with account_management and resources.

    Nested scheme for resource_attributes:

    resourceTags List<Property Map>

    A nested block describing the access management tags. Note resource_tags are only allowed in policy with resource attribute serviceType, where value is equal to service.

    Nested scheme for resource_tags:

    resources Property Map

    A nested block describes the resource of this policy. Note Conflicts with account_management and resource_attributes.

    Nested scheme for resources:

    roles List<String>
    A comma separated list of roles. Valid roles are Writer, Reader, Manager, Administrator, Operator, Viewer, and Editor. For more information, about supported service specific roles, see IAM roles and actions
    ruleConditions List<Property Map>

    A nested block describing the rule conditions of this policy.

    Nested schema for rule_conditions:

    ruleOperator String
    The operator used to evaluate multiple rule conditions, e.g., all must be satisfied with and.
    tags List<String>
    transactionId String
    The TransactionID can be passed to your request for tracking the calls.
    version String
    (String) The version of the access group policy.

    Supporting Types

    IamAccessGroupPolicyResourceAttribute, IamAccessGroupPolicyResourceAttributeArgs

    Name string
    Name of an attribute. Supported values are serviceName, serviceInstance, region,resourceType, resource, resourceGroupId, service_group_id, and other service specific resource attributes.
    Value string
    Value of an attribute.
    Operator string
    Operator of an attribute. Default value is stringEquals. Note Conflicts with account_management and resources.
    Name string
    Name of an attribute. Supported values are serviceName, serviceInstance, region,resourceType, resource, resourceGroupId, service_group_id, and other service specific resource attributes.
    Value string
    Value of an attribute.
    Operator string
    Operator of an attribute. Default value is stringEquals. Note Conflicts with account_management and resources.
    name String
    Name of an attribute. Supported values are serviceName, serviceInstance, region,resourceType, resource, resourceGroupId, service_group_id, and other service specific resource attributes.
    value String
    Value of an attribute.
    operator String
    Operator of an attribute. Default value is stringEquals. Note Conflicts with account_management and resources.
    name string
    Name of an attribute. Supported values are serviceName, serviceInstance, region,resourceType, resource, resourceGroupId, service_group_id, and other service specific resource attributes.
    value string
    Value of an attribute.
    operator string
    Operator of an attribute. Default value is stringEquals. Note Conflicts with account_management and resources.
    name str
    Name of an attribute. Supported values are serviceName, serviceInstance, region,resourceType, resource, resourceGroupId, service_group_id, and other service specific resource attributes.
    value str
    Value of an attribute.
    operator str
    Operator of an attribute. Default value is stringEquals. Note Conflicts with account_management and resources.
    name String
    Name of an attribute. Supported values are serviceName, serviceInstance, region,resourceType, resource, resourceGroupId, service_group_id, and other service specific resource attributes.
    value String
    Value of an attribute.
    operator String
    Operator of an attribute. Default value is stringEquals. Note Conflicts with account_management and resources.

    IamAccessGroupPolicyResourceTag, IamAccessGroupPolicyResourceTagArgs

    Name string
    The key of an access management tag.
    Value string
    The value of an access management tag.
    Operator string
    Operator of an attribute. The default value is stringEquals.
    Name string
    The key of an access management tag.
    Value string
    The value of an access management tag.
    Operator string
    Operator of an attribute. The default value is stringEquals.
    name String
    The key of an access management tag.
    value String
    The value of an access management tag.
    operator String
    Operator of an attribute. The default value is stringEquals.
    name string
    The key of an access management tag.
    value string
    The value of an access management tag.
    operator string
    Operator of an attribute. The default value is stringEquals.
    name str
    The key of an access management tag.
    value str
    The value of an access management tag.
    operator str
    Operator of an attribute. The default value is stringEquals.
    name String
    The key of an access management tag.
    value String
    The value of an access management tag.
    operator String
    Operator of an attribute. The default value is stringEquals.

    IamAccessGroupPolicyResources, IamAccessGroupPolicyResourcesArgs

    Attributes Dictionary<string, string>
    Set resource attributes in the form of name=value,name=value. If you set this option, do not specify account_management at the same time.
    Region string
    The region of the policy definition.
    Resource string
    The resource of the policy definition.

    • resources.resource_group_id - (Optional, String) The ID of the resource group. To retrieve the ID, run ibmcloud resource groups or use the ibm.ResourceGroup data source.
    ResourceGroupId string
    ID of the resource group.
    ResourceInstanceId string
    The ID of resource instance of the policy definition.
    ResourceType string
    The resource type of the policy definition.
    Service string
    The service name that you want to include in your policy definition. For account management services, you can find supported values in the documentation. For other services, run the ibmcloud catalog service-marketplace command and retrieve the value from the Name column of your command line output. Attributes service, service_type are mutually exclusive.
    ServiceGroupId string
    The service group id of the policy definition. Note Attributes service, service_group_id are mutually exclusive.
    ServiceType string
    The service type of the policy definition. Note Attributes service, service_type are mutually exclusive.
    Attributes map[string]string
    Set resource attributes in the form of name=value,name=value. If you set this option, do not specify account_management at the same time.
    Region string
    The region of the policy definition.
    Resource string
    The resource of the policy definition.

    • resources.resource_group_id - (Optional, String) The ID of the resource group. To retrieve the ID, run ibmcloud resource groups or use the ibm.ResourceGroup data source.
    ResourceGroupId string
    ID of the resource group.
    ResourceInstanceId string
    The ID of resource instance of the policy definition.
    ResourceType string
    The resource type of the policy definition.
    Service string
    The service name that you want to include in your policy definition. For account management services, you can find supported values in the documentation. For other services, run the ibmcloud catalog service-marketplace command and retrieve the value from the Name column of your command line output. Attributes service, service_type are mutually exclusive.
    ServiceGroupId string
    The service group id of the policy definition. Note Attributes service, service_group_id are mutually exclusive.
    ServiceType string
    The service type of the policy definition. Note Attributes service, service_type are mutually exclusive.
    attributes Map<String,String>
    Set resource attributes in the form of name=value,name=value. If you set this option, do not specify account_management at the same time.
    region String
    The region of the policy definition.
    resource String
    The resource of the policy definition.

    • resources.resource_group_id - (Optional, String) The ID of the resource group. To retrieve the ID, run ibmcloud resource groups or use the ibm.ResourceGroup data source.
    resourceGroupId String
    ID of the resource group.
    resourceInstanceId String
    The ID of resource instance of the policy definition.
    resourceType String
    The resource type of the policy definition.
    service String
    The service name that you want to include in your policy definition. For account management services, you can find supported values in the documentation. For other services, run the ibmcloud catalog service-marketplace command and retrieve the value from the Name column of your command line output. Attributes service, service_type are mutually exclusive.
    serviceGroupId String
    The service group id of the policy definition. Note Attributes service, service_group_id are mutually exclusive.
    serviceType String
    The service type of the policy definition. Note Attributes service, service_type are mutually exclusive.
    attributes {[key: string]: string}
    Set resource attributes in the form of name=value,name=value. If you set this option, do not specify account_management at the same time.
    region string
    The region of the policy definition.
    resource string
    The resource of the policy definition.

    • resources.resource_group_id - (Optional, String) The ID of the resource group. To retrieve the ID, run ibmcloud resource groups or use the ibm.ResourceGroup data source.
    resourceGroupId string
    ID of the resource group.
    resourceInstanceId string
    The ID of resource instance of the policy definition.
    resourceType string
    The resource type of the policy definition.
    service string
    The service name that you want to include in your policy definition. For account management services, you can find supported values in the documentation. For other services, run the ibmcloud catalog service-marketplace command and retrieve the value from the Name column of your command line output. Attributes service, service_type are mutually exclusive.
    serviceGroupId string
    The service group id of the policy definition. Note Attributes service, service_group_id are mutually exclusive.
    serviceType string
    The service type of the policy definition. Note Attributes service, service_type are mutually exclusive.
    attributes Mapping[str, str]
    Set resource attributes in the form of name=value,name=value. If you set this option, do not specify account_management at the same time.
    region str
    The region of the policy definition.
    resource str
    The resource of the policy definition.

    • resources.resource_group_id - (Optional, String) The ID of the resource group. To retrieve the ID, run ibmcloud resource groups or use the ibm.ResourceGroup data source.
    resource_group_id str
    ID of the resource group.
    resource_instance_id str
    The ID of resource instance of the policy definition.
    resource_type str
    The resource type of the policy definition.
    service str
    The service name that you want to include in your policy definition. For account management services, you can find supported values in the documentation. For other services, run the ibmcloud catalog service-marketplace command and retrieve the value from the Name column of your command line output. Attributes service, service_type are mutually exclusive.
    service_group_id str
    The service group id of the policy definition. Note Attributes service, service_group_id are mutually exclusive.
    service_type str
    The service type of the policy definition. Note Attributes service, service_type are mutually exclusive.
    attributes Map<String>
    Set resource attributes in the form of name=value,name=value. If you set this option, do not specify account_management at the same time.
    region String
    The region of the policy definition.
    resource String
    The resource of the policy definition.

    • resources.resource_group_id - (Optional, String) The ID of the resource group. To retrieve the ID, run ibmcloud resource groups or use the ibm.ResourceGroup data source.
    resourceGroupId String
    ID of the resource group.
    resourceInstanceId String
    The ID of resource instance of the policy definition.
    resourceType String
    The resource type of the policy definition.
    service String
    The service name that you want to include in your policy definition. For account management services, you can find supported values in the documentation. For other services, run the ibmcloud catalog service-marketplace command and retrieve the value from the Name column of your command line output. Attributes service, service_type are mutually exclusive.
    serviceGroupId String
    The service group id of the policy definition. Note Attributes service, service_group_id are mutually exclusive.
    serviceType String
    The service type of the policy definition. Note Attributes service, service_type are mutually exclusive.

    IamAccessGroupPolicyRuleCondition, IamAccessGroupPolicyRuleConditionArgs

    Operator string
    The operator of a rule condition.
    Conditions List<IamAccessGroupPolicyRuleConditionCondition>

    A nested block describing additional conditions of this policy.

    Nested schema for conditions:

    Key string
    The key of a rule condition.
    Values List<string>
    The value of a rule condition.
    Operator string
    The operator of a rule condition.
    Conditions []IamAccessGroupPolicyRuleConditionCondition

    A nested block describing additional conditions of this policy.

    Nested schema for conditions:

    Key string
    The key of a rule condition.
    Values []string
    The value of a rule condition.
    operator String
    The operator of a rule condition.
    conditions List<IamAccessGroupPolicyRuleConditionCondition>

    A nested block describing additional conditions of this policy.

    Nested schema for conditions:

    key String
    The key of a rule condition.
    values List<String>
    The value of a rule condition.
    operator string
    The operator of a rule condition.
    conditions IamAccessGroupPolicyRuleConditionCondition[]

    A nested block describing additional conditions of this policy.

    Nested schema for conditions:

    key string
    The key of a rule condition.
    values string[]
    The value of a rule condition.
    operator str
    The operator of a rule condition.
    conditions Sequence[IamAccessGroupPolicyRuleConditionCondition]

    A nested block describing additional conditions of this policy.

    Nested schema for conditions:

    key str
    The key of a rule condition.
    values Sequence[str]
    The value of a rule condition.
    operator String
    The operator of a rule condition.
    conditions List<Property Map>

    A nested block describing additional conditions of this policy.

    Nested schema for conditions:

    key String
    The key of a rule condition.
    values List<String>
    The value of a rule condition.

    IamAccessGroupPolicyRuleConditionCondition, IamAccessGroupPolicyRuleConditionConditionArgs

    Key string
    The key of a condition.
    Operator string
    The operator of a condition.
    Values List<string>
    The value of a condition.
    Key string
    The key of a condition.
    Operator string
    The operator of a condition.
    Values []string
    The value of a condition.
    key String
    The key of a condition.
    operator String
    The operator of a condition.
    values List<String>
    The value of a condition.
    key string
    The key of a condition.
    operator string
    The operator of a condition.
    values string[]
    The value of a condition.
    key str
    The key of a condition.
    operator str
    The operator of a condition.
    values Sequence[str]
    The value of a condition.
    key String
    The key of a condition.
    operator String
    The operator of a condition.
    values List<String>
    The value of a condition.

    Import

    The ibm_iam_access_group_policy resource can be imported by using access group ID and access group policy ID.

    Syntax

    $ pulumi import ibm:index/iamAccessGroupPolicy:IamAccessGroupPolicy example <access_group_ID>/<access_group_policy_ID>
    

    Example

    $ pulumi import ibm:index/iamAccessGroupPolicy:IamAccessGroupPolicy example AccessGroupId-1148204e-6ef2-4ce1-9fd2-05e82a390fcf/bf5d6807-371e-4755-a282-64ebf575b80a
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    ibm ibm-cloud/terraform-provider-ibm
    License
    Notes
    This Pulumi package is based on the ibm Terraform Provider.
    ibm logo
    ibm 1.78.0 published on Wednesday, Apr 30, 2025 by ibm-cloud