incapsula.getAccountRoles
Explore with Pulumi AI
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:
- account_
id float - id str
getAccountRoles Result
The following output properties are available:
- Account
Id double - Admin
Role doubleId - 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.
- Reader
Role doubleId - Default Reader Role Id.
- Account
Id float64 - Admin
Role float64Id - 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.
- Reader
Role float64Id - Default Reader Role Id.
- account
Id Double - admin
Role DoubleId - 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.
- reader
Role DoubleId - Default Reader Role Id.
- account
Id number - admin
Role numberId - 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.
- reader
Role numberId - Default Reader Role Id.
- account_
id float - admin_
role_ floatid - 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_ floatid - Default Reader Role Id.
- account
Id Number - admin
Role NumberId - 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.
- reader
Role NumberId - Default Reader Role Id.
Package Details
- Repository
- incapsula imperva/terraform-provider-incapsula
- License
- Notes
- This Pulumi package is based on the
incapsula
Terraform Provider.