From e082d2ad5ffdb8861ad898d343123299bd3732b0 Mon Sep 17 00:00:00 2001 From: Jeremy Lindblom Date: Thu, 4 Dec 2014 13:36:43 -0800 Subject: [PATCH] Updated IAM, Kinesis, Lambda, and Route 53 service descriptions. --- CHANGELOG.md | 9 + src/Aws/Iam/IamClient.php | 2 + src/Aws/Iam/Resources/iam-2010-05-08.php | 251 ++++++++++++++++++ src/Aws/Kinesis/KinesisClient.php | 1 + .../Kinesis/Resources/kinesis-2013-12-02.php | 105 ++++++++ src/Aws/Lambda/LambdaClient.php | 2 + .../Lambda/Resources/lambda-2014-11-11.php | 14 + .../Route53/Resources/route53-2013-04-01.php | 96 ++++++- src/Aws/Route53/Route53Client.php | 1 + 9 files changed, 474 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99909b5456..2ce707c24d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # CHANGELOG +## Next Release + +* Added support for the `PutRecords` batch operation to `KinesisClient`. +* Added support for the `GetAccountAuthorizationDetails` operation to the + `IamClient`. +* Added support for the `UpdateHostedZoneComment` operation to `Route53Client`. +* Added iterators for `ListEventSources` and `ListFunctions` operations the + `LambdaClient`. + ## 2.7.7 - 2014-11-25 * Added a DynamoDB `Marshaler` class, that allows you to marshal JSON documents diff --git a/src/Aws/Iam/IamClient.php b/src/Aws/Iam/IamClient.php index 9de1885cbd..983f0e1985 100644 --- a/src/Aws/Iam/IamClient.php +++ b/src/Aws/Iam/IamClient.php @@ -59,6 +59,7 @@ * @method Model deleteVirtualMFADevice(array $args = array()) {@command Iam DeleteVirtualMFADevice} * @method Model enableMFADevice(array $args = array()) {@command Iam EnableMFADevice} * @method Model generateCredentialReport(array $args = array()) {@command Iam GenerateCredentialReport} + * @method Model getAccountAuthorizationDetails(array $args = array()) {@command Iam GetAccountAuthorizationDetails} * @method Model getAccountPasswordPolicy(array $args = array()) {@command Iam GetAccountPasswordPolicy} * @method Model getAccountSummary(array $args = array()) {@command Iam GetAccountSummary} * @method Model getCredentialReport(array $args = array()) {@command Iam GetCredentialReport} @@ -109,6 +110,7 @@ * @method Model updateUser(array $args = array()) {@command Iam UpdateUser} * @method Model uploadServerCertificate(array $args = array()) {@command Iam UploadServerCertificate} * @method Model uploadSigningCertificate(array $args = array()) {@command Iam UploadSigningCertificate} + * @method ResourceIteratorInterface getGetAccountAuthorizationDetailsIterator(array $args = array()) The input array uses the parameters of the GetAccountAuthorizationDetails operation * @method ResourceIteratorInterface getGetGroupIterator(array $args = array()) The input array uses the parameters of the GetGroup operation * @method ResourceIteratorInterface getListAccessKeysIterator(array $args = array()) The input array uses the parameters of the ListAccessKeys operation * @method ResourceIteratorInterface getListAccountAliasesIterator(array $args = array()) The input array uses the parameters of the ListAccountAliases operation diff --git a/src/Aws/Iam/Resources/iam-2010-05-08.php b/src/Aws/Iam/Resources/iam-2010-05-08.php index 5bf8cca558..60726fe166 100644 --- a/src/Aws/Iam/Resources/iam-2010-05-08.php +++ b/src/Aws/Iam/Resources/iam-2010-05-08.php @@ -1509,6 +1509,46 @@ ), ), ), + 'GetAccountAuthorizationDetails' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\QueryCommand', + 'responseClass' => 'GetAccountAuthorizationDetailsResponse', + 'responseType' => 'model', + 'parameters' => array( + 'Action' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => 'GetAccountAuthorizationDetails', + ), + 'Version' => array( + 'static' => true, + 'location' => 'aws.query', + 'default' => '2010-05-08', + ), + 'Filter' => array( + 'type' => 'array', + 'location' => 'aws.query', + 'sentAs' => 'Filter.member', + 'items' => array( + 'name' => 'EntityType', + 'type' => 'string', + ), + ), + 'MaxItems' => array( + 'type' => 'numeric', + 'location' => 'aws.query', + 'minimum' => 1, + 'maximum' => 1000, + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'aws.query', + 'minLength' => 1, + 'maxLength' => 320, + ), + ), + ), 'GetAccountPasswordPolicy' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -3905,6 +3945,210 @@ ), ), ), + 'GetAccountAuthorizationDetailsResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'UserDetailList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'UserDetail', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Path' => array( + 'type' => 'string', + ), + 'UserName' => array( + 'type' => 'string', + ), + 'UserId' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + 'UserPolicyList' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PolicyDetail', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'PolicyName' => array( + 'type' => 'string', + ), + 'PolicyDocument' => array( + 'type' => 'string', + ), + ), + ), + ), + 'GroupList' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'groupNameType', + 'type' => 'string', + 'sentAs' => 'member', + ), + ), + ), + ), + ), + 'GroupDetailList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'GroupDetail', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Path' => array( + 'type' => 'string', + ), + 'GroupName' => array( + 'type' => 'string', + ), + 'GroupId' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + 'GroupPolicyList' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PolicyDetail', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'PolicyName' => array( + 'type' => 'string', + ), + 'PolicyDocument' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'RoleDetailList' => array( + 'type' => 'array', + 'location' => 'xml', + 'items' => array( + 'name' => 'RoleDetail', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Path' => array( + 'type' => 'string', + ), + 'RoleName' => array( + 'type' => 'string', + ), + 'RoleId' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + 'AssumeRolePolicyDocument' => array( + 'type' => 'string', + ), + 'InstanceProfileList' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'InstanceProfile', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Path' => array( + 'type' => 'string', + ), + 'InstanceProfileName' => array( + 'type' => 'string', + ), + 'InstanceProfileId' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + 'Roles' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'Role', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'Path' => array( + 'type' => 'string', + ), + 'RoleName' => array( + 'type' => 'string', + ), + 'RoleId' => array( + 'type' => 'string', + ), + 'Arn' => array( + 'type' => 'string', + ), + 'CreateDate' => array( + 'type' => 'string', + ), + 'AssumeRolePolicyDocument' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'RolePolicyList' => array( + 'type' => 'array', + 'items' => array( + 'name' => 'PolicyDetail', + 'type' => 'object', + 'sentAs' => 'member', + 'properties' => array( + 'PolicyName' => array( + 'type' => 'string', + ), + 'PolicyDocument' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), + ), + 'IsTruncated' => array( + 'type' => 'boolean', + 'location' => 'xml', + ), + 'Marker' => array( + 'type' => 'string', + 'location' => 'xml', + ), + ), + ), 'GetAccountPasswordPolicyResponse' => array( 'type' => 'object', 'additionalProperties' => true, @@ -5087,6 +5331,13 @@ ), ), 'iterators' => array( + 'GetAccountAuthorizationDetails' => array( + 'input_token' => 'Marker', + 'output_token' => 'Marker', + 'more_results' => 'IsTruncated', + 'limit_key' => 'MaxItems', + 'result_key' => 'UserDetailList || GroupDetailList || RoleDetailList', + ), 'GetGroup' => array( 'input_token' => 'Marker', 'output_token' => 'Marker', diff --git a/src/Aws/Kinesis/KinesisClient.php b/src/Aws/Kinesis/KinesisClient.php index b277e31b39..41f5dd8cf2 100644 --- a/src/Aws/Kinesis/KinesisClient.php +++ b/src/Aws/Kinesis/KinesisClient.php @@ -36,6 +36,7 @@ * @method Model listTagsForStream(array $args = array()) {@command Kinesis ListTagsForStream} * @method Model mergeShards(array $args = array()) {@command Kinesis MergeShards} * @method Model putRecord(array $args = array()) {@command Kinesis PutRecord} + * @method Model putRecords(array $args = array()) {@command Kinesis PutRecords} * @method Model removeTagsFromStream(array $args = array()) {@command Kinesis RemoveTagsFromStream} * @method Model splitShard(array $args = array()) {@command Kinesis SplitShard} * @method ResourceIteratorInterface getDescribeStreamIterator(array $args = array()) The input array uses the parameters of the DescribeStream operation diff --git a/src/Aws/Kinesis/Resources/kinesis-2013-12-02.php b/src/Aws/Kinesis/Resources/kinesis-2013-12-02.php index 514af18088..a1e70c1ff1 100644 --- a/src/Aws/Kinesis/Resources/kinesis-2013-12-02.php +++ b/src/Aws/Kinesis/Resources/kinesis-2013-12-02.php @@ -599,6 +599,79 @@ ), ), ), + 'PutRecords' => array( + 'httpMethod' => 'POST', + 'uri' => '/', + 'class' => 'Aws\\Common\\Command\\JsonCommand', + 'responseClass' => 'PutRecordsOutput', + 'responseType' => 'model', + 'parameters' => array( + 'Content-Type' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'application/x-amz-json-1.1', + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/json', + ), + 'X-Amz-Target' => array( + 'static' => true, + 'location' => 'header', + 'default' => 'Kinesis_20131202.PutRecords', + ), + 'Records' => array( + 'required' => true, + 'type' => 'array', + 'location' => 'json', + 'minItems' => 1, + 'maxItems' => 500, + 'items' => array( + 'name' => 'PutRecordsRequestEntry', + 'type' => 'object', + 'properties' => array( + 'Data' => array( + 'required' => true, + 'type' => 'string', + 'filters' => array( + 'base64_encode', + ), + ), + 'ExplicitHashKey' => array( + 'type' => 'string', + ), + 'PartitionKey' => array( + 'required' => true, + 'type' => 'string', + 'minLength' => 1, + 'maxLength' => 256, + ), + ), + ), + ), + 'StreamName' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'json', + 'minLength' => 1, + 'maxLength' => 128, + ), + ), + 'errorResponses' => array( + array( + 'reason' => 'The requested resource could not be found. It might not be specified correctly, or it might not be in the ACTIVE state.', + 'class' => 'ResourceNotFoundException', + ), + array( + 'reason' => 'A specified parameter exceeds its restrictions, is not supported, or can\'t be used. For more information, see the returned message.', + 'class' => 'InvalidArgumentException', + ), + array( + 'reason' => 'The request rate is too high, or the requested data is too large for the available throughput. Reduce the frequency or size of your requests. For more information, see Error Retries and Exponential Backoff in AWS in the AWS General Reference.', + 'class' => 'ProvisionedThroughputExceededException', + ), + ), + ), 'RemoveTagsFromStream' => array( 'httpMethod' => 'POST', 'uri' => '/', @@ -890,6 +963,38 @@ ), ), ), + 'PutRecordsOutput' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'FailedRecordCount' => array( + 'type' => 'numeric', + 'location' => 'json', + ), + 'Records' => array( + 'type' => 'array', + 'location' => 'json', + 'items' => array( + 'name' => 'PutRecordsResultEntry', + 'type' => 'object', + 'properties' => array( + 'SequenceNumber' => array( + 'type' => 'string', + ), + 'ShardId' => array( + 'type' => 'string', + ), + 'ErrorCode' => array( + 'type' => 'string', + ), + 'ErrorMessage' => array( + 'type' => 'string', + ), + ), + ), + ), + ), + ), ), 'iterators' => array( 'DescribeStream' => array( diff --git a/src/Aws/Lambda/LambdaClient.php b/src/Aws/Lambda/LambdaClient.php index 2a97439b3f..4fb640db26 100644 --- a/src/Aws/Lambda/LambdaClient.php +++ b/src/Aws/Lambda/LambdaClient.php @@ -37,6 +37,8 @@ * @method Model removeEventSource(array $args = array()) {@command Lambda RemoveEventSource} * @method Model updateFunctionConfiguration(array $args = array()) {@command Lambda UpdateFunctionConfiguration} * @method Model uploadFunction(array $args = array()) {@command Lambda UploadFunction} + * @method ResourceIteratorInterface getListEventSourcesIterator(array $args = array()) The input array uses the parameters of the ListEventSources operation + * @method ResourceIteratorInterface getListFunctionsIterator(array $args = array()) The input array uses the parameters of the ListFunctions operation * * @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-lambda.html User guide * @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Lambda.LambdaClient.html API docs diff --git a/src/Aws/Lambda/Resources/lambda-2014-11-11.php b/src/Aws/Lambda/Resources/lambda-2014-11-11.php index 67ec33af91..62d06e7b62 100644 --- a/src/Aws/Lambda/Resources/lambda-2014-11-11.php +++ b/src/Aws/Lambda/Resources/lambda-2014-11-11.php @@ -725,4 +725,18 @@ ), ), ), + 'iterators' => array( + 'ListEventSources' => array( + 'input_token' => 'Marker', + 'output_token' => 'NextMarker', + 'limit_key' => 'MaxItems', + 'result_key' => 'EventSources', + ), + 'ListFunctions' => array( + 'input_token' => 'Marker', + 'output_token' => 'NextMarker', + 'limit_key' => 'MaxItems', + 'result_key' => 'Functions', + ), + ), ); diff --git a/src/Aws/Route53/Resources/route53-2013-04-01.php b/src/Aws/Route53/Resources/route53-2013-04-01.php index 82d3870a27..bbd79f4c8b 100644 --- a/src/Aws/Route53/Resources/route53-2013-04-01.php +++ b/src/Aws/Route53/Resources/route53-2013-04-01.php @@ -372,6 +372,9 @@ 'reason' => 'The health check you are trying to get or delete does not exist.', 'class' => 'NoSuchHealthCheckException', ), + array( + 'class' => 'NoSuchHostedZoneException', + ), array( 'reason' => 'The request was rejected because Route 53 was still processing a prior request.', 'class' => 'PriorRequestNotCompleteException', @@ -1288,6 +1291,9 @@ 'reason' => 'The health check you are trying to get or delete does not exist.', 'class' => 'NoSuchHealthCheckException', ), + array( + 'class' => 'NoSuchHostedZoneException', + ), array( 'reason' => 'The request was rejected because Route 53 was still processing a prior request.', 'class' => 'PriorRequestNotCompleteException', @@ -1343,6 +1349,9 @@ 'reason' => 'The health check you are trying to get or delete does not exist.', 'class' => 'NoSuchHealthCheckException', ), + array( + 'class' => 'NoSuchHostedZoneException', + ), array( 'reason' => 'The request was rejected because Route 53 was still processing a prior request.', 'class' => 'PriorRequestNotCompleteException', @@ -1429,6 +1438,47 @@ ), ), ), + 'UpdateHostedZoneComment' => array( + 'httpMethod' => 'POST', + 'uri' => '/2013-04-01/hostedzone/{Id}', + 'class' => 'Guzzle\\Service\\Command\\OperationCommand', + 'responseClass' => 'UpdateHostedZoneCommentResponse', + 'responseType' => 'model', + 'data' => array( + 'xmlRoot' => array( + 'name' => 'UpdateHostedZoneCommentRequest', + 'namespaces' => array( + 'https://route53.amazonaws.com/doc/2013-04-01/', + ), + ), + ), + 'parameters' => array( + 'Id' => array( + 'required' => true, + 'type' => 'string', + 'location' => 'uri', + 'maxLength' => 32, + ), + 'Comment' => array( + 'type' => 'string', + 'location' => 'xml', + 'maxLength' => 256, + ), + 'command.expects' => array( + 'static' => true, + 'default' => 'application/xml', + ), + ), + 'errorResponses' => array( + array( + 'class' => 'NoSuchHostedZoneException', + ), + array( + 'reason' => 'Some value specified in the request is invalid or the XML document is malformed.', + 'class' => 'InvalidInputException', + ), + ), + ), ), 'models' => array( 'AssociateVPCWithHostedZoneResponse' => array( @@ -2568,6 +2618,45 @@ ), ), ), + 'UpdateHostedZoneCommentResponse' => array( + 'type' => 'object', + 'additionalProperties' => true, + 'properties' => array( + 'HostedZone' => array( + 'type' => 'object', + 'location' => 'xml', + 'properties' => array( + 'Id' => array( + 'type' => 'string', + ), + 'Name' => array( + 'type' => 'string', + ), + 'CallerReference' => array( + 'type' => 'string', + ), + 'Config' => array( + 'type' => 'object', + 'properties' => array( + 'Comment' => array( + 'type' => 'string', + ), + 'PrivateZone' => array( + 'type' => 'boolean', + ), + ), + ), + 'ResourceRecordSetCount' => array( + 'type' => 'numeric', + ), + ), + ), + 'RequestId' => array( + 'location' => 'header', + 'sentAs' => 'x-amz-request-id', + ), + ), + ), ), 'iterators' => array( 'ListHealthChecks' => array( @@ -2599,12 +2688,5 @@ 'NextRecordIdentifier', ), ), - 'ListReusableDelegationSets' => array( - 'input_token' => 'Marker', - 'output_token' => 'NextMarker', - 'more_results' => 'IsTruncated', - 'limit_key' => 'MaxItems', - 'result_key' => 'DelegationSets', - ), ), ); diff --git a/src/Aws/Route53/Route53Client.php b/src/Aws/Route53/Route53Client.php index 89c11fac72..5495a0fa8c 100644 --- a/src/Aws/Route53/Route53Client.php +++ b/src/Aws/Route53/Route53Client.php @@ -55,6 +55,7 @@ * @method Model listTagsForResource(array $args = array()) {@command Route53 ListTagsForResource} * @method Model listTagsForResources(array $args = array()) {@command Route53 ListTagsForResources} * @method Model updateHealthCheck(array $args = array()) {@command Route53 UpdateHealthCheck} + * @method Model updateHostedZoneComment(array $args = array()) {@command Route53 UpdateHostedZoneComment} * @method ResourceIteratorInterface getListHealthChecksIterator(array $args = array()) The input array uses the parameters of the ListHealthChecks operation * @method ResourceIteratorInterface getListHostedZonesIterator(array $args = array()) The input array uses the parameters of the ListHostedZones operation * @method ResourceIteratorInterface getListResourceRecordSetsIterator(array $args = array()) The input array uses the parameters of the ListResourceRecordSets operation