1. Packages
  2. Alibaba Cloud Provider
  3. API Docs
  4. ram
  5. getUsers
Alibaba Cloud v3.76.0 published on Tuesday, Apr 8, 2025 by Pulumi

alicloud.ram.getUsers

Explore with Pulumi AI

Alibaba Cloud v3.76.0 published on Tuesday, Apr 8, 2025 by Pulumi

This data source provides a list of RAM users in an Alibaba Cloud account according to the specified filters.

NOTE: Available since v1.0.0+.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";

const _default = new alicloud.ram.Group("default", {
    name: "group1",
    comments: "group comments",
    force: true,
});
const defaultUser = new alicloud.ram.User("default", {
    name: "user-example",
    displayName: "displayname",
    mobile: "86-18888888888",
    email: "hello.uuu@aaa.com",
    comments: "yoyoyo",
});
const defaultGroupMembership = new alicloud.ram.GroupMembership("default", {
    groupName: _default.name,
    userNames: [defaultUser.name],
});
const defaultPolicy = new alicloud.ram.Policy("default", {
    policyName: "ram-policy-example",
    policyDocument: `\x09\x09\x09{
\x09\x09\x09\x09"Statement": [
\x09\x09\x09\x09 {
\x09\x09\x09\x09\x09"Action": [
\x09\x09\x09\x09\x09"oss:ListObjects",
\x09\x09\x09\x09\x09"oss:ListObjects"
\x09\x09\x09  \x09\x09],
\x09\x09\x09  \x09\x09"Effect": "Deny",
\x09\x09\x09  \x09\x09"Resource": [
\x09\x09\x09\x09\x09\x09"acs:oss:*:*:mybucket",
\x09\x09\x09\x09\x09\x09"acs:oss:*:*:mybucket/*"
\x09\x09\x09  \x09\x09]
\x09\x09\x09\x09 }
\x09\x09  \x09\x09],
\x09\x09\x09\x09"Version": "1"
\x09\x09\x09}
`,
    description: "this is a policy example",
    force: true,
});
const defaultUserPolicyAttachment = new alicloud.ram.UserPolicyAttachment("default", {
    policyName: defaultPolicy.policyName,
    userName: defaultUser.name,
    policyType: defaultPolicy.type,
});
const usersDs = alicloud.ram.getUsersOutput({
    outputFile: "users.txt",
    groupName: _default.name,
    policyName: defaultPolicy.policyName,
    policyType: "Custom",
    nameRegex: defaultUser.name,
});
export const firstUserId = usersDs.apply(usersDs => usersDs.users?.[0]?.id);
Copy
import pulumi
import pulumi_alicloud as alicloud

default = alicloud.ram.Group("default",
    name="group1",
    comments="group comments",
    force=True)
default_user = alicloud.ram.User("default",
    name="user-example",
    display_name="displayname",
    mobile="86-18888888888",
    email="hello.uuu@aaa.com",
    comments="yoyoyo")
default_group_membership = alicloud.ram.GroupMembership("default",
    group_name=default.name,
    user_names=[default_user.name])
default_policy = alicloud.ram.Policy("default",
    policy_name="ram-policy-example",
    policy_document="""\x09\x09\x09{
\x09\x09\x09\x09"Statement": [
\x09\x09\x09\x09 {
\x09\x09\x09\x09\x09"Action": [
\x09\x09\x09\x09\x09"oss:ListObjects",
\x09\x09\x09\x09\x09"oss:ListObjects"
\x09\x09\x09  \x09\x09],
\x09\x09\x09  \x09\x09"Effect": "Deny",
\x09\x09\x09  \x09\x09"Resource": [
\x09\x09\x09\x09\x09\x09"acs:oss:*:*:mybucket",
\x09\x09\x09\x09\x09\x09"acs:oss:*:*:mybucket/*"
\x09\x09\x09  \x09\x09]
\x09\x09\x09\x09 }
\x09\x09  \x09\x09],
\x09\x09\x09\x09"Version": "1"
\x09\x09\x09}
""",
    description="this is a policy example",
    force=True)
default_user_policy_attachment = alicloud.ram.UserPolicyAttachment("default",
    policy_name=default_policy.policy_name,
    user_name=default_user.name,
    policy_type=default_policy.type)
users_ds = alicloud.ram.get_users_output(output_file="users.txt",
    group_name=default.name,
    policy_name=default_policy.policy_name,
    policy_type="Custom",
    name_regex=default_user.name)
pulumi.export("firstUserId", users_ds.users[0].id)
Copy
package main

import (
	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ram"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := ram.NewGroup(ctx, "default", &ram.GroupArgs{
			Name:     pulumi.String("group1"),
			Comments: pulumi.String("group comments"),
			Force:    pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		defaultUser, err := ram.NewUser(ctx, "default", &ram.UserArgs{
			Name:        pulumi.String("user-example"),
			DisplayName: pulumi.String("displayname"),
			Mobile:      pulumi.String("86-18888888888"),
			Email:       pulumi.String("hello.uuu@aaa.com"),
			Comments:    pulumi.String("yoyoyo"),
		})
		if err != nil {
			return err
		}
		_, err = ram.NewGroupMembership(ctx, "default", &ram.GroupMembershipArgs{
			GroupName: _default.Name,
			UserNames: pulumi.StringArray{
				defaultUser.Name,
			},
		})
		if err != nil {
			return err
		}
		defaultPolicy, err := ram.NewPolicy(ctx, "default", &ram.PolicyArgs{
			PolicyName: pulumi.String("ram-policy-example"),
			PolicyDocument: pulumi.String(`			{
				"Statement": [
				 {
					"Action": [
					"oss:ListObjects",
					"oss:ListObjects"
			  		],
			  		"Effect": "Deny",
			  		"Resource": [
						"acs:oss:*:*:mybucket",
						"acs:oss:*:*:mybucket/*"
			  		]
				 }
		  		],
				"Version": "1"
			}
`),
			Description: pulumi.String("this is a policy example"),
			Force:       pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		_, err = ram.NewUserPolicyAttachment(ctx, "default", &ram.UserPolicyAttachmentArgs{
			PolicyName: defaultPolicy.PolicyName,
			UserName:   defaultUser.Name,
			PolicyType: defaultPolicy.Type,
		})
		if err != nil {
			return err
		}
		usersDs := ram.GetUsersOutput(ctx, ram.GetUsersOutputArgs{
			OutputFile: pulumi.String("users.txt"),
			GroupName:  _default.Name,
			PolicyName: defaultPolicy.PolicyName,
			PolicyType: pulumi.String("Custom"),
			NameRegex:  defaultUser.Name,
		}, nil)
		ctx.Export("firstUserId", usersDs.ApplyT(func(usersDs ram.GetUsersResult) (*string, error) {
			return &usersDs.Users[0].Id, nil
		}).(pulumi.StringPtrOutput))
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;

return await Deployment.RunAsync(() => 
{
    var @default = new AliCloud.Ram.Group("default", new()
    {
        Name = "group1",
        Comments = "group comments",
        Force = true,
    });

    var defaultUser = new AliCloud.Ram.User("default", new()
    {
        Name = "user-example",
        DisplayName = "displayname",
        Mobile = "86-18888888888",
        Email = "hello.uuu@aaa.com",
        Comments = "yoyoyo",
    });

    var defaultGroupMembership = new AliCloud.Ram.GroupMembership("default", new()
    {
        GroupName = @default.Name,
        UserNames = new[]
        {
            defaultUser.Name,
        },
    });

    var defaultPolicy = new AliCloud.Ram.Policy("default", new()
    {
        PolicyName = "ram-policy-example",
        PolicyDocument = @"			{
				""Statement"": [
				 {
					""Action"": [
					""oss:ListObjects"",
					""oss:ListObjects""
			  		],
			  		""Effect"": ""Deny"",
			  		""Resource"": [
						""acs:oss:*:*:mybucket"",
						""acs:oss:*:*:mybucket/*""
			  		]
				 }
		  		],
				""Version"": ""1""
			}
",
        Description = "this is a policy example",
        Force = true,
    });

    var defaultUserPolicyAttachment = new AliCloud.Ram.UserPolicyAttachment("default", new()
    {
        PolicyName = defaultPolicy.PolicyName,
        UserName = defaultUser.Name,
        PolicyType = defaultPolicy.Type,
    });

    var usersDs = AliCloud.Ram.GetUsers.Invoke(new()
    {
        OutputFile = "users.txt",
        GroupName = @default.Name,
        PolicyName = defaultPolicy.PolicyName,
        PolicyType = "Custom",
        NameRegex = defaultUser.Name,
    });

    return new Dictionary<string, object?>
    {
        ["firstUserId"] = usersDs.Apply(getUsersResult => getUsersResult.Users[0]?.Id),
    };
});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.ram.Group;
import com.pulumi.alicloud.ram.GroupArgs;
import com.pulumi.alicloud.ram.User;
import com.pulumi.alicloud.ram.UserArgs;
import com.pulumi.alicloud.ram.GroupMembership;
import com.pulumi.alicloud.ram.GroupMembershipArgs;
import com.pulumi.alicloud.ram.Policy;
import com.pulumi.alicloud.ram.PolicyArgs;
import com.pulumi.alicloud.ram.UserPolicyAttachment;
import com.pulumi.alicloud.ram.UserPolicyAttachmentArgs;
import com.pulumi.alicloud.ram.RamFunctions;
import com.pulumi.alicloud.ram.inputs.GetUsersArgs;
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 default_ = new Group("default", GroupArgs.builder()
            .name("group1")
            .comments("group comments")
            .force(true)
            .build());

        var defaultUser = new User("defaultUser", UserArgs.builder()
            .name("user-example")
            .displayName("displayname")
            .mobile("86-18888888888")
            .email("hello.uuu@aaa.com")
            .comments("yoyoyo")
            .build());

        var defaultGroupMembership = new GroupMembership("defaultGroupMembership", GroupMembershipArgs.builder()
            .groupName(default_.name())
            .userNames(defaultUser.name())
            .build());

        var defaultPolicy = new Policy("defaultPolicy", PolicyArgs.builder()
            .policyName("ram-policy-example")
            .policyDocument("""
			{
				"Statement": [
				 {
					"Action": [
					"oss:ListObjects",
					"oss:ListObjects"
			  		],
			  		"Effect": "Deny",
			  		"Resource": [
						"acs:oss:*:*:mybucket",
						"acs:oss:*:*:mybucket/*"
			  		]
				 }
		  		],
				"Version": "1"
			}
            """)
            .description("this is a policy example")
            .force(true)
            .build());

        var defaultUserPolicyAttachment = new UserPolicyAttachment("defaultUserPolicyAttachment", UserPolicyAttachmentArgs.builder()
            .policyName(defaultPolicy.policyName())
            .userName(defaultUser.name())
            .policyType(defaultPolicy.type())
            .build());

        final var usersDs = RamFunctions.getUsers(GetUsersArgs.builder()
            .outputFile("users.txt")
            .groupName(default_.name())
            .policyName(defaultPolicy.policyName())
            .policyType("Custom")
            .nameRegex(defaultUser.name())
            .build());

        ctx.export("firstUserId", usersDs.applyValue(getUsersResult -> getUsersResult).applyValue(usersDs -> usersDs.applyValue(getUsersResult -> getUsersResult.users()[0].id())));
    }
}
Copy
resources:
  default:
    type: alicloud:ram:Group
    properties:
      name: group1
      comments: group comments
      force: true
  defaultUser:
    type: alicloud:ram:User
    name: default
    properties:
      name: user-example
      displayName: displayname
      mobile: 86-18888888888
      email: hello.uuu@aaa.com
      comments: yoyoyo
  defaultGroupMembership:
    type: alicloud:ram:GroupMembership
    name: default
    properties:
      groupName: ${default.name}
      userNames:
        - ${defaultUser.name}
  defaultPolicy:
    type: alicloud:ram:Policy
    name: default
    properties:
      policyName: ram-policy-example
      policyDocument: |
        			{
        				"Statement": [
        				 {
        					"Action": [
        					"oss:ListObjects",
        					"oss:ListObjects"
        			  		],
        			  		"Effect": "Deny",
        			  		"Resource": [
        						"acs:oss:*:*:mybucket",
        						"acs:oss:*:*:mybucket/*"
        			  		]
        				 }
        		  		],
        				"Version": "1"
        			}        
      description: this is a policy example
      force: true
  defaultUserPolicyAttachment:
    type: alicloud:ram:UserPolicyAttachment
    name: default
    properties:
      policyName: ${defaultPolicy.policyName}
      userName: ${defaultUser.name}
      policyType: ${defaultPolicy.type}
variables:
  usersDs:
    fn::invoke:
      function: alicloud:ram:getUsers
      arguments:
        outputFile: users.txt
        groupName: ${default.name}
        policyName: ${defaultPolicy.policyName}
        policyType: Custom
        nameRegex: ${defaultUser.name}
outputs:
  firstUserId: ${usersDs.users[0].id}
Copy

Using getUsers

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 getUsers(args: GetUsersArgs, opts?: InvokeOptions): Promise<GetUsersResult>
function getUsersOutput(args: GetUsersOutputArgs, opts?: InvokeOptions): Output<GetUsersResult>
Copy
def get_users(group_name: Optional[str] = None,
              ids: Optional[Sequence[str]] = None,
              name_regex: Optional[str] = None,
              output_file: Optional[str] = None,
              policy_name: Optional[str] = None,
              policy_type: Optional[str] = None,
              opts: Optional[InvokeOptions] = None) -> GetUsersResult
def get_users_output(group_name: Optional[pulumi.Input[str]] = None,
              ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
              name_regex: Optional[pulumi.Input[str]] = None,
              output_file: Optional[pulumi.Input[str]] = None,
              policy_name: Optional[pulumi.Input[str]] = None,
              policy_type: Optional[pulumi.Input[str]] = None,
              opts: Optional[InvokeOptions] = None) -> Output[GetUsersResult]
Copy
func GetUsers(ctx *Context, args *GetUsersArgs, opts ...InvokeOption) (*GetUsersResult, error)
func GetUsersOutput(ctx *Context, args *GetUsersOutputArgs, opts ...InvokeOption) GetUsersResultOutput
Copy

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

public static class GetUsers 
{
    public static Task<GetUsersResult> InvokeAsync(GetUsersArgs args, InvokeOptions? opts = null)
    public static Output<GetUsersResult> Invoke(GetUsersInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<GetUsersResult> getUsers(GetUsersArgs args, InvokeOptions options)
public static Output<GetUsersResult> getUsers(GetUsersArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: alicloud:ram/getUsers:getUsers
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

GroupName Changes to this property will trigger replacement. string
Filter results by a specific group name. Returned users are in the specified group.
Ids List<string>
A list of ram user IDs.
NameRegex Changes to this property will trigger replacement. string
A regex string to filter resulting users by their names.
OutputFile string
File name where to save data source results (after running pulumi preview).
PolicyName Changes to this property will trigger replacement. string
Filter results by a specific policy name. If you set this parameter without setting policy_type, the later will be automatically set to System. Returned users are attached to the specified policy.
PolicyType Changes to this property will trigger replacement. string
Filter results by a specific policy type. Valid values are Custom and System. If you set this parameter, you must set policy_name as well.
GroupName Changes to this property will trigger replacement. string
Filter results by a specific group name. Returned users are in the specified group.
Ids []string
A list of ram user IDs.
NameRegex Changes to this property will trigger replacement. string
A regex string to filter resulting users by their names.
OutputFile string
File name where to save data source results (after running pulumi preview).
PolicyName Changes to this property will trigger replacement. string
Filter results by a specific policy name. If you set this parameter without setting policy_type, the later will be automatically set to System. Returned users are attached to the specified policy.
PolicyType Changes to this property will trigger replacement. string
Filter results by a specific policy type. Valid values are Custom and System. If you set this parameter, you must set policy_name as well.
groupName Changes to this property will trigger replacement. String
Filter results by a specific group name. Returned users are in the specified group.
ids List<String>
A list of ram user IDs.
nameRegex Changes to this property will trigger replacement. String
A regex string to filter resulting users by their names.
outputFile String
File name where to save data source results (after running pulumi preview).
policyName Changes to this property will trigger replacement. String
Filter results by a specific policy name. If you set this parameter without setting policy_type, the later will be automatically set to System. Returned users are attached to the specified policy.
policyType Changes to this property will trigger replacement. String
Filter results by a specific policy type. Valid values are Custom and System. If you set this parameter, you must set policy_name as well.
groupName Changes to this property will trigger replacement. string
Filter results by a specific group name. Returned users are in the specified group.
ids string[]
A list of ram user IDs.
nameRegex Changes to this property will trigger replacement. string
A regex string to filter resulting users by their names.
outputFile string
File name where to save data source results (after running pulumi preview).
policyName Changes to this property will trigger replacement. string
Filter results by a specific policy name. If you set this parameter without setting policy_type, the later will be automatically set to System. Returned users are attached to the specified policy.
policyType Changes to this property will trigger replacement. string
Filter results by a specific policy type. Valid values are Custom and System. If you set this parameter, you must set policy_name as well.
group_name Changes to this property will trigger replacement. str
Filter results by a specific group name. Returned users are in the specified group.
ids Sequence[str]
A list of ram user IDs.
name_regex Changes to this property will trigger replacement. str
A regex string to filter resulting users by their names.
output_file str
File name where to save data source results (after running pulumi preview).
policy_name Changes to this property will trigger replacement. str
Filter results by a specific policy name. If you set this parameter without setting policy_type, the later will be automatically set to System. Returned users are attached to the specified policy.
policy_type Changes to this property will trigger replacement. str
Filter results by a specific policy type. Valid values are Custom and System. If you set this parameter, you must set policy_name as well.
groupName Changes to this property will trigger replacement. String
Filter results by a specific group name. Returned users are in the specified group.
ids List<String>
A list of ram user IDs.
nameRegex Changes to this property will trigger replacement. String
A regex string to filter resulting users by their names.
outputFile String
File name where to save data source results (after running pulumi preview).
policyName Changes to this property will trigger replacement. String
Filter results by a specific policy name. If you set this parameter without setting policy_type, the later will be automatically set to System. Returned users are attached to the specified policy.
policyType Changes to this property will trigger replacement. String
Filter results by a specific policy type. Valid values are Custom and System. If you set this parameter, you must set policy_name as well.

getUsers Result

The following output properties are available:

Id string
The provider-assigned unique ID for this managed resource.
Ids List<string>
A list of ram user IDs.
Names List<string>
A list of ram user's name.
Users List<Pulumi.AliCloud.Ram.Outputs.GetUsersUser>
A list of users. Each element contains the following attributes:
GroupName string
NameRegex string
OutputFile string
PolicyName string
PolicyType string
Id string
The provider-assigned unique ID for this managed resource.
Ids []string
A list of ram user IDs.
Names []string
A list of ram user's name.
Users []GetUsersUser
A list of users. Each element contains the following attributes:
GroupName string
NameRegex string
OutputFile string
PolicyName string
PolicyType string
id String
The provider-assigned unique ID for this managed resource.
ids List<String>
A list of ram user IDs.
names List<String>
A list of ram user's name.
users List<GetUsersUser>
A list of users. Each element contains the following attributes:
groupName String
nameRegex String
outputFile String
policyName String
policyType String
id string
The provider-assigned unique ID for this managed resource.
ids string[]
A list of ram user IDs.
names string[]
A list of ram user's name.
users GetUsersUser[]
A list of users. Each element contains the following attributes:
groupName string
nameRegex string
outputFile string
policyName string
policyType string
id str
The provider-assigned unique ID for this managed resource.
ids Sequence[str]
A list of ram user IDs.
names Sequence[str]
A list of ram user's name.
users Sequence[GetUsersUser]
A list of users. Each element contains the following attributes:
group_name str
name_regex str
output_file str
policy_name str
policy_type str
id String
The provider-assigned unique ID for this managed resource.
ids List<String>
A list of ram user IDs.
names List<String>
A list of ram user's name.
users List<Property Map>
A list of users. Each element contains the following attributes:
groupName String
nameRegex String
outputFile String
policyName String
policyType String

Supporting Types

GetUsersUser

CreateDate This property is required. string
Creation date of the user.
Id This property is required. string
The original id is user's name, but it is user id in 1.37.0+.
LastLoginDate This property is required. string
(Removed) Last login date of the user. Removed from version 1.79.0.
Name This property is required. string
Name of the user.
CreateDate This property is required. string
Creation date of the user.
Id This property is required. string
The original id is user's name, but it is user id in 1.37.0+.
LastLoginDate This property is required. string
(Removed) Last login date of the user. Removed from version 1.79.0.
Name This property is required. string
Name of the user.
createDate This property is required. String
Creation date of the user.
id This property is required. String
The original id is user's name, but it is user id in 1.37.0+.
lastLoginDate This property is required. String
(Removed) Last login date of the user. Removed from version 1.79.0.
name This property is required. String
Name of the user.
createDate This property is required. string
Creation date of the user.
id This property is required. string
The original id is user's name, but it is user id in 1.37.0+.
lastLoginDate This property is required. string
(Removed) Last login date of the user. Removed from version 1.79.0.
name This property is required. string
Name of the user.
create_date This property is required. str
Creation date of the user.
id This property is required. str
The original id is user's name, but it is user id in 1.37.0+.
last_login_date This property is required. str
(Removed) Last login date of the user. Removed from version 1.79.0.
name This property is required. str
Name of the user.
createDate This property is required. String
Creation date of the user.
id This property is required. String
The original id is user's name, but it is user id in 1.37.0+.
lastLoginDate This property is required. String
(Removed) Last login date of the user. Removed from version 1.79.0.
name This property is required. String
Name of the user.

Package Details

Repository
Alibaba Cloud pulumi/pulumi-alicloud
License
Apache-2.0
Notes
This Pulumi package is based on the alicloud Terraform Provider.
Alibaba Cloud v3.76.0 published on Tuesday, Apr 8, 2025 by Pulumi