Lists the IAM groups that have the specified path prefix.
curl -X GET https://iam.amazonaws.com/ \
-d "Action=ListGroups" \
-d "PathPrefix=/" \
-d "Version=2010-05-08"
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
DECLARE @iTmp0 int
DECLARE @sTmp0 nvarchar(4000)
DECLARE @rest int
EXEC @hr = sp_OACreate 'Chilkat_9_5_0.Rest', @rest OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @success int
DECLARE @authAws int
EXEC @hr = sp_OACreate 'Chilkat_9_5_0.AuthAws', @authAws OUT
EXEC sp_OASetProperty @authAws, 'AccessKey', 'AWS_ACCESS_KEY'
EXEC sp_OASetProperty @authAws, 'SecretKey', 'AWS_SECRET_KEY'
EXEC sp_OASetProperty @authAws, 'Region', 'us-east-1'
EXEC sp_OASetProperty @authAws, 'ServiceName', 'iam'
EXEC sp_OAMethod @rest, 'SetAuthAws', @success OUT, STR(@authAws)
-- URL: https://iam.amazonaws.com/
DECLARE @bTls int
SELECT @bTls = 1
DECLARE @port int
SELECT @port = 443
DECLARE @bAutoReconnect int
SELECT @bAutoReconnect = 1
EXEC sp_OAMethod @rest, 'Connect', @success OUT, 'iam.amazonaws.com', STR(@port), STR(@bTls), STR(@bAutoReconnect)
IF STR(@success) <> 1
BEGIN
EXEC sp_OAGetProperty @rest, 'ConnectFailReason', @iTmp0 OUT
PRINT 'ConnectFailReason: ' + @iTmp0
EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @rest
EXEC @hr = sp_OADestroy @authAws
RETURN
END
EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'Action', 'ListGroups'
EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'PathPrefix', '/'
EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'Version', '2010-05-08'
DECLARE @sbResponseBody int
EXEC @hr = sp_OACreate 'Chilkat_9_5_0.StringBuilder', @sbResponseBody OUT
EXEC sp_OAMethod @rest, 'FullRequestNoBodySb', @success OUT, 'GET', '/', STR(@sbResponseBody)
IF STR(@success) <> 1
BEGIN
EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @rest
EXEC @hr = sp_OADestroy @authAws
EXEC @hr = sp_OADestroy @sbResponseBody
RETURN
END
DECLARE @respStatusCode int
EXEC sp_OAGetProperty @rest, 'ResponseStatusCode', @respStatusCode OUT
IF STR(@respStatusCode) >= 400
BEGIN
PRINT 'Response Status Code = ' + STR(@respStatusCode)
PRINT 'Response Header:'
EXEC sp_OAGetProperty @rest, 'ResponseHeader', @sTmp0 OUT
PRINT @sTmp0
PRINT 'Response Body:'
EXEC sp_OAMethod @sbResponseBody, 'GetAsString', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @rest
EXEC @hr = sp_OADestroy @authAws
EXEC @hr = sp_OADestroy @sbResponseBody
RETURN
END
DECLARE @xmlResponse int
EXEC @hr = sp_OACreate 'Chilkat_9_5_0.Xml', @xmlResponse OUT
EXEC sp_OAMethod @xmlResponse, 'LoadSb', @success OUT, STR(@sbResponseBody), 1
DECLARE @i int
DECLARE @count_i int
DECLARE @tagPath nvarchar(4000)
DECLARE @Path nvarchar(4000)
DECLARE @GroupName nvarchar(4000)
DECLARE @GroupId nvarchar(4000)
DECLARE @Arn nvarchar(4000)
DECLARE @IsTruncated nvarchar(4000)
DECLARE @RequestId nvarchar(4000)
SELECT @i = 0
EXEC sp_OAMethod @xmlResponse, 'NumChildrenHavingTag', @count_i OUT, 'ListGroupsResult|Groups|member'
WHILE STR(@i) < STR(@count_i)
BEGIN
EXEC sp_OASetProperty @xmlResponse, 'I', STR(@i)
EXEC sp_OAMethod @xmlResponse, 'GetChildContent', @Path OUT, 'ListGroupsResult|Groups|member[i]|Path'
EXEC sp_OAMethod @xmlResponse, 'GetChildContent', @GroupName OUT, 'ListGroupsResult|Groups|member[i]|GroupName'
EXEC sp_OAMethod @xmlResponse, 'GetChildContent', @GroupId OUT, 'ListGroupsResult|Groups|member[i]|GroupId'
EXEC sp_OAMethod @xmlResponse, 'GetChildContent', @Arn OUT, 'ListGroupsResult|Groups|member[i]|Arn'
SELECT @i = STR(@i) + 1
END
EXEC sp_OAMethod @xmlResponse, 'GetChildContent', @IsTruncated OUT, 'ListGroupsResult|IsTruncated'
EXEC sp_OAMethod @xmlResponse, 'GetChildContent', @RequestId OUT, 'ResponseMetadata|RequestId'
EXEC @hr = sp_OADestroy @rest
EXEC @hr = sp_OADestroy @authAws
EXEC @hr = sp_OADestroy @sbResponseBody
EXEC @hr = sp_OADestroy @xmlResponse
END
GO
<?xml version="1.0" encoding="utf-8" ?>
<ListGroupsResponse>
<ListGroupsResult>
<Groups>
<member>
<Path>/division_abc/subdivision_xyz/</Path>
<GroupName>Admins</GroupName>
<GroupId>AGPACKCEVSQ6C2EXAMPLE</GroupId>
<Arn>arn:aws:iam::123456789012:group/Admins</Arn>
</member>
<member>
<Path>/division_abc/subdivision_xyz/product_1234/engineering/</Path>
<GroupName>Test</GroupName>
<GroupId>AGP2MAB8DPLSRHEXAMPLE</GroupId>
<Arn>arn:aws:iam::123456789012:group
/division_abc/subdivision_xyz/product_1234/engineering/Test</Arn>
</member>
<member>
<Path>/division_abc/subdivision_xyz/product_1234/</Path>
<GroupName>Managers</GroupName>
<GroupId>AGPIODR4TAW7CSEXAMPLE</GroupId>
<Arn>arn:aws:iam::123456789012
:group/division_abc/subdivision_xyz/product_1234/Managers</Arn>
</member>
</Groups>
<IsTruncated>false</IsTruncated>
</ListGroupsResult>
<ResponseMetadata>
<RequestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</RequestId>
</ResponseMetadata>
</ListGroupsResponse>