Lists the IAM users that have the specified path prefix. If no path prefix is specified, the operation returns all users in the AWS account. If there are none, the operation returns an empty list. .
curl -X GET https://iam.amazonaws.com/ \
-d "Action=ListUsers" \
-d "PathPrefix=/" \
-d "Version=2010-05-08"
#include <C_CkRestW.h>
#include <C_CkAuthAwsW.h>
#include <C_CkStringBuilderW.h>
#include <C_CkXmlW.h>
void ChilkatSample(void)
{
HCkRestW rest;
BOOL success;
HCkAuthAwsW authAws;
BOOL bTls;
int port;
BOOL bAutoReconnect;
HCkStringBuilderW sbResponseBody;
int respStatusCode;
HCkXmlW xmlResponse;
const wchar_t *ListUsersResponse_xmlns;
int i;
int count_i;
const wchar_t *tagPath;
const wchar_t *UserId;
const wchar_t *Path;
const wchar_t *UserName;
const wchar_t *Arn;
const wchar_t *CreateDate;
const wchar_t *PasswordLastUsed;
const wchar_t *IsTruncated;
const wchar_t *RequestId;
rest = CkRestW_Create();
authAws = CkAuthAwsW_Create();
CkAuthAwsW_putAccessKey(authAws,L"AWS_ACCESS_KEY");
CkAuthAwsW_putSecretKey(authAws,L"AWS_SECRET_KEY");
CkAuthAwsW_putRegion(authAws,L"us-east-1");
CkAuthAwsW_putServiceName(authAws,L"iam");
CkRestW_SetAuthAws(rest,authAws);
// URL: https://iam.amazonaws.com/
bTls = TRUE;
port = 443;
bAutoReconnect = TRUE;
success = CkRestW_Connect(rest,L"iam.amazonaws.com",port,bTls,bAutoReconnect);
if (success != TRUE) {
wprintf(L"ConnectFailReason: %d\n",CkRestW_getConnectFailReason(rest));
wprintf(L"%s\n",CkRestW_lastErrorText(rest));
CkRestW_Dispose(rest);
CkAuthAwsW_Dispose(authAws);
return;
}
CkRestW_AddQueryParam(rest,L"Action",L"ListUsers");
CkRestW_AddQueryParam(rest,L"PathPrefix",L"/");
CkRestW_AddQueryParam(rest,L"Version",L"2010-05-08");
sbResponseBody = CkStringBuilderW_Create();
success = CkRestW_FullRequestNoBodySb(rest,L"GET",L"/",sbResponseBody);
if (success != TRUE) {
wprintf(L"%s\n",CkRestW_lastErrorText(rest));
CkRestW_Dispose(rest);
CkAuthAwsW_Dispose(authAws);
CkStringBuilderW_Dispose(sbResponseBody);
return;
}
respStatusCode = CkRestW_getResponseStatusCode(rest);
if (respStatusCode >= 400) {
wprintf(L"Response Status Code = %d\n",respStatusCode);
wprintf(L"Response Header:\n");
wprintf(L"%s\n",CkRestW_responseHeader(rest));
wprintf(L"Response Body:\n");
wprintf(L"%s\n",CkStringBuilderW_getAsString(sbResponseBody));
CkRestW_Dispose(rest);
CkAuthAwsW_Dispose(authAws);
CkStringBuilderW_Dispose(sbResponseBody);
return;
}
xmlResponse = CkXmlW_Create();
CkXmlW_LoadSb(xmlResponse,sbResponseBody,TRUE);
ListUsersResponse_xmlns = CkXmlW_getAttrValue(xmlResponse,L"xmlns");
i = 0;
count_i = CkXmlW_NumChildrenHavingTag(xmlResponse,L"ListUsersResult|Users|member");
while (i < count_i) {
CkXmlW_putI(xmlResponse,i);
UserId = CkXmlW_getChildContent(xmlResponse,L"ListUsersResult|Users|member[i]|UserId");
Path = CkXmlW_getChildContent(xmlResponse,L"ListUsersResult|Users|member[i]|Path");
UserName = CkXmlW_getChildContent(xmlResponse,L"ListUsersResult|Users|member[i]|UserName");
Arn = CkXmlW_getChildContent(xmlResponse,L"ListUsersResult|Users|member[i]|Arn");
CreateDate = CkXmlW_getChildContent(xmlResponse,L"ListUsersResult|Users|member[i]|CreateDate");
PasswordLastUsed = CkXmlW_getChildContent(xmlResponse,L"ListUsersResult|Users|member[i]|PasswordLastUsed");
i = i + 1;
}
IsTruncated = CkXmlW_getChildContent(xmlResponse,L"ListUsersResult|IsTruncated");
RequestId = CkXmlW_getChildContent(xmlResponse,L"ResponseMetadata|RequestId");
CkRestW_Dispose(rest);
CkAuthAwsW_Dispose(authAws);
CkStringBuilderW_Dispose(sbResponseBody);
CkXmlW_Dispose(xmlResponse);
}
<?xml version="1.0" encoding="utf-8" ?>
<ListUsersResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">
<ListUsersResult>
<Users>
<member>
<UserId>AID2MAB8DPLSRHEXAMPLE</UserId>
<Path>/division_abc/subdivision_xyz/engineering/</Path>
<UserName>Andrew</UserName>
<Arn>arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/engineering/Andrew</Arn>
<CreateDate>2012-09-05T19:38:48Z</CreateDate>
<PasswordLastUsed>2014-09-08T21:47:36Z</PasswordLastUsed>
</member>
<member>
<UserId>AIDIODR4TAW7CSEXAMPLE</UserId>
<Path>/division_abc/subdivision_xyz/engineering/</Path>
<UserName>Jackie</UserName>
<Arn>arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/engineering/Jackie</Arn>
<CreateDate>2014-04-09T15:43:45Z</CreateDate>
<PasswordLastUsed>2014-09-24T16:18:07Z</PasswordLastUsed>
</member>
</Users>
<IsTruncated>false</IsTruncated>
</ListUsersResult>
<ResponseMetadata>
<RequestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</RequestId>
</ResponseMetadata>
</ListUsersResponse>