1. Packages
  2. Incapsula Provider
  3. API Docs
  4. getAccountRoles
incapsula 3.33.0 published on Wednesday, Apr 30, 2025 by imperva

incapsula.getAccountRoles

Explore with Pulumi AI

incapsula logo
incapsula 3.33.0 published on Wednesday, Apr 30, 2025 by imperva

    Provides the account roles configured in every account. Roles are used to grant a fixed set of permissions to a user.

    There are no filters needed for this data source.

    The attribute map is generated and contains all the account roles, providing a Role Name to Id map. The mapping should be used for managing users in a subaccount (when the API_KEY and API_ID are associated with a subaccount). For managing users at the account level (where the API_KEY and API_ID are associated with the parent account), it is recommended to reference the specific role resource instead.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as incapsula from "@pulumi/incapsula";
    
    const roles = incapsula.getAccountRoles({
        accountId: data.incapsula_account_data.account_data.current_account,
    });
    const user1 = new incapsula.AccountUser("user1", {
        accountId: data.incapsula_account_data.account_data.current_account,
        email: "example@terraform.com",
        firstName: "First",
        lastName: "Last",
        roleIds: [
            roles.then(roles => roles.adminRoleId),
            roles.then(roles => roles.readerRoleId),
            incapsula_account_role.role_1.id,
        ],
    });
    
    import pulumi
    import pulumi_incapsula as incapsula
    
    roles = incapsula.get_account_roles(account_id=data["incapsula_account_data"]["account_data"]["current_account"])
    user1 = incapsula.AccountUser("user1",
        account_id=data["incapsula_account_data"]["account_data"]["current_account"],
        email="example@terraform.com",
        first_name="First",
        last_name="Last",
        role_ids=[
            roles.admin_role_id,
            roles.reader_role_id,
            incapsula_account_role["role_1"]["id"],
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/incapsula/v3/incapsula"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		roles, err := incapsula.GetAccountRoles(ctx, &incapsula.GetAccountRolesArgs{
    			AccountId: data.Incapsula_account_data.Account_data.Current_account,
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = incapsula.NewAccountUser(ctx, "user1", &incapsula.AccountUserArgs{
    			AccountId: pulumi.Any(data.Incapsula_account_data.Account_data.Current_account),
    			Email:     pulumi.String("example@terraform.com"),
    			FirstName: pulumi.String("First"),
    			LastName:  pulumi.String("Last"),
    			RoleIds: pulumi.Float64Array{
    				pulumi.Float64(roles.AdminRoleId),
    				pulumi.Float64(roles.ReaderRoleId),
    				incapsula_account_role.Role_1.Id,
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Incapsula = Pulumi.Incapsula;
    
    return await Deployment.RunAsync(() => 
    {
        var roles = Incapsula.GetAccountRoles.Invoke(new()
        {
            AccountId = data.Incapsula_account_data.Account_data.Current_account,
        });
    
        var user1 = new Incapsula.AccountUser("user1", new()
        {
            AccountId = data.Incapsula_account_data.Account_data.Current_account,
            Email = "example@terraform.com",
            FirstName = "First",
            LastName = "Last",
            RoleIds = new[]
            {
                roles.Apply(getAccountRolesResult => getAccountRolesResult.AdminRoleId),
                roles.Apply(getAccountRolesResult => getAccountRolesResult.ReaderRoleId),
                incapsula_account_role.Role_1.Id,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.incapsula.IncapsulaFunctions;
    import com.pulumi.incapsula.inputs.GetAccountRolesArgs;
    import com.pulumi.incapsula.AccountUser;
    import com.pulumi.incapsula.AccountUserArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var roles = IncapsulaFunctions.getAccountRoles(GetAccountRolesArgs.builder()
                .accountId(data.incapsula_account_data().account_data().current_account())
                .build());
    
            var user1 = new AccountUser("user1", AccountUserArgs.builder()
                .accountId(data.incapsula_account_data().account_data().current_account())
                .email("example@terraform.com")
                .firstName("First")
                .lastName("Last")
                .roleIds(            
                    roles.applyValue(getAccountRolesResult -> getAccountRolesResult.adminRoleId()),
                    roles.applyValue(getAccountRolesResult -> getAccountRolesResult.readerRoleId()),
                    incapsula_account_role.role_1().id())
                .build());
    
        }
    }
    
    resources:
      user1:
        type: incapsula:AccountUser
        properties:
          accountId: ${data.incapsula_account_data.account_data.current_account}
          email: example@terraform.com
          firstName: First
          lastName: Last
          roleIds:
            - ${roles.adminRoleId}
            - ${roles.readerRoleId}
            - ${incapsula_account_role.role_1.id}
    variables:
      roles:
        fn::invoke:
          function: incapsula:getAccountRoles
          arguments:
            accountId: ${data.incapsula_account_data.account_data.current_account}
    

    Using getAccountRoles

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

    function getAccountRoles(args: GetAccountRolesArgs, opts?: InvokeOptions): Promise<GetAccountRolesResult>
    function getAccountRolesOutput(args: GetAccountRolesOutputArgs, opts?: InvokeOptions): Output<GetAccountRolesResult>
    def get_account_roles(account_id: Optional[float] = None,
                          id: Optional[str] = None,
                          opts: Optional[InvokeOptions] = None) -> GetAccountRolesResult
    def get_account_roles_output(account_id: Optional[pulumi.Input[float]] = None,
                          id: Optional[pulumi.Input[str]] = None,
                          opts: Optional[InvokeOptions] = None) -> Output[GetAccountRolesResult]
    func GetAccountRoles(ctx *Context, args *GetAccountRolesArgs, opts ...InvokeOption) (*GetAccountRolesResult, error)
    func GetAccountRolesOutput(ctx *Context, args *GetAccountRolesOutputArgs, opts ...InvokeOption) GetAccountRolesResultOutput

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

    public static class GetAccountRoles 
    {
        public static Task<GetAccountRolesResult> InvokeAsync(GetAccountRolesArgs args, InvokeOptions? opts = null)
        public static Output<GetAccountRolesResult> Invoke(GetAccountRolesInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetAccountRolesResult> getAccountRoles(GetAccountRolesArgs args, InvokeOptions options)
    public static Output<GetAccountRolesResult> getAccountRoles(GetAccountRolesArgs args, InvokeOptions options)
    
    fn::invoke:
      function: incapsula:index/getAccountRoles:getAccountRoles
      arguments:
        # arguments dictionary

    The following arguments are supported:

    AccountId double
    Id string
    AccountId float64
    Id string
    accountId Double
    id String
    accountId number
    id string
    account_id float
    id str
    accountId Number
    id String

    getAccountRoles Result

    The following output properties are available:

    AccountId double
    AdminRoleId double
    Default Administrator Role Id.
    Id string
    Map Dictionary<string, double>
    Map of all the Account Roles where the key is the Role Name and value is the Role Id.
    ReaderRoleId double
    Default Reader Role Id.
    AccountId float64
    AdminRoleId float64
    Default Administrator Role Id.
    Id string
    Map map[string]float64
    Map of all the Account Roles where the key is the Role Name and value is the Role Id.
    ReaderRoleId float64
    Default Reader Role Id.
    accountId Double
    adminRoleId Double
    Default Administrator Role Id.
    id String
    map Map<String,Double>
    Map of all the Account Roles where the key is the Role Name and value is the Role Id.
    readerRoleId Double
    Default Reader Role Id.
    accountId number
    adminRoleId number
    Default Administrator Role Id.
    id string
    map {[key: string]: number}
    Map of all the Account Roles where the key is the Role Name and value is the Role Id.
    readerRoleId number
    Default Reader Role Id.
    account_id float
    admin_role_id float
    Default Administrator Role Id.
    id str
    map Mapping[str, float]
    Map of all the Account Roles where the key is the Role Name and value is the Role Id.
    reader_role_id float
    Default Reader Role Id.
    accountId Number
    adminRoleId Number
    Default Administrator Role Id.
    id String
    map Map<Number>
    Map of all the Account Roles where the key is the Role Name and value is the Role Id.
    readerRoleId Number
    Default Reader Role Id.

    Package Details

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