Creates a new role for your AWS account.
curl -X GET https://iam.amazonaws.com/ \
-d "Action=CreateRole" \
-d "RoleName=S3Access" \
-d "PathPrefix=/" \
-d 'AssumeRolePolicyDocument={"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":["ec2.amazonaws.com"]},"Action":["sts:AssumeRole"]}]}' \
-d "Version=2010-05-08"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkRest.pb"
IncludeFile "CkXml.pb"
IncludeFile "CkAuthAws.pb"
Procedure ChilkatExample()
rest.i = CkRest::ckCreate()
If rest.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success.i
authAws.i = CkAuthAws::ckCreate()
If authAws.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkAuthAws::setCkAccessKey(authAws, "AWS_ACCESS_KEY")
CkAuthAws::setCkSecretKey(authAws, "AWS_SECRET_KEY")
CkAuthAws::setCkRegion(authAws, "us-east-1")
CkAuthAws::setCkServiceName(authAws, "iam")
CkRest::ckSetAuthAws(rest,authAws)
; URL: https://iam.amazonaws.com/
bTls.i = 1
port.i = 443
bAutoReconnect.i = 1
success = CkRest::ckConnect(rest,"iam.amazonaws.com",port,bTls,bAutoReconnect)
If success <> 1
Debug "ConnectFailReason: " + Str(CkRest::ckConnectFailReason(rest))
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
CkAuthAws::ckDispose(authAws)
ProcedureReturn
EndIf
CkRest::ckAddQueryParam(rest,"Action","CreateRole")
CkRest::ckAddQueryParam(rest,"RoleName","S3Access")
CkRest::ckAddQueryParam(rest,"PathPrefix","/")
CkRest::ckAddQueryParam(rest,"AssumeRolePolicyDocument","{" + Chr(34) + "Version" + Chr(34) + ":" + Chr(34) + "2012-10-17" + Chr(34) + "," + Chr(34) + "Statement" + Chr(34) + ":[{" + Chr(34) + "Effect" + Chr(34) + ":" + Chr(34) + "Allow" + Chr(34) + "," + Chr(34) + "Principal" + Chr(34) + ":{" + Chr(34) + "Service" + Chr(34) + ":[" + Chr(34) + "ec2.amazonaws.com" + Chr(34) + "]}," + Chr(34) + "Action" + Chr(34) + ":[" + Chr(34) + "sts:AssumeRole" + Chr(34) + "]}]}")
CkRest::ckAddQueryParam(rest,"Version","2010-05-08")
sbResponseBody.i = CkStringBuilder::ckCreate()
If sbResponseBody.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkRest::ckFullRequestNoBodySb(rest,"GET","/",sbResponseBody)
If success <> 1
Debug CkRest::ckLastErrorText(rest)
CkRest::ckDispose(rest)
CkAuthAws::ckDispose(authAws)
CkStringBuilder::ckDispose(sbResponseBody)
ProcedureReturn
EndIf
respStatusCode.i = CkRest::ckResponseStatusCode(rest)
If respStatusCode >= 400
Debug "Response Status Code = " + Str(respStatusCode)
Debug "Response Header:"
Debug CkRest::ckResponseHeader(rest)
Debug "Response Body:"
Debug CkStringBuilder::ckGetAsString(sbResponseBody)
CkRest::ckDispose(rest)
CkAuthAws::ckDispose(authAws)
CkStringBuilder::ckDispose(sbResponseBody)
ProcedureReturn
EndIf
xmlResponse.i = CkXml::ckCreate()
If xmlResponse.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkXml::ckLoadSb(xmlResponse,sbResponseBody,1)
CreateRoleResponse_xmlns.s
tagPath.s
Path.s
AssumeRolePolicyDocument.s
RoleId.s
RoleName.s
Arn.s
CreateDate.s
RequestId.s
CreateRoleResponse_xmlns = CkXml::ckGetAttrValue(xmlResponse,"xmlns")
Path = CkXml::ckGetChildContent(xmlResponse,"CreateRoleResult|Role|Path")
AssumeRolePolicyDocument = CkXml::ckGetChildContent(xmlResponse,"CreateRoleResult|Role|AssumeRolePolicyDocument")
RoleId = CkXml::ckGetChildContent(xmlResponse,"CreateRoleResult|Role|RoleId")
RoleName = CkXml::ckGetChildContent(xmlResponse,"CreateRoleResult|Role|RoleName")
Arn = CkXml::ckGetChildContent(xmlResponse,"CreateRoleResult|Role|Arn")
CreateDate = CkXml::ckGetChildContent(xmlResponse,"CreateRoleResult|Role|CreateDate")
RequestId = CkXml::ckGetChildContent(xmlResponse,"ResponseMetadata|RequestId")
CkRest::ckDispose(rest)
CkAuthAws::ckDispose(authAws)
CkStringBuilder::ckDispose(sbResponseBody)
CkXml::ckDispose(xmlResponse)
ProcedureReturn
EndProcedure
<?xml version="1.0" encoding="utf-8" ?>
<CreateRoleResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">
<CreateRoleResult>
<Role>
<Path>/</Path>
<AssumeRolePolicyDocument>%7B%22Version%22%3A%222012-10-17%22%2C%22Statement%22%3A%5B%7B%22Effect%22%3A%22Allow%22%2C%22Principal%22%3A%7B%22Service%22%3A%5B%22ec2.amazonaws.com%22%5D%7D%2C%22Action%22%3A%5B%22sts%3AAssumeRole%22%5D%7D%5D%7D</AssumeRolePolicyDocument>
<RoleId>AROAINN6SXEVNWCLTXEZK</RoleId>
<RoleName>S3Access</RoleName>
<Arn>arn:aws:iam::954491834127:role/S3Access</Arn>
<CreateDate>2018-05-20T12:50:13.634Z</CreateDate>
</Role>
</CreateRoleResult>
<ResponseMetadata>
<RequestId>5699b365-5c2c-11e8-8b73-3b21c350d521</RequestId>
</ResponseMetadata>
</CreateRoleResponse>